Index: tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.sh
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.sh	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.sh	(revision 38262)
@@ -0,0 +1,32 @@
+#!/bin/sh
+# gvSIG.sh
+
+GVSIG_SH_FILE=`readlink -f $0`
+GVSIG_BIN=`dirname $GVSIG_SH_FILE`
+#GVSIG_JRE_HOME=$HOME/gvSIG/jre/1.5.0_12
+GVSIG_JRE_HOME=$HOME/gvSIG/jre/1.5.0_12
+# Comporbar la JRE
+if [ ! -f "$GVSIG_JRE_HOME/bin/java" ] 
+then 
+{
+	echo No se ha encontrado el ejecutalble de la JRE en $GVSIG_JRE_HOME/bin/java
+	echo 
+	echo "Edite este fichero ($0) y modifique la variable GVSIG_JRE_HOME"
+	echo para que tenga una ruta al JAVA_HOME preparado para gvSIG
+	exit 1
+}
+fi
+
+export JAVA_HOME="$GVSIG_JRE_HOME"
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$GVSIG_LIBS"
+cd "$GVSIG_BIN"
+
+
+for i in $GVSIG_BIN/lib/*.jar ; do
+  LIBRARIES=$LIBRARIES:"$i"
+done
+for i in $GVSIG_BIN/lib/*.zip ; do
+  LIBRARIES=$LIBRARIES:"$i"
+done
+
+"$JAVA_HOME"/bin/java -cp $GVSIG_BIN/bin:$LIBRARIES  -Xmx500M com.iver.andami.Launcher gvSIG gvSIG/extensiones "$@"
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.sh
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.bat
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.bat	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.bat	(revision 38262)
@@ -0,0 +1,35 @@
+@echo off
+rem set gvSIG_JRE_HOME=
+rem set this_path=
+set error=N
+IF DEFINED gvSIG_JRE_HOME goto check_this_path
+ECHO No se ha establecido la variable 'gvSIG_JRE_HOME'
+ECHO . 
+set error=S
+:check_this_path
+IF DEFINED this_path goto check_errors
+ECHO No se ha establecido la variable 'this_path'
+set error=S
+:check_errors
+IF "%error%" == "N" goto run
+Echo . 
+ECHO Para que funcione este arranque de gvSIG debe editar este fichero
+ECHO y modificar las siguentes lineas:
+ECHO . 
+ECHO rem set gvSIG_JRE_HOME=
+ECHO rem set this_path=
+ECHO . 
+ECHO Dejandolas asi:
+ECHO . 
+ECHO set gvSIG_JRE_HOME={ruta a la jre preparada para gvsig}
+ECHO set this_path={ruta en la que se encuentra este archivo}
+ECHO .  
+ECHO Ejecucion cancelada
+pause
+goto end
+
+:run
+cd "%this_path%"
+"%gvSIG_JRE_HOME%\bin\java.exe" -cp ##Andami_classpath## -Xmx500M com.iver.andami.Launcher gvSIG gvSIG/extensiones %1
+
+:end
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/dist_resources/gvSIG.bat
___________________________________________________________________
Added: svn:eol-style
   + CRLF

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/A.txt
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/A.txt	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/A.txt	(revision 38262)
@@ -0,0 +1,45 @@
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+ 
+ Copyright (C) 2000 The Apache Software Foundation. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+ 
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+ 
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+ 
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+ 
+ 4. The names "Batik" and  "Apache Software Foundation"  must not be  used to
+    endorse  or promote  products derived  from this  software without  prior
+    written permission. For written permission, please contact
+    apache@apache.org.
+ 
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+ 
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf  of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/A.txt
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/distribution/distribution.xml
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/distribution/distribution.xml	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/distribution/distribution.xml	(revision 38262)
@@ -0,0 +1,147 @@
+<assembly>
+	<id>distribution</id>
+	<formats>
+		<format>dir</format>
+	</formats>
+	<fileSets>
+	<!-- Extructure for the extension -->
+		<fileSet>
+			<directory>config</directory>
+			<outputDirectory>${extension.install.dir.name}
+			</outputDirectory>
+		</fileSet>
+        <!-- Copy all resources but the theme ones, as they are handled
+        through resource filtering -->
+		<fileSet>
+			<directory>resources</directory>
+			<outputDirectory>${extension.install.dir.name}
+			</outputDirectory>
+            <excludes>
+                <exclude>**/theme/**</exclude>
+            </excludes>
+		</fileSet>
+        <!-- Copy the theme files from the target folder as they have been
+        filtered there, to set the gvSIG version for example. -->
+        <fileSet>
+            <directory>target/classes/theme</directory>
+            <outputDirectory>${extension.install.dir.name}/theme
+            </outputDirectory>
+        </fileSet>
+	</fileSets>
+    <files>
+        <file>
+            <source>package.info</source>
+            <outputDirectory>${extension.install.dir.name}
+            </outputDirectory>
+        </file>
+    </files>
+	<!--
+		***********************************************************************
+	-->
+  <!-- *													   *-->
+	<!--
+		***********************************************************************
+	-->
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>${extension.install.dir.name}/${library-dir}
+			</outputDirectory>
+			<includes>
+
+				<!-- org.gvsig.i18n -->
+				<include>org.gvsig:org.gvsig.i18n</include>
+				
+				<!-- org.gvsig.metadata -->
+				<include>org.gvsig:org.gvsig.metadata.lib.basic.api</include>
+				<include>org.gvsig:org.gvsig.metadata.lib.basic.impl</include>
+				<include>org.gvsig:org.gvsig.metadata.swing.basic.api</include>
+				<include>org.gvsig:org.gvsig.metadata.swing.basic.impl</include>
+				
+				<!--  org.gvsig.timesupport -->
+				<include>org.gvsig:org.gvsig.timesupport.lib.api</include>
+                <include>org.gvsig:org.gvsig.timesupport.lib.impl</include>
+                <include>joda-time:joda-time</include>			
+				
+				<!-- org.gvsig.compat -->
+				<include>org.gvsig:org.gvsig.compat</include>
+				<include>org.gvsig:org.gvsig.compat:jar:se</include>
+
+				<!-- org.gvsig.projection -->
+				<include>org.gvsig:org.gvsig.projection</include>
+				<include>org.gvsig:org.gvsig.projection:jar:cresques-impl</include>
+				<include>org.opengis:geoapi</include>
+				<include>javax.units:jsr108</include>
+                <include>org.geotools:gt2-legacy</include>
+                <include>org.geotools:gt2-main</include>
+                <include>org.geotools:gt2-referencing</include>
+				<include>geojava:geojava</include>
+                <!-- geotools dependencies -->
+                <include>org.geotools:gt2-api</include>
+                <include>org.opengis:geoapi-legacy</include>
+                <include>org.geotools:gt2-referencing</include>
+                <include>org.geotools:gt2-coverage</include>
+                <include>org.geotools:gt2-render</include>
+                <include>java3d:vecmath</include>
+                
+				<!-- org.gvsig.fmap.* -->
+				<include>org.gvsig:org.gvsig.fmap*</include>
+				<include>com.vividsolutions:jts</include>
+				<include>org.gvsig:org.gvsig.dxf</include>
+				<include>org.gvsig:org.gvsig.tools.evaluator.sqljep</include>
+				<include>net.sf:sqljep</include>	
+				<include>org.gvsig:org.gvsig.jdk.v1_6</include>							
+
+				<!-- org.gvsig.fmap.dal.index -->
+				<!-- 
+				<include>org.gvsig:org.gvsig.fmap.dal.index.spatial:jar:jsi</include>
+				<include>org.gvsig:org.gvsig.fmap.dal.index.spatial:jar:gt2</include>
+				<include>org.gvsig:org.gvsig.fmap.dal.index.spatial:jar:jts</include>
+				<include>org.gvsig:org.gvsig.fmap.dal.index.spatial:jar:spatialindex</include>
+				 -->
+				<include>net.sf:jsi</include>
+				<include>spatialindex:spatialindex</include>
+
+				<!-- org.gvsig.symbology -->
+				<!-- 
+				TODO: remove this entry when the basic symbology 
+				becomes an extension. 
+				-->
+				<include>org.gvsig:org.gvsig.symbology.lib.api</include>
+				<include>org.gvsig:org.gvsig.symbology.lib.impl</include>
+				<include>org.gvsig:org.gvsig.symbology.swing.api</include>
+				<include>org.gvsig:org.gvsig.symbology.swing.impl</include>
+
+				<include>org.apache.xmlgraphics:batik-anim</include>
+				<include>org.apache.xmlgraphics:batik-awt-util</include>
+				<include>org.apache.xmlgraphics:batik-bridge</include>
+				<include>org.apache.xmlgraphics:batik-css</include>
+				<include>org.apache.xmlgraphics:batik-dom</include>
+				<include>org.apache.xmlgraphics:batik-gvt</include>
+				<include>org.apache.xmlgraphics:batik-js</include>
+				<include>org.apache.xmlgraphics:batik-parser</include>
+				<include>org.apache.xmlgraphics:batik-script</include>
+				<include>org.apache.xmlgraphics:batik-svg-dom</include>
+				<include>org.apache.xmlgraphics:batik-util</include>
+				<include>org.apache.xmlgraphics:batik-xml</include>
+				
+				<include>xml-apis:xml-apis</include>
+				<include>xml-apis:xml-apis-ext</include>
+				<include>org.gvsig:batik-ext-gvsig-custom</include>
+							
+				<!-- org.gvsig.app -->
+				<include>org.gvsig:org.gvsig.app</include>
+				<include>com.sun:jimi</include>
+				<include>org.jpedal:jpedal_lgpl</include>
+				<include>zql:zql</include>
+				<include>*:jai_*</include>
+				
+				<!-- org.gvsig.remoteclient -->
+				<include>org.gvsig:org.gvsig.remoteclient</include>
+
+                <!-- About support -->                
+                <include>org.gvsig:org.gvsig.about*</include>
+
+			</includes>
+		</dependencySet>
+	</dependencySets>
+</assembly>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/test/cities.dbf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/test/cities.dbf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/test/praro.shp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/test/praro.shp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/test/praro.dbf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/test/praro.dbf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/test/cities.shx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/test/cities.shx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/test/praro.shx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/test/praro.shx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/test/cities.shp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/test/cities.shp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/gpl.txt
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/gpl.txt	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/gpl.txt	(revision 38262)
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/gpl.txt
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/buildNumber.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/buildNumber.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/buildNumber.properties	(revision 38262)
@@ -0,0 +1,3 @@
+#maven.buildNumber.plugin properties file
+#Tue May 29 16:37:40 CEST 2012
+buildNumber=2047
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/test/TestClassLoader.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/test/TestClassLoader.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/test/TestClassLoader.java	(revision 38262)
@@ -0,0 +1,206 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.1  2006-11-08 10:57:55  jaume
+* remove unecessary imports
+*
+*
+*/
+package test;
+
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.jar.JarException;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+public class TestClassLoader extends ClassLoader{
+	private Hashtable jarz = new Hashtable();
+	private Hashtable classes = new Hashtable();
+	private String baseDir;
+
+	public TestClassLoader(String baseDir) throws IOException {
+		this.baseDir = baseDir;
+
+		File dir = new File(baseDir);
+
+
+		URL[] jars = (URL[]) getJarURLs(dir).toArray(new URL[0]);
+
+		if (jars == null) {
+			throw new IllegalArgumentException("jars cannot be null"); //$NON-NLS-1$
+		}
+
+		//Se itera por las URLS que deben de ser jar's
+		ZipFile[] jarFiles = new ZipFile[jars.length];
+
+		for (int i = 0; i < jars.length; i++) {
+			jarFiles[i] = new ZipFile(jars[i].getPath());
+			Enumeration files = jarFiles[i].entries();
+			while (files.hasMoreElements()) {
+				//Se obtiene la entrada
+				ZipEntry file = (ZipEntry) files.nextElement();
+				String fileName = file.getName();
+
+				//Se obtiene el nombre de la clase
+				if (!fileName.toLowerCase().endsWith(".class")) { //$NON-NLS-1$
+					continue;
+				}
+
+				fileName = fileName.substring(0, fileName.length() - 6).replace('/',
+				'.');
+
+				//Se cromprueba si ya hab�a una clase con dicho nombre
+				if (jarz.get(fileName) != null) {
+					throw new JarException(
+							"two or more classes with the same name in the jars: " +
+							fileName);
+				}
+
+				//Se registra la clase
+				jarz.put(fileName, jarFiles[i]);
+				try {
+					loadClass(fileName, true);
+				} catch (ClassNotFoundException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+
+		}
+	}
+
+	private ArrayList getJarURLs(File file) {
+		ArrayList jars = new ArrayList();
+		if (file.isDirectory()) {
+			String[] fileNames = file.list();
+			for (int i = 0; i < fileNames.length; i++) {
+				File file1 = new File(file+ File.separator + fileNames[i]);
+				if (file1.isDirectory()) {
+					jars.addAll(getJarURLs(file1));
+				} else {
+					if (file1.getAbsolutePath().endsWith(".jar")) {
+						try {
+							jars.add(file1.toURL());
+						} catch (MalformedURLException e) {
+							e.printStackTrace();
+						}
+					}
+				}
+			}
+		} else {
+			if (file.getAbsolutePath().endsWith(".jar")) {
+				try {
+					jars.add(new URL(file.getAbsolutePath()));
+				} catch (MalformedURLException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return jars;
+	}
+
+	protected synchronized Class loadClass(String className, boolean resolve) throws ClassNotFoundException {
+		Class c;
+		System.out.print("Loading class ["+className+"]...");
+		try {
+			c = super.loadClass(className, resolve);
+		} catch (ClassNotFoundException e) {
+			ZipFile file = (ZipFile) jarz.get(className);
+			ZipEntry classFile = file.getEntry(className);
+			byte[] classBytes;
+			try {
+				classBytes = loadClassBytes(classFile, file.getInputStream(classFile));
+			} catch (IOException e1) {
+				throw new ClassNotFoundException(className);
+			}
+			c = defineClass(className, classBytes, 0, classBytes.length);
+		}
+		System.out.println(" Ok!");
+
+		return c;
+	}
+
+	protected Class findClass(String className) throws ClassNotFoundException {
+		return loadClass(className);
+	}
+
+	private byte[] loadClassBytes(ZipEntry classFile, InputStream is)
+	throws IOException {
+		// Get size of class file
+		int size = (int) classFile.getSize();
+
+		// Reserve space to read
+		byte[] buff = new byte[size];
+
+		// Get stream to read from
+		DataInputStream dis = new DataInputStream(is);
+
+		// Read in data
+		dis.readFully(buff);
+
+		// close stream
+		dis.close();
+
+		// return data
+		return buff;
+	}
+
+	public static void main(String args[]) {
+		try {
+			TestClassLoader cl = new TestClassLoader("lib-test/");
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/test/TestClassLoader.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ExceptionsUsingTabbedPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ExceptionsUsingTabbedPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ExceptionsUsingTabbedPanel.java	(revision 38262)
@@ -0,0 +1,283 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import junit.framework.TestCase;
+
+import org.gvsig.gui.beans.Messages;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>
+ * Tests the loading of layers using a {@link TabbedPanel TabbedPanel} object
+ * and a {@link PanelGroupLoaderFromExtensionPoint
+ * PanelGroupLoaderFromExtensionPoint} loader Tests also the managing of the
+ * different kind of exceptions which could be launched during this process.
+ * </p>
+ * 
+ * @version 11/12/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+ */
+public class Test2ExceptionsUsingTabbedPanel extends TestCase {
+	private TabbedPanel panelGroup;
+	private PanelGroupManager manager;
+	private PanelGroupLoaderFromExtensionPoint loader;
+	private String validationText;
+	private String localizedMessage;
+
+	/*
+	 * (non-Javadoc)
+	 * @see junit.framework.TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		super.setUp();
+
+		manager = PanelGroupManager.getManager();
+		manager.registerPanelGroup(TabbedPanel.class);
+		manager.setDefaultType(TabbedPanel.class);
+		panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE3);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see junit.framework.TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		manager.deregisterPanelGroup(TabbedPanel.class);
+	}
+
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test1() {
+		Samples_ExtensionPointsOfIPanels.loadSample();
+
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.";
+
+		try {
+			System.out.println("----- Test 1 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT4_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test2() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.";
+
+		try {
+			System.out.println("----- Test 2 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT5_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test3() {
+		validationText = Messages.getText("empty_panel_group_exception");
+
+		try {
+			System.out.println("----- Test 3 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT6_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test4() {
+		validationText = Messages.getText("empty_panel_group_gui_exception");
+
+		try {
+			System.out.println("----- Test 4 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT7_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test5() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.\n  " + Messages.getText("empty_panel_group_exception");
+
+		try {
+			System.out.println("----- Test 5 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT8_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test6() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.\n  " + Messages.getText("empty_panel_group_gui_exception");
+
+		try {
+			System.out.println("----- Test 6 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT9_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test7() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.";
+
+		try {
+			System.out.println("----- Test 7 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT10_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/TestPanelGroupLoaderFromExtensionPoint.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/TestPanelGroupLoaderFromExtensionPoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/TestPanelGroupLoaderFromExtensionPoint.java	(revision 38262)
@@ -0,0 +1,82 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import java.util.ArrayList;
+
+import junit.framework.TestCase;
+
+import org.gvsig.gui.beans.panelGroup.panels.IPanel;
+
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class TestPanelGroupLoaderFromExtensionPoint extends TestCase {
+
+	/*
+	 * (non-Javadoc)
+	 * @see junit.framework.TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		super.setUp();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see junit.framework.TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+	}
+	
+	/**
+	 * <p>Test, results must be valid.</p>
+	 */
+	public void test() {
+		try {
+			Samples_ExtensionPointsOfIPanels.loadSample();
+			
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT1_NAME);
+			ArrayList<IPanel> panels = new ArrayList<IPanel>();
+
+			loader.loadPanels(panels);
+
+			// Check that has loaded all panels
+			assertEquals(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS1_CLASSES.length, panels.size());
+			
+			int i = 0;
+
+			while (i < Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS2_CLASSES.length) {
+				// Check order and class types
+				assertTrue(panels.get(i).getClass() == (Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS1_CLASSES[i++]));
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail();
+		}
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test1ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test1ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test1ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,132 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.loaders.PanelGroupLoaderFromList;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>
+ * Tests {@link PanelGroupDialog PanelGroupDialog}.
+ * </p>
+ * <p>
+ * Tests {@link PanelGroupManager PanelGroupManager},
+ * {@link PanelGroupLoaderFromList PanelGroupLoaderFromList},
+ * {@link TabbedPanel TabbedPanel}, and a resizable {@link PanelGroupDialog
+ * PanelGroupDialog}.
+ * </p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+ */
+public class Test1ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+
+	/**
+	 * <p>
+	 * Test method for the Test1ButtonsPanel.
+	 * </p>
+	 * <p>
+	 * Tests {@link PanelGroupManager PanelGroupManager},
+	 * {@link PanelGroupLoaderFromList PanelGroupLoaderFromList},
+	 * {@link TabbedPanel TabbedPanel}, and a resizable {@link PanelGroupDialog
+	 * PanelGroupDialog}.
+	 * </p>
+	 * 
+	 * @param args
+	 *            optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TabbedPanel.class);
+			manager.setDefaultType(TabbedPanel.class);
+
+			TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+
+			PanelGroupLoaderFromList loader = new PanelGroupLoaderFromList(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS1_CLASSES);
+
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panels with Buttons", 800, 650, (byte)WindowInfo.RESIZABLE, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+
+			jFrame.setTitle("Test resizable PanelGroupDialog with tabs and using PanelGroupLoaderFromList");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+
+			jFrame.setVisible(true);
+
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,127 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>
+ * Tests {@link PanelGroupDialog PanelGroupDialog}.
+ * </p>
+ * <p>
+ * Tests {@link PanelGroupManager PanelGroupManager},
+ * {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}, {@link TabbedPanel TabbedPanel}, and a resizable {@link PanelGroupDialog
+ * PanelGroupDialog}.
+ * </p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+ */
+public class Test2ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+
+	/**
+	 * <p>
+	 * Test method for the Test2ButtonsPanel.
+	 * </p>
+	 * 
+	 * @param args
+	 *            optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			Samples_ExtensionPointsOfIPanels.loadSample();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TabbedPanel.class);
+			manager.setDefaultType(TabbedPanel.class);
+
+			TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT1_NAME);
+
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panels with Buttons", 800, 650, (byte)WindowInfo.RESIZABLE, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+
+			jFrame.setTitle("Test resizable PanelGroupDialog with tabs and using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+
+			jFrame.setVisible(true);
+
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2TreePanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2TreePanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2TreePanel.java	(revision 38262)
@@ -0,0 +1,76 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests the creation of a {@link TreePanel TreePanel} object using {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint} .</p>
+ * 
+ * @version 17/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test2TreePanel {
+	private static JFrame jFrame;
+	private static TreePanel panelGroup;
+	
+	/**
+	 * <p>Test method for the Test2TreePanel.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			Samples_ExtensionPointsOfIPanels.loadSample();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TreePanel.class);
+			manager.setDefaultType(TreePanel.class);
+
+			panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE2);
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT2_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+
+			// Objects creation
+			jFrame = new JFrame();
+			jFrame.setTitle("Test TreePanel using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroup.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroup);
+		    
+			jFrame.setVisible(true);
+			
+		} catch (BaseException e) {
+			System.out.println(e.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test3ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test3ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test3ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,117 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.loaders.PanelGroupLoaderFromList;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/** 
+ * <p>Tests {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * <p>Tests {@link PanelGroupManager PanelGroupManager}, {@link PanelGroupLoaderFromList PanelGroupLoaderFromList}, 
+ *  {@link TreePanel TreePanel}, and a resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 22/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test3ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+	private static TreePanel panelGroup;
+
+	/**
+	 * <p>Test method for the Test3ButtonsPanel.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TreePanel.class);
+			manager.setDefaultType(TreePanel.class);
+
+			panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+			
+			PanelGroupLoaderFromList loader = new PanelGroupLoaderFromList(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS1_CLASSES);
+
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panel with Buttons", 800, 650, (byte)WindowInfo.RESIZABLE, panelGroup);
+			
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+			
+			jFrame.setTitle("Test resizable PanelGroupDialog with tree and using PanelGroupLoaderFromList");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+			jFrame.setVisible(true);			
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test1ButtonsPanelWithExceptionsMessage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test1ButtonsPanelWithExceptionsMessage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test1ButtonsPanelWithExceptionsMessage.java	(revision 38262)
@@ -0,0 +1,127 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.loaders.PanelGroupLoaderFromList;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>
+ * Test method for the Test1ButtonsPanelWithExceptionsMessage.
+ * </p>
+ * <p>
+ * Tests the message dialog caused by the exceptions produced during the loading
+ * of panels, using {@link PanelGroupManager PanelGroupManager},
+ * {@link PanelGroupLoaderFromList PanelGroupLoaderFromList},
+ * {@link TabbedPanel TabbedPanel}, and a resizable {@link PanelGroupDialog
+ * PanelGroupDialog}.
+ * </p>
+ * 
+ * @version 17/12/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+ */
+public class Test1ButtonsPanelWithExceptionsMessage {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+
+	/**
+	 * <p>
+	 * Test method for the Test1ButtonsPanelWithExceptionsMessage.
+	 * </p>
+	 * 
+	 * @param args
+	 *            optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TabbedPanel.class);
+			manager.setDefaultType(TabbedPanel.class);
+
+			TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE3);
+
+			PanelGroupLoaderFromList loader = new PanelGroupLoaderFromList(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS10_CLASSES);
+
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE3_NAME, "Panels with Buttons", 800, 650, (byte)WindowInfo.RESIZABLE, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+
+			jFrame.setTitle("Test resizable PanelGroupDialog with tabs and using PanelGroupLoaderFromList");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+
+			jFrame.setVisible(true);
+
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test4ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test4ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test4ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,121 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * <p>Tests {@link PanelGroupManager PanelGroupManager}, {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}, 
+ *  {@link TreePanel TreePanel}, and a resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 22/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test4ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+	private static TreePanel panelGroup;
+
+	/**
+	 * <p>Test method for the Test4ButtonsPanel.</p>
+	 * <p>Tests {@link PanelGroupManager PanelGroupManager}, {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}, 
+	 *  {@link TreePanel TreePanel}, and a resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			Samples_ExtensionPointsOfIPanels.loadSample();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TreePanel.class);
+			manager.setDefaultType(TreePanel.class);
+
+			panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT1_NAME);
+			
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panel with Buttons", 150, 150, (byte)WindowInfo.RESIZABLE, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+			
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+
+			jFrame.setTitle("Test resizable PanelGroupDialog with tree and using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+			jFrame.setVisible(true);	
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ButtonsPanelWithExceptionsMessage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ButtonsPanelWithExceptionsMessage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ButtonsPanelWithExceptionsMessage.java	(revision 38262)
@@ -0,0 +1,119 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Test method for the Test2ButtonsPanelWithExceptionsMessage.</p>
+ * <p>Tests the message dialog caused by the exceptions produced during the loading of panels, using {@link PanelGroupManager PanelGroupManager},
+ *  {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}, {@link TabbedPanel TabbedPanel}, and a resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 17/12/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test2ButtonsPanelWithExceptionsMessage {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+
+	/**
+	 * <p>Test method for the Test2ButtonsPanelWithExceptionsMessage.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			Samples_ExtensionPointsOfIPanels.loadSample();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TabbedPanel.class);
+			manager.setDefaultType(TabbedPanel.class);
+
+			TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE3);
+
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT10_NAME);
+
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE3_NAME, "Panels with Buttons", 800, 650, (byte)WindowInfo.RESIZABLE, panelGroup);
+			
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+
+			jFrame.setTitle("Test resizable PanelGroupDialog with tabs and using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+			jFrame.setVisible(true);
+			
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test5ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test5ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test5ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,117 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.loaders.PanelGroupLoaderFromList;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * <p>Tests {@link PanelGroupManager PanelGroupManager}, {@link PanelGroupLoaderFromList PanelGroupLoaderFromList}, 
+ *  {@link TabbedPanel TabbedPanel}, and a non resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 19/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test5ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+
+	/**
+	 * <p>Test method for the Test5ButtonsPanel.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TabbedPanel.class);
+			manager.setDefaultType(TabbedPanel.class);
+
+			TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+			
+			PanelGroupLoaderFromList loader = new PanelGroupLoaderFromList(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS1_CLASSES);
+			
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panel with Buttons", 800, 650, (byte)0, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+			
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+			
+			jFrame.setTitle("Test Non Resizable PanelGroupDialog with tabs and using PanelGroupLoaderFromList");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+		    jFrame.setResizable(false);
+			jFrame.setVisible(true);
+			
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test3ButtonsPanelWithExceptionsMessage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test3ButtonsPanelWithExceptionsMessage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test3ButtonsPanelWithExceptionsMessage.java	(revision 38262)
@@ -0,0 +1,117 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.loaders.PanelGroupLoaderFromList;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Test method for the Test1ButtonsPanelWithExceptionsMessage.</p>
+ * <p>Tests the message dialog caused by the exceptions produced during the loading of panels, using {@link PanelGroupManager PanelGroupManager},
+ *  {@link PanelGroupLoaderFromList PanelGroupLoaderFromList}, {@link TreePanel TreePanel}, and a resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 17/12/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test3ButtonsPanelWithExceptionsMessage {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+	private static TreePanel panelGroup;
+
+	/**
+	 * <p>Test method for the Test3ButtonsPanelWithExceptionsMessage.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TreePanel.class);
+			manager.setDefaultType(TreePanel.class);
+
+			panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE3);
+			
+			PanelGroupLoaderFromList loader = new PanelGroupLoaderFromList(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS10_CLASSES);
+
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE3_NAME, "Panel with Buttons", 800, 650, (byte)WindowInfo.RESIZABLE, panelGroup);
+			
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+			
+			jFrame.setTitle("Test resizable PanelGroupDialog with tree and using PanelGroupLoaderFromList");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+			jFrame.setVisible(true);			
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test6ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test6ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test6ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,120 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * <p>Tests {@link PanelGroupManager PanelGroupManager}, {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}, 
+ *  {@link TabbedPanel TabbedPanel}, and a non resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 22/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test6ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+
+	/**
+	 * <p>Test method for the Test6ButtonsPanel.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			Samples_ExtensionPointsOfIPanels.loadSample();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TabbedPanel.class);
+			manager.setDefaultType(TabbedPanel.class);
+
+			TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+			
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT1_NAME);
+			
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panel with Buttons", 800, 650, (byte)WindowInfo.RESIZABLE, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+			
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+			
+			jFrame.setTitle("Test Non Resizable PanelGroupDialog with tabs and using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+		    jFrame.setResizable(false);
+			jFrame.setVisible(true);
+			
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test4ButtonsPanelWithExceptionsMessage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test4ButtonsPanelWithExceptionsMessage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test4ButtonsPanelWithExceptionsMessage.java	(revision 38262)
@@ -0,0 +1,119 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Test method for the Test2ButtonsPanelWithExceptionsMessage.</p>
+ * <p>Tests the message dialog caused by the exceptions produced during the loading of panels, using {@link PanelGroupManager PanelGroupManager},
+ *  {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}, {@link TreePanel TreePanel}, and a resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 17/12/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test4ButtonsPanelWithExceptionsMessage {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+	private static TreePanel panelGroup;
+
+	/**
+	 * <p>Test method for the Test4ButtonsPanelWithExceptionsMessage.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			// Objects creation
+			jFrame = new JFrame();
+
+			Samples_ExtensionPointsOfIPanels.loadSample();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TreePanel.class);
+			manager.setDefaultType(TreePanel.class);
+
+			panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE3);
+
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT10_NAME);
+			
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE3_NAME, "Panel with Buttons", 150, 150, (byte)WindowInfo.RESIZABLE, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+			
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+
+			jFrame.setTitle("Test resizable PanelGroupDialog with tree and using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+			jFrame.setVisible(true);	
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test7ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test7ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test7ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,116 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.loaders.PanelGroupLoaderFromList;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * <p>Tests {@link PanelGroupManager PanelGroupManager}, {@link PanelGroupLoaderFromList PanelGroupLoaderFromList}, 
+ *  {@link TreePanel TreePanel}, and a non resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 22/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test7ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+	private static TreePanel panelGroup;
+
+	/**
+	 * <p>Test method for the Test7ButtonsPanel.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			jFrame = new JFrame();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TreePanel.class);
+			manager.setDefaultType(TreePanel.class);
+
+			panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+			
+			PanelGroupLoaderFromList loader = new PanelGroupLoaderFromList(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINTS1_CLASSES);
+			
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panel with Buttons", 800, 650, (byte)0, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+
+			jFrame.setTitle("Test non resizable PanelGroupDialog with a tree and using PanelGroupLoaderFromList");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+		    jFrame.setResizable(false);
+			jFrame.setVisible(true);
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test8ButtonsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test8ButtonsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test8ButtonsPanel.java	(revision 38262)
@@ -0,0 +1,120 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * <p>Tests {@link PanelGroupManager PanelGroupManager}, {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}, 
+ *  {@link TreePanel TreePanel}, and a non resizable {@link PanelGroupDialog PanelGroupDialog}.</p>
+ * 
+ * @version 22/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test8ButtonsPanel {
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private static JFrame jFrame;
+	private static TreePanel panelGroup;
+
+	/**
+	 * <p>Test method for the Test8ButtonsPanel.</p>
+	 * <p>Tests the G.U.I. when adds panels with different dimensions, to a resizable <code>PanelGroupDialog</code>.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			jFrame = new JFrame();
+
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TreePanel.class);
+			manager.setDefaultType(TreePanel.class);
+
+			Samples_ExtensionPointsOfIPanels.loadSample();
+
+			panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE1);
+			
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT1_NAME);
+			
+			// Creates the IWindow
+			PanelGroupDialog panelGroupDialog = new PanelGroupDialog(Samples_ExtensionPointsOfIPanels.REFERENCE1_NAME, "Panel with Buttons", 150, 150, (byte)WindowInfo.RESIZABLE, panelGroup);
+
+			// Begin: Test the normal load
+			panelGroupDialog.loadPanels(loader);
+			// End: Test the normal load
+			
+			panelGroupDialog.addButtonPressedListener(new ButtonsPanelListener() {
+				/*
+				 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+				 */
+				public void actionButtonPressed(ButtonsPanelEvent e) {
+					switch (e.getButton()) {
+						case ButtonsPanel.BUTTON_ACCEPT:
+							System.out.println("Accept Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_CANCEL:
+							System.out.println("Cancel Button pressed.");
+							hideJFrame();
+							System.exit(0);
+							break;
+						case ButtonsPanel.BUTTON_APPLY:
+							System.out.println("Apply Button pressed.");
+							break;
+					}
+				}
+			});
+			
+			jFrame.setTitle("Test non resizable PanelGroupDialog with a tree and using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroupDialog.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroupDialog);
+		    
+		    jFrame.setResizable(false);
+			jFrame.setVisible(true);
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Hides the {@link JFrame JFrame}, hiding the graphical interface.</p>
+	 */
+	private static void hideJFrame() {
+		jFrame.setVisible(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ExceptionsUsingTreePanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ExceptionsUsingTreePanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2ExceptionsUsingTreePanel.java	(revision 38262)
@@ -0,0 +1,279 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import junit.framework.TestCase;
+
+import org.gvsig.gui.beans.Messages;
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests the loading of layers using a {@link TreePanel TreePanel} object and a {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint} loader
+ * Tests also the managing of the different kind of exceptions which could be launched during this process.</p>
+ * 
+ * @version 11/12/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test2ExceptionsUsingTreePanel extends TestCase {
+	private TreePanel panelGroup;
+	private PanelGroupManager manager;
+	private PanelGroupLoaderFromExtensionPoint loader;
+	private String validationText;
+	private String localizedMessage;
+
+	/*
+	 * (non-Javadoc)
+	 * @see junit.framework.TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		super.setUp();
+
+		manager = PanelGroupManager.getManager();
+		manager.registerPanelGroup(TreePanel.class);
+		manager.setDefaultType(TreePanel.class);
+		panelGroup = (TreePanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE3);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see junit.framework.TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+		manager.deregisterPanelGroup(TreePanel.class);
+	}
+	
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test1() {
+		Samples_ExtensionPointsOfIPanels.loadSample();
+
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.";
+
+		try {
+			System.out.println("----- Test 1 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT4_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+	
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test2() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.";
+
+		try {
+			System.out.println("----- Test 2 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT5_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+	
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test3() {
+		validationText = Messages.getText("empty_panel_group_exception");
+
+		try {
+			System.out.println("----- Test 3 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT6_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+	
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test4() {
+		validationText = Messages.getText("empty_panel_group_gui_exception");
+
+		try {
+			System.out.println("----- Test 4 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT7_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+	
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test5() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.\n  " + Messages.getText("empty_panel_group_exception");
+
+		try {
+			System.out.println("----- Test 5 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT8_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+	
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test6() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.\n  " + Messages.getText("empty_panel_group_gui_exception");
+
+		try {
+			System.out.println("----- Test 6 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT9_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+	
+	/**
+	 * <p>Test the 'PanelGroup' exceptions </p>
+	 */
+	public void test7() {
+		validationText = Messages.getText("couldnt_add_some_panel_exception") + "\n  " + Messages.getText("couldnt_load_panels_from_extension_point_exception") + "\n  Error cargando un panel: / by zero.\n  Panel de etiqueta Information_LABEL sin tama�o inicial definido.";
+
+		try {
+			System.out.println("----- Test 7 -----");
+			loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT10_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+		} catch (BaseException bE) {
+			localizedMessage = bE.getLocalizedMessageStack().trim();
+			System.out.println(localizedMessage);
+			System.out.println("------------------");
+			assertEquals(localizedMessage, validationText);
+			return;
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.out.println("------------------");
+			fail();
+			return;
+		}
+
+		System.out.println("------------------");
+		fail();
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2TabbedPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2TabbedPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/Test2TabbedPanel.java	(revision 38262)
@@ -0,0 +1,73 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import javax.swing.JFrame;
+
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.tools.exception.BaseException;
+
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.panelGroup.samples.Samples_ExtensionPointsOfIPanels;
+
+/**
+ * <p>Tests the creation of a {@link TabbedPanel TabbedPanel} object using {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint} .</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class Test2TabbedPanel {
+	/**
+	 * <p>Test method for the Test2TabbedPanel.</p>
+	 * 
+	 * @param args optional arguments
+	 */
+	public static void main(String[] args) {
+		try {
+			Samples_ExtensionPointsOfIPanels.loadSample();
+			
+			PanelGroupManager manager = PanelGroupManager.getManager();
+			manager.registerPanelGroup(TabbedPanel.class);
+			manager.setDefaultType(TabbedPanel.class);
+
+			TabbedPanel panelGroup = (TabbedPanel) manager.getPanelGroup(Samples_ExtensionPointsOfIPanels.REFERENCE2);
+			PanelGroupLoaderFromExtensionPoint loader = new PanelGroupLoaderFromExtensionPoint(Samples_ExtensionPointsOfIPanels.EXTENSIONPOINT2_NAME);
+
+			// Begin: Test the normal load
+			panelGroup.loadPanels(loader);
+			// End: Test the normal load
+
+			// Objects creation
+			JFrame jFrame = new JFrame();
+			jFrame.setTitle("Test TabbedPanel using PanelGroupLoaderFromExtensionPoint");
+		    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+		    jFrame.setSize(panelGroup.getPreferredSize());
+		    jFrame.getContentPane().add(panelGroup);
+		    
+			jFrame.setVisible(true);
+			
+		} catch (BaseException bE) {
+			System.out.println(bE.getLocalizedMessageStack());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanelWithoutGroupLabel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanelWithoutGroupLabel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanelWithoutGroupLabel.java	(revision 38262)
@@ -0,0 +1,124 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 23/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SamplePanelWithoutGroupLabel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = -5449402170753829090L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SamplePanelWithoutGroupLabel() {
+		super();
+		initialize();
+	}
+
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SamplePanelWithoutGroupLabel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS3_IDS[0]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS3_LABELS[0]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.WHITE);
+		}
+
+		return jTextArea;
+	}
+
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	public void accept() {
+	}
+
+	public void apply() {
+	}
+
+	public void cancel() {
+	}
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInvisiblePanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInvisiblePanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInvisiblePanel.java	(revision 38262)
@@ -0,0 +1,148 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 10/12/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleInvisiblePanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = -1629511810619122126L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleInvisiblePanel() {
+		super();
+		initialize();
+	}
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleInvisiblePanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+	
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[0]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[0]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[0]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+		setVisible(false);
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.RED);
+		}
+
+		return jTextArea;
+	}
+	
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+		
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#accept()
+	 */
+	public void accept() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing an 'accept' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#apply()
+	 */
+	public void apply() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing an 'apply' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#cancel()
+	 */
+	public void cancel() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing a 'cancel' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#selected()
+	 */
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleBandSetupPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleBandSetupPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleBandSetupPanel.java	(revision 38262)
@@ -0,0 +1,143 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.AbstractPanelGroup;
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleBandSetupPanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = 40652963597544670L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleBandSetupPanel() {
+		super();
+		initialize();
+	}
+
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleBandSetupPanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[1]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[1]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[1]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.GREEN);
+			
+			jTextArea.addMouseListener(new MouseAdapter() {
+				
+				public void mouseClicked(MouseEvent e) {
+					if (getPanelGroup() != null) {
+						getPanelGroup().setEnabledAcceptButton(! getPanelGroup().isEnabledAcceptButton());
+						getPanelGroup().setEnabledApplyButton(! getPanelGroup().isEnabledApplyButton());
+						getPanelGroup().setEnabledCancelButton(! getPanelGroup().isEnabledCancelButton());
+					}	
+				}
+			});
+		}
+
+		return jTextArea;
+	}
+
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	public void accept() {
+	}
+
+	public void apply() {
+	}
+
+	public void cancel() {
+	}
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+
+	public void setPanelGroup(AbstractPanelGroup panelGroup) {
+		super.setPanelGroup(panelGroup);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleEnhancedPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleEnhancedPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleEnhancedPanel.java	(revision 38262)
@@ -0,0 +1,137 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleEnhancedPanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = -7469300452126449245L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleEnhancedPanel() {
+		super();
+		initialize();
+	}
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleEnhancedPanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+	
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[3]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[3]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[3]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.CYAN);
+			jTextArea.addMouseListener(new MouseAdapter() {
+				
+				public void mouseClicked(MouseEvent e) {
+					if (getPanelGroup() != null) {
+						getPanelGroup().setEnabledCancelButton(! getPanelGroup().isEnabledCancelButton());
+					}	
+				}
+			});
+		}
+
+		return jTextArea;
+	}
+	
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	public void accept() {
+	}
+
+
+	public void apply() {
+	}
+
+	public void cancel() {
+	}
+
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanelGroupLabelRepeated.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanelGroupLabelRepeated.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanelGroupLabelRepeated.java	(revision 38262)
@@ -0,0 +1,126 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 23/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SamplePanelGroupLabelRepeated extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = 1857806149242138609L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SamplePanelGroupLabelRepeated() {
+		super();
+		initialize();
+	}
+
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SamplePanelGroupLabelRepeated(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+
+		setID(Samples_ExtensionPointsOfIPanels.PANELS3_IDS[1]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS3_LABELS[1]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS3_LABELGROUPS[1]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.GRAY);
+		}
+
+		return jTextArea;
+	}
+
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	public void accept() {
+	}
+
+	public void apply() {
+	}
+
+	public void cancel() {
+	}
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
+
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleScalePanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleScalePanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleScalePanel.java	(revision 38262)
@@ -0,0 +1,136 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleScalePanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = -4160464669737958732L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleScalePanel() {
+		super();
+		initialize();
+	}
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleScalePanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+	
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[5]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[5]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[5]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.YELLOW);
+			jTextArea.addMouseListener(new MouseAdapter() {
+				
+				public void mouseClicked(MouseEvent e) {
+					if (getPanelGroup() != null) {
+						getPanelGroup().setEnabledApplyButton(! getPanelGroup().isEnabledApplyButton());
+						getPanelGroup().setEnabledCancelButton(! getPanelGroup().isEnabledCancelButton());
+					}	
+				}
+			});
+		}
+
+		return jTextArea;
+	}
+	
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+		
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	public void accept() {
+	}
+
+	public void apply() {
+	}
+
+	public void cancel() {
+	}
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInitializingExcetionPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInitializingExcetionPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInitializingExcetionPanel.java	(revision 38262)
@@ -0,0 +1,150 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleInitializingExcetionPanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = -876907003975432865L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleInitializingExcetionPanel() {
+		super();
+		initialize();
+	}
+
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleInitializingExcetionPanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		
+		initialize();
+	}
+
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[0]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[0]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[0]);
+		
+		// Force to generate an exception
+		double badValue = 2 / 0;
+
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.GREEN);
+		}
+
+		return jTextArea;
+	}
+
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#accept()
+	 */
+	public void accept() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing an 'accept' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#apply()
+	 */
+	public void apply() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing an 'apply' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#cancel()
+	 */
+	public void cancel() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing a 'cancel' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#selected()
+	 */
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+		 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+		 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleTransparencyPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleTransparencyPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleTransparencyPanel.java	(revision 38262)
@@ -0,0 +1,136 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleTransparencyPanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = -4145789119404234621L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleTransparencyPanel() {
+		super();
+		initialize();
+	}
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleTransparencyPanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+	
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[2]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[2]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[2]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.BLUE);
+			jTextArea.addMouseListener(new MouseAdapter() {
+				
+				public void mouseClicked(MouseEvent e) {
+					if (getPanelGroup() != null) {
+						getPanelGroup().setEnabledApplyButton(! getPanelGroup().isEnabledApplyButton());
+					}	
+				}
+			});
+		}
+
+		return jTextArea;
+	}
+	
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+		
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	public void accept() {
+	}
+
+	public void apply() {
+	}
+
+	public void cancel() {
+	}
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleUndefinedPreferredSizeExceptionPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleUndefinedPreferredSizeExceptionPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleUndefinedPreferredSizeExceptionPanel.java	(revision 38262)
@@ -0,0 +1,144 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * 
+ * @version 30/11/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleUndefinedPreferredSizeExceptionPanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = 1210497562221898739L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleUndefinedPreferredSizeExceptionPanel() {
+		super();
+		initialize();
+	}
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleUndefinedPreferredSizeExceptionPanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+	
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[0]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[0]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[0]);
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.RED);
+		}
+
+		return jTextArea;
+	}
+	
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+		
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+		hasChanged = true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#accept()
+	 */
+	public void accept() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing an 'accept' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#apply()
+	 */
+	public void apply() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing an 'apply' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#cancel()
+	 */
+	public void cancel() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I'm executing a 'cancel' method.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.panels.IPanel#selected()
+	 */
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInfoPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInfoPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SampleInfoPanel.java	(revision 38262)
@@ -0,0 +1,140 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SampleInfoPanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = -1629511810619122126L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SampleInfoPanel() {
+		super();
+		initialize();
+	}
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SampleInfoPanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+	
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[0]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[0]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[0]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.RED);
+			
+			jTextArea.addMouseListener(new MouseAdapter() {
+				
+				public void mouseClicked(MouseEvent e) {
+					if (getPanelGroup() != null) {
+						getPanelGroup().setEnabledAcceptButton(! getPanelGroup().isEnabledAcceptButton());
+					}	
+				}
+			});
+		}
+
+		return jTextArea;
+	}
+	
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+		
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+
+	public void accept() {
+	}
+
+
+	public void apply() {
+	}
+
+
+	public void cancel() {
+	}
+
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/Samples_ExtensionPointsOfIPanels.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/Samples_ExtensionPointsOfIPanels.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/Samples_ExtensionPointsOfIPanels.java	(revision 38262)
@@ -0,0 +1,154 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import org.gvsig.gui.beans.panelGroup.PanelGroupManager;
+import org.gvsig.gui.beans.panelGroup.loaders.PanelGroupLoaderFromList;
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+import org.gvsig.gui.beans.panelGroup.tabbedPanel.TabbedPanel;
+import org.gvsig.gui.beans.panelGroup.treePanel.TreePanel;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.extensionpoint.ExtensionPoint;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+
+import org.gvsig.app.panelGroup.PanelGroupDialog;
+import org.gvsig.app.panelGroup.loaders.PanelGroupLoaderFromExtensionPoint;
+
+/**
+ * <p>
+ * This class has information to create samples to test
+ * {@link PanelGroupManager PanelGroupManager}, {@link TabbedPanel TabbedPanel},
+ * {@link TreePanel TreePanel}, {@link AbstractPanel AbstractPanel},
+ * {@link PanelGroupLoaderUtilities PanelGroupLoaderUtilities},
+ * {@link PanelGroupLoaderFromList PanelGroupLoaderFromList},
+ * {@link PanelGroupLoaderFromExtensionPoint PanelGroupLoaderFromExtensionPoint}
+ * , and {@link PanelGroupDialog PanelGroupDialog}.
+ * </p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+ */
+public class Samples_ExtensionPointsOfIPanels {
+	public final static String EXTENSIONPOINT1_NAME = "RasterLayerProperties";
+	public final static String EXTENSIONPOINT2_NAME = "ImaginaryLayerProperties";
+	public final static String EXTENSIONPOINT3_NAME = "Other tests";
+	public final static String EXTENSIONPOINT4_NAME = "Test 1 exceptions";
+	public final static String EXTENSIONPOINT5_NAME = "Test 2 exceptions";
+	public final static String EXTENSIONPOINT6_NAME = "Test 3 exceptions";
+	public final static String EXTENSIONPOINT7_NAME = "Test 4 exceptions";
+	public final static String EXTENSIONPOINT8_NAME = "Test 5 exceptions";
+	public final static String EXTENSIONPOINT9_NAME = "Test 6 exceptions";
+	public final static String EXTENSIONPOINT10_NAME = "Test 7 exceptions";
+	public final static String[] EXTENSIONPOINTS1_NAMES = {"Information", "Bands", "Transparency", "Enhanced", "PanSharpening", "Scale"};
+	public final static String[] EXTENSIONPOINTS2_NAMES = {"Information", "Transparency", "Scale"};
+	public final static String[] EXTENSIONPOINTS3_OTHER_NAMES = {"SamplePanelWithoutGroupLabel", "SamplePanelGroupLabelRepeated"};
+	public final static String[] EXTENSIONPOINTS4_NAMES = {
+			"SampleInitializingExcetionPanel", "SampleInfoPanel" }; // Test 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static String[] EXTENSIONPOINTS5_NAMES = {"SampleInfoPanel", "SampleUndefinedPreferredSizeExceptionPanel"}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException'
+	public final static String[] EXTENSIONPOINTS6_NAMES = {}; // Test 'ListCouldntAddPanelException' with a 'EmptyPanelGroupException'
+	public final static String[] EXTENSIONPOINTS7_NAMES = {"SampleInvisiblePanel.class"}; // Test 'ListCouldntAddPanelException' with a 'EmptyPanelGroupGUIException'
+	public final static String[] EXTENSIONPOINTS8_NAMES = {"SampleInitializingExcetionPanel", "SampleUndefinedPreferredSizeExceptionPanel"}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException', a 'EmptyPanelGroupException' and a 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static String[] EXTENSIONPOINTS9_NAMES = {"SampleInvisiblePanel", "SampleInitializingExcetionPanel", "SampleUndefinedPreferredSizeExceptionPanel"}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException', a 'EmptyPanelGroupGUIException' and a 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static String[] EXTENSIONPOINTS10_NAMES = {"SampleBandSetupPanel", "SampleInvisiblePanel", "SampleInitializingExcetionPanel", "SampleUndefinedPreferredSizeExceptionPanel"}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException', a EmptyPanelGroupGUIException and a 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static Class[] EXTENSIONPOINTS1_CLASSES = {SampleInfoPanel.class, SampleBandSetupPanel.class, SampleTransparencyPanel.class, SampleEnhancedPanel.class, SamplePanSharpeningPanel.class, SampleScalePanel.class};
+	public final static Class[] EXTENSIONPOINTS2_CLASSES = {SampleInfoPanel.class, SampleTransparencyPanel.class, SampleScalePanel.class};
+	public final static Class[] OTHER_PANELS_EXTENSIONPOINTS3_CLASSES = {SamplePanelWithoutGroupLabel.class, SamplePanelGroupLabelRepeated.class};
+	public final static Class[] EXTENSIONPOINTS4_CLASSES = {
+			SampleInitializingExcetionPanel.class, SampleInfoPanel.class }; // Test 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static Class[] EXTENSIONPOINTS5_CLASSES = {SampleInfoPanel.class, SampleUndefinedPreferredSizeExceptionPanel.class}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException'
+	public final static Class[] EXTENSIONPOINTS6_CLASSES = {}; // Test 'ListCouldntAddPanelException' with a 'EmptyPanelGroupException'
+	public final static Class[] EXTENSIONPOINTS7_CLASSES = {SampleInvisiblePanel.class}; // Test 'ListCouldntAddPanelException' with a 'EmptyPanelGroupGUIException'
+	public final static Class[] EXTENSIONPOINTS8_CLASSES = {SampleInitializingExcetionPanel.class, SampleUndefinedPreferredSizeExceptionPanel.class}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException', a 'EmptyPanelGroupException' and a 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static Class[] EXTENSIONPOINTS9_CLASSES = {SampleInvisiblePanel.class, SampleInitializingExcetionPanel.class, SampleUndefinedPreferredSizeExceptionPanel.class}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException', a 'EmptyPanelGroupGUIException' and a 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static Class[] EXTENSIONPOINTS10_CLASSES = {SampleBandSetupPanel.class, SampleInvisiblePanel.class, SampleInitializingExcetionPanel.class, SampleUndefinedPreferredSizeExceptionPanel.class}; // Test 'ListCouldntAddPanelException' with a 'PanelWithNoPreferredSizeDefinedException', a EmptyPanelGroupGUIException and a 'ListCouldntLoadPanelFromListException' with any 'Exception'
+	public final static Object REFERENCE1 = new String("Raster Layer");
+	public final static Object REFERENCE2 = new String("Imaginary Layer");
+	public final static Object REFERENCE3 = new String("Other tests");
+	public final static String REFERENCE1_NAME = "Raster Layer reference";
+	public final static String REFERENCE2_NAME = "Imaginary Layer reference";
+	public final static String REFERENCE3_NAME = "Other tests reference";
+	public final static String[] PANELS1_IDS = {"Information_ID", "Bands_ID", "Transparency_ID", "Enhanced_ID", "PanSharpening_ID", "Scale_ID"};
+	public final static String[] PANELS2_IDS = {"Information_ID", "Transparency_ID", "Scale_ID"};
+	public final static String[] PANELS3_IDS = {"WithoutGroup_ID", "GroupLabelRepeated_ID"};
+	public final static String[] PANELS1_LABELS = {"Information_LABEL", "Bands_LABEL", "Transparency_LABEL", "Enhanced_LABEL", "PanSharpening_LABEL", "Scale_LABEL"};
+	public final static String[] PANELS2_LABELS = {"Information_LABEL", "Transparency_LABEL", "Scale_LABEL"};
+	public final static String[] PANELS3_LABELS = {"WithoutGroup_LABEL", "GroupLabelRepeated_LABEL"};
+	public final static String[] PANELS1_LABELGROUPS = {"Information_LABELGROUP", "Bands_LABELGROUP", "Transparency_LABELGROUP", "Enhanced_LABELGROUP", "PanSharpening_LABELGROUP", "Scale_LABELGROUP"};
+	public final static String[] PANELS2_LABELGROUPS = {"Information_LABELGROUP", "Transparency_LABELGROUP", "Scale_LABELGROUP"};
+	public final static String[] PANELS3_LABELGROUPS = {null, "GroupLabelRepeated_LABELGROUP"};
+	public final static short PANELS_DEFAULT_WIDTH = 500;
+	public final static short PANELS_DEFAULT_HEIGHT = 400;
+
+
+	/**
+	 * <p>Loads the information of the sample.</p>
+	 */
+	public static void loadSample() {
+			ExtensionPointManager epMan = ToolsLocator.getExtensionPointManager();
+
+		ExtensionPoint ep = epMan.add(EXTENSIONPOINT1_NAME, "");
+
+		ep.append(EXTENSIONPOINTS1_NAMES[0], "", EXTENSIONPOINTS1_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS1_NAMES[1], "", EXTENSIONPOINTS1_CLASSES[1]);
+		ep.append(EXTENSIONPOINTS1_NAMES[2], "", EXTENSIONPOINTS1_CLASSES[2]);
+		ep.append(EXTENSIONPOINTS1_NAMES[3], "", EXTENSIONPOINTS1_CLASSES[3]);
+		ep.append(EXTENSIONPOINTS1_NAMES[4], "", EXTENSIONPOINTS1_CLASSES[4]);
+		ep.append(EXTENSIONPOINTS1_NAMES[5], "", EXTENSIONPOINTS1_CLASSES[5]);
+
+		ep = epMan.add(EXTENSIONPOINT2_NAME, "");
+		ep.append(EXTENSIONPOINTS2_NAMES[0], "", EXTENSIONPOINTS2_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS2_NAMES[1], "", EXTENSIONPOINTS2_CLASSES[1]);
+		ep.append(EXTENSIONPOINTS2_NAMES[2], "", EXTENSIONPOINTS2_CLASSES[2]);
+
+		ep = epMan.add(EXTENSIONPOINT3_NAME, "");
+		ep.append(EXTENSIONPOINTS3_OTHER_NAMES[0], "",
+				OTHER_PANELS_EXTENSIONPOINTS3_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS3_OTHER_NAMES[1], "",
+				OTHER_PANELS_EXTENSIONPOINTS3_CLASSES[1]);
+
+		ep = epMan.add(EXTENSIONPOINT4_NAME, "");
+		ep.append(EXTENSIONPOINTS4_NAMES[0], "", EXTENSIONPOINTS4_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS4_NAMES[1], "", EXTENSIONPOINTS4_CLASSES[1]);
+
+		ep = epMan.add(EXTENSIONPOINT5_NAME, "");
+		ep.append(EXTENSIONPOINTS5_NAMES[0], "", EXTENSIONPOINTS5_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS5_NAMES[1], "", EXTENSIONPOINTS5_CLASSES[1]);
+
+		epMan.add(EXTENSIONPOINT6_NAME, "");
+
+		ep = epMan.add(EXTENSIONPOINT7_NAME, "");
+		ep.append(EXTENSIONPOINTS7_NAMES[0], "", EXTENSIONPOINTS7_CLASSES[0]);
+
+		ep = epMan.add(EXTENSIONPOINT8_NAME, "");
+		ep.append(EXTENSIONPOINTS8_NAMES[0], "", EXTENSIONPOINTS8_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS8_NAMES[1], "", EXTENSIONPOINTS8_CLASSES[1]);
+
+		ep = epMan.add(EXTENSIONPOINT9_NAME, "");
+		ep.append(EXTENSIONPOINTS9_NAMES[0], "", EXTENSIONPOINTS9_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS9_NAMES[1], "", EXTENSIONPOINTS9_CLASSES[1]);
+		ep.append(EXTENSIONPOINTS9_NAMES[2], "", EXTENSIONPOINTS9_CLASSES[2]);
+
+		ep = epMan.add(EXTENSIONPOINT10_NAME, "");
+		ep.append(EXTENSIONPOINTS10_NAMES[0], "", EXTENSIONPOINTS10_CLASSES[0]);
+		ep.append(EXTENSIONPOINTS10_NAMES[1], "", EXTENSIONPOINTS10_CLASSES[1]);
+		ep.append(EXTENSIONPOINTS10_NAMES[2], "", EXTENSIONPOINTS10_CLASSES[2]);
+		ep.append(EXTENSIONPOINTS10_NAMES[3], "", EXTENSIONPOINTS10_CLASSES[3]);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanSharpeningPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanSharpeningPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/panelGroup/samples/SamplePanSharpeningPanel.java	(revision 38262)
@@ -0,0 +1,136 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.samples;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.Serializable;
+
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+
+/**
+ * <p>Sample of {@link AbstractPanel AbstractPanel}.</p>
+ * 
+ * @version 16/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es) 
+ */
+public class SamplePanSharpeningPanel extends AbstractPanel implements Serializable {
+	private static final long serialVersionUID = 648806623810248226L;
+
+	/**
+	 * <p>Element for the interface.</p>
+	 */
+	private JTextArea jTextArea = null;
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel()
+	 */
+	public SamplePanSharpeningPanel() {
+		super();
+		initialize();
+	}
+	
+	/**
+	 * @see AbstractPanel#AbstractPanel(String, String, String)
+	 */
+	public SamplePanSharpeningPanel(String id, String label, String labelGroup) {
+		super(id, label, labelGroup);
+		initialize();
+	}
+
+	@Override
+	protected void initialize() {
+		add(new JScrollPane(getJTextArea()));
+		setToolTipText(getID());
+		
+		setID(Samples_ExtensionPointsOfIPanels.PANELS1_IDS[4]);
+		setLabel(Samples_ExtensionPointsOfIPanels.PANELS1_LABELS[4]);
+		setLabelGroup(Samples_ExtensionPointsOfIPanels.PANELS1_LABELGROUPS[4]);
+		setPreferredSize(new Dimension(Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_WIDTH, Samples_ExtensionPointsOfIPanels.PANELS_DEFAULT_HEIGHT));
+		resetChangedStatus();
+	}
+	
+	/**
+	 * This method initializes jTextArea
+	 *
+	 * @return JTextArea
+	 */
+	private JTextArea getJTextArea() {
+		if (jTextArea == null) {
+			jTextArea = new JTextArea(5, 40);
+			jTextArea.setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+			jTextArea.setEditable(false);
+			jTextArea.setBackground(Color.MAGENTA);
+			jTextArea.addMouseListener(new MouseAdapter() {
+				
+				public void mouseClicked(MouseEvent e) {
+					if (getPanelGroup() != null) {
+						getPanelGroup().setEnabledAcceptButton(! getPanelGroup().isEnabledAcceptButton());
+						getPanelGroup().setEnabledApplyButton(! getPanelGroup().isEnabledApplyButton());
+					}	
+				}
+			});
+		}
+
+		return jTextArea;
+	}
+
+	@Override
+	public void setID(String id) {
+		super.setID(id);
+		
+		setToolTipText(getID());
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabel(String label) {
+		super.setLabel(label);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	@Override
+	public void setLabelGroup(String labelGroup) {
+		super.setLabelGroup(labelGroup);
+		
+		getJTextArea().setText("I\'m a JTextArea object in the \"Panel\" with:\n\nID: " + getID() + "\nLabel: " + getLabel() + "\nLabelGroup: " + getLabelGroup());
+	}
+
+	public void accept() {
+	}
+
+	public void apply() {
+	}
+
+	public void cancel() {
+	}
+
+	public void selected() {
+		System.out.println("I'm the IPanel: " + toString() + "\n and I've been selected. My information is: " +
+				 "\n\tID: " + getID() + "\n\tLABEL_GROUP: " + getLabelGroup() + "\n\tLABEL: " + getLabel() + "\n\tCLASS: " + getClass() +
+				 "\n\tMy Preferred Size: " + getPreferredSize() + "\n\tAnd My size: " + getSize());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/test/Persistence.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/test/Persistence.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/test/Persistence.java	(revision 38262)
@@ -0,0 +1,94 @@
+package org.gvsig.app.test;
+
+import junit.framework.TestCase;
+
+import org.gvsig.app.extension.ProjectExtension;
+
+/**
+ * @author Fernando Gonz�lez Cort�s
+ */
+//TODO comentado para que compile
+public class Persistence extends TestCase {
+	private ProjectExtension pe;
+
+	/*
+	 * @see TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		pe = new ProjectExtension();
+//		pe.inicializar();
+//		LayerFactory.setDriversPath(
+//		"/root/workspace/Andami/gvSIG/extensiones/com.iver.cit.gvsig/drivers");
+//
+//		LayerFactory.getDataSourceFactory().addFileDataSource("gdbms dbf driver", "prueba",
+//				"test/cities.dbf");
+
+	}
+
+	public void testPersist() throws Throwable {
+//		Project p = new Project();
+//
+//		/*
+//		 * A�adimos una vista con una capa
+//		 */
+//		ProjectView v = new ProjectView();
+//		ViewPort vp = new ViewPort( CRSFactory.getCRS("EPSG:23030"));
+//		vp.setImageSize(new Dimension(500, 500));
+//
+//		MapContext fmap = new MapContext(vp);
+//		v.setMapContext(fmap);
+//		FLayer l = LayerFactory.createLayer("Vias",
+//			(VectorialFileDriver) LayerFactory.getDM().getDriver("gvSIG shp driver"),
+//			new File("test/cities.shp"),
+//			CRSFactory.getCRS("EPSG:23030"));
+//		fmap.getLayers().addLayer(l);
+//
+//		/*
+//		 * A�adimos la tabla del tema anterior
+//		 */
+//		SelectableDataSource sds1 = ((FLyrVect) l).getRecordset();
+//		EditableAdapter ea1 = new EditableAdapter();
+//		ea1.setOriginalDataSource(sds1);
+//
+//		ProjectTable pt1 = ProjectFactory.createTable("tabla", ea1);
+//		p.addDocument(pt1);
+//
+//		/*
+//		 * A�adimos otra tabla
+//		 */
+//		SelectableDataSource sds2 = new SelectableDataSource(LayerFactory.getDataSourceFactory().createRandomDataSource("prueba", DataSourceFactory.MANUAL_OPENING));
+//		EditableAdapter ea2 = new EditableAdapter();
+//		ea2.setOriginalDataSource(sds2);
+//		ProjectTable pt2 = ProjectFactory.createTable("tabla2", ea2);
+//		p.addTable(pt2);
+//
+//		/*
+//		 * Creamos un join
+//		 */
+//		String sql = "custom com_iver_cit_gvsig_arcjoin tables '"+
+//		sds1.getName()+"', '"+sds1.getName()+"' values(NAME,NAME);";
+//
+//		SelectableDataSource result = new SelectableDataSource(
+//				LayerFactory.getDataSourceFactory()
+//				.executeSQL(sql, DataSourceFactory.MANUAL_OPENING));
+//		EditableAdapter auxea=new EditableAdapter();
+//		auxea.setOriginalDataSource(result);
+//
+//		pt1.replaceDataSource(auxea);
+//
+//		/*
+//		 * Guardamos y cargamos
+//		 */
+//		File temp = File.createTempFile("junit-", ".gvp");
+//		temp.deleteOnExit();
+//		pe.writeProject(temp, p);
+//
+//		Project p2 = pe.readProject(temp);
+//
+//		/*
+//		 * Comprobamos que las dos tablas son id�nticas
+//		 */
+//		assertTrue(((ProjectTable)p2.getDocumentsByType(ProjectTableFactory.registerName).get(0)).getModel().getRecordset().getAsString().equals(((ProjectTable)p.getTables().get(0)).getModel().getRecordset().getAsString()));
+//		assertTrue(((ProjectTable)p2.getDocumentsByType(ProjectTableFactory.registerName).get(1)).getModel().getRecordset().getAsString().equals(((ProjectTable)p.getTables().get(1)).getModel().getRecordset().getAsString()));
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/test/Persistence.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/sqlQueryValidation/TestSQLQueryValidation.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/sqlQueryValidation/TestSQLQueryValidation.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/sqlQueryValidation/TestSQLQueryValidation.java	(revision 38262)
@@ -0,0 +1,410 @@
+package org.gvsig.app.sqlQueryValidation;
+
+import junit.framework.TestCase;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/**
+ * Tests the methods of the class SQLQueryValidation
+ *    (This class is made without inner static methods for don't create problems to Zql, in this way,
+ *     it's possible to add more tests, with or without long queries.)
+ * 
+ * @author Pablo Piqueras Bartolom� (p_queras@hotmail.com)
+ */
+ public class TestSQLQueryValidation extends TestCase{
+	
+	/*
+	 *  (non-Javadoc)
+	 * @see junit.framework.TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		super.setUp();
+	}
+
+	/*
+	 *  (non-Javadoc)
+	 * @see junit.framework.TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test1() {
+		String query = "SELECT r.name, f.id FROM room r, flat f WHERE (r.user_name LIKE 'P%') AND (r.flat = f.id) AND (r.color_wall LIKE 'white') AND (r.height < 2.20);";
+		
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, false);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test2() {
+		String query = "SELECT * FROM House;";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, false);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());
+			fail();
+		}
+	}
+
+	/**
+	 * A test (Incorrect)
+	 */
+	public void test3() {
+		String query = "SELECT a* FROM House;";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, false);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test4() {
+		String query = "SELECT * FROM House;";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, false);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());
+			fail();
+		}
+	}
+
+	/**
+	 * A test (Correct)
+	 */
+	public void test5() {
+		String query = "r.level = f.level AND r.user_name LIKE \'P%\';";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());
+			fail();
+		}
+	}
+
+	/**
+	 * A test (Incorrect)
+	 */
+	public void test6() {
+		String query = "r.level = f.level a e3 w 	q3 	 �32	9'}97AND r.user_name LIKE \'P%\';";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test7() {
+		String query = "\"codigo\" = 'Canal d'Elx'";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test8() {
+		String query = "\"codigo\" = 'Canal de la M�nega'";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test9() {
+		String query = "\"codigo\" = 'Espa�a'";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test10() {
+		String query = "\"codigo\" = ('Canal d'Elx')";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test11() {
+		String query = "\"codigo\" = ( 'Canal d'Elx' )";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test12() {
+		String query = "\"codigo\" = ( 'Canal d'Elx')";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test13() {
+		String query = "\"codigo\" = ('Canal d'Elx' )";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}	
+	
+	/**
+	 * A test (Incorrect)
+	 */
+	public void test14() {
+		String query = "\"codigo\" = ('Canal d' Elx' )";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+		
+	/**
+	 * A test (Incorrect)
+	 */
+	public void test15() {
+		String query = "\"codigo\" = ('Canal d'Elx d'Alacant' )";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}	
+	
+	/**
+	 * A test (Incorrect)
+	 */
+	public void test16() {
+		String query = "\"fecha\" = Date(11-ene-2004)";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+	
+	/**
+	 * A test (Correct)
+	 */
+	public void test17() {
+		String query = "\"fecha\" = 11-ene-2004";
+
+		System.out.println("�Es v�lida '" + query + "' ?");
+		SQLQueryValidation sqlQueryValidation = new SQLQueryValidation(query, true);
+
+		if (sqlQueryValidation.validateQuery()) {
+			System.out.println("Yes.");
+		}
+		else {
+			System.out.println("No.");
+			System.out.println(sqlQueryValidation.getErrorPositionAsMessage());
+			System.out.println(sqlQueryValidation.getErrorMessage());			
+			fail();
+		}
+	}
+ }
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/sqlQueryValidation/TestSQLQueryValidation.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/gui/filter/TestFilterExpressionFromWhereIsEmpty_Method.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/gui/filter/TestFilterExpressionFromWhereIsEmpty_Method.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/gui/filter/TestFilterExpressionFromWhereIsEmpty_Method.java	(revision 38262)
@@ -0,0 +1,120 @@
+package org.gvsig.app.gui.filter;
+
+import junit.framework.TestCase;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/**
+ * @author Pablo Piqueras Bartolom� (p_queras@hotmail.com)
+ */
+public class TestFilterExpressionFromWhereIsEmpty_Method extends TestCase {
+	/*
+	 *  (non-Javadoc)
+	 * @see junit.framework.TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		super.setUp();
+	}
+
+	/*
+	 *  (non-Javadoc)
+	 * @see junit.framework.TestCase#tearDown()
+	 */
+	protected void tearDown() throws Exception {
+		super.tearDown();
+	}	
+
+	/**
+	 * Test 1 (valid)
+	 */
+	public void test1() {
+		String expression = new String("select * from 'gdbms144426c_10fc90fa1aa__7c18' where ;");
+		
+		System.out.println("� Es vac�o el filtro en: " + expression + " ? ");
+
+		if (this.filterExpressionFromWhereIsEmpty(expression))
+			System.out.println("Si.");
+		else
+			System.out.println("No.");
+	}
+	
+	/**
+	 * Test 2 (invalid)
+	 */
+	public void test2() {
+		String expression = new String("select * from 'gdbms158fd70_10fc92ee61e__7c18' where layer < '61';");
+		
+		System.out.println("� Es vac�o el filtro en: " + expression + " ? ");
+
+		if (this.filterExpressionFromWhereIsEmpty(expression))
+			System.out.println("Si.");
+		else
+			System.out.println("No.");
+	}	
+	
+	/**
+	 * Returns true if the WHERE subconsultation of the filterExpression is empty ("")
+	 * 
+	 * @param expression An string
+	 * @return A boolean value 
+	 */
+	private boolean filterExpressionFromWhereIsEmpty(String expression) {
+		String subExpression = expression.trim();
+		int pos;	
+		
+		// Remove last ';' if exists
+		if (subExpression.charAt(subExpression.length() -1) == ';')
+			subExpression = subExpression.substring(0, subExpression.length() -1).trim();
+		
+		// If there is no 'where' clause
+		if ((pos = subExpression.indexOf("where")) == -1)
+			return false;
+		
+		// If there is no subexpression in the WHERE clause -> true
+		subExpression = subExpression.substring(pos + 5, subExpression.length()).trim(); // + 5 is the length of 'where'
+		if ( subExpression.length() == 0 )
+			return true;
+		else
+			return false;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/gui/filter/TestFilterExpressionFromWhereIsEmpty_Method.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/project/ProjectTest.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/project/ProjectTest.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/project/ProjectTest.java	(revision 38262)
@@ -0,0 +1,91 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.1  2006-11-08 10:57:55  jaume
+* remove unecessary imports
+*
+*
+*/
+package org.gvsig.app.project;
+
+import junit.framework.TestCase;
+
+//TODO comentado para que compile
+public class ProjectTest extends TestCase {
+	static final String projectFile1 = "test/test.gvp";
+	static final String projectFile2 = "test/test.gvp";
+	static final String projectFile3 = null;
+	static final String projectFile4 = null;
+
+	static final String driversPath = "lib-test/drivers";
+	Project p1, p2;
+
+	public void setUp() {
+
+//		LayerFactory.setDriversPath(driversPath);
+//
+//		Reader reader;
+//
+//		// TODO Install drivers support for testing
+//		try {
+//			reader = new FileReader(new File(projectFile1));
+//
+//			XmlTag tag = (XmlTag) XmlTag.unmarshal(reader);
+//			XMLEntity xml=new XMLEntity(tag);
+//			p1 = Project.createFromXML(xml);
+//			p2 = Project.createFromXML(xml);
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//		}
+
+	}
+
+//	public void testSignature() {
+//		try {
+//			assertTrue(p1.computeSignature() == p2.computeSignature());
+//		} catch (SaveException e) {}
+////		assertTrue(p1.equals(p2));
+//	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/project/ProjectTest.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/AllTests.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/AllTests.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/AllTests.java	(revision 38262)
@@ -0,0 +1,31 @@
+package org.gvsig.app;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.gvsig.app.gui.filter.TestFilterExpressionFromWhereIsEmpty_Method;
+import org.gvsig.app.panelGroup.Test2ExceptionsUsingTabbedPanel;
+import org.gvsig.app.panelGroup.Test2ExceptionsUsingTreePanel;
+import org.gvsig.app.panelGroup.TestPanelGroupLoaderFromExtensionPoint;
+import org.gvsig.app.project.ProjectTest;
+import org.gvsig.app.sqlQueryValidation.TestSQLQueryValidation;
+import org.gvsig.app.test.Persistence;
+
+public class AllTests {
+
+	public static Test suite() {
+		TestSuite suite = new TestSuite("Test for org.gvsig.app");
+		//$JUnit-BEGIN$
+		suite.addTestSuite(Persistence.class);
+		suite.addTestSuite(ProjectTest.class);
+		suite.addTestSuite(TestFilterExpressionFromWhereIsEmpty_Method.class);
+		suite.addTestSuite(TestSQLQueryValidation.class);
+		suite.addTestSuite(TestPanelGroupLoaderFromExtensionPoint.class);
+		suite.addTestSuite(Test2ExceptionsUsingTabbedPanel.class);
+		suite.addTestSuite(Test2ExceptionsUsingTreePanel.class);
+		
+		//$JUnit-END$
+		return suite;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src-test/org/gvsig/app/AllTests.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/scolab-logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/scolab-logo.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/iver-logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/iver-logo.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_de.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_de.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_de.properties	(revision 38262)
@@ -0,0 +1,706 @@
+#Translations for language [de]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(Gr\u00f6\u00dfter Ma\u00dfstab)
+(escala_minima)=(Kleinster Ma\u00dfstab)
+1\:=
+_(Simbolo_unico)=(Einmaliges symbol)
+__proyeccion_actual=Aktuelle projektion\:
+__redimensionar_texto_escala=Textgr\u00f6\u00dfe an den ansichtsma\u00dfstab anpassen
+__seleccion_de_fuente=Auswahl der Schriftart
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Nach unten
+abrir=\u00d6ffnen
+abrir_plantilla=Vorlage \u00f6ffnen
+abrir_proyecto=Projekt \u00f6ffnen
+abrir_tooltip=Vorhandenes Projekt \u00f6ffnen
+Abrir_una_capa=Layer \u00f6ffnen
+Accion_Predefinida=Vordefinierte aktion
+aceptar=OK
+Aceptar=OK
+acerca_de=\u00dcber...
+activar=Activate
+activar_regla=Lineal aktivieren
+activos=Aktiv
+add_delete_edit_fields=
+add_layer=Layer hinzuf\u00fcgen
+add_rows=
+adjust_transparency=Transparenz anpassen
+agrupacion=
+agrupar=Gruppieren
+agrupar_capas=Layer gruppieren
+agrupar_graficos=Grafiken gruppieren
+agrupar_linea=Grafiklinie mit grafiken gruppieren
+Ajustar_transparencia=Transparenz anpassen
+ajustes_linea_grafica=Anpassung grafiklinie
+Al_leer_la_leyenda=Beim lesen der legende
+alias=Alias
+align_center=
+align_down=
+align_left=
+align_right=
+align_to_layout_center=
+align_to_layout_down=
+align_to_layout_left=
+align_to_layout_right=
+align_to_layout_up=
+align_to_layout_vertical_center=
+align_up=
+align_vertical_center=
+alineamiento=Ausrichtung\:
+alinear=Ausrichtung
+alinear_graficos=Grafiken ausrichten
+alta=Hoch
+alto=Hoch
+altura=H\u00f6he\:
+Altura_fija_de_texto=Fixierte texth\u00f6he
+ambito=Bereich
+Anadir=Hinzuf\u00fcgen
+Anadir_al_conjunto=Zum Datensatz hinzuf\u00fcgen
+Anadir_capa=Layer hinzuf\u00fcgen
+Anadir_Capa=Layer hinzuf\u00fcgen
+anadir_tag=
+Anadir_todos=Alle hinzuf\u00fcgen
+ancho=Breite
+ancho_alto=Breite x h\u00f6he
+anchura=Breite\:
+Aplicar=Anwenden
+Archivo=Datei
+arriba=Nach oben
+ascending_order=Aufsteigende ordnung
+ascending_order_tooltip=Sortierung nach dem ausgew\u00e4hlten Feld in aufsteigender Ordnung.
+Atributo=Attribut
+automatico=Automatisch
+Ayuda=Hilfe
+back=Zur\u00fcck
+background_color=Hintergrundfarbe
+baja=Niedrig
+Bajar_capa=Layer nach unten
+bandas=Farbstreifen
+barra=Balken\:
+base=base
+base_datos=Datenbank
+bmp=BMP-Dateien
+Bold=Fett
+borra_seleccion=Auswahl l\u00f6schen
+borrador=Entwurf
+borrar=L\u00f6schen
+box=
+brillo=
+brillo_y_contraste=
+browse=
+cajetin=
+Calcular_intervalos=Intervalle berechnen
+calidad=Qualit\u00e4t
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=
+Cambio_Color=Farbe \u00e4ndern
+cambio_nombre=Namen \u00e4ndern
+campo=Feld
+Campo=Feld
+campo_altura_texto=H\u00f6he textfeld\:
+Campo_de_clasificacion=Klassifikationsfeld
+Campo_de_etiquetado=Etikettierfeld
+Campos=Felder
+cancel=Abbrechen
+Cancel=Abbrechen
+cancelar=Abbrechen
+Cancelar=Abbrechen
+Capa=Layer
+Capas=
+Capas_del_localizador=Navigatorlayer
+Centimetros=Zentimeter
+cerrar=Schlie\u00dfen
+Cerrar=Schlie\u00dfen
+change=
+change_before=
+change_behind=
+change_height=
+change_width=
+circulo=Kreis
+clave=Passwort
+close=schlie\u00dfen
+coincidir_tamanyo=
+colocar_a_margenes=Zu den r\u00e4ndern anordnen
+colocar_alrededor_seleccionados=Um ausgew\u00e4hlte graphiken anordnen.
+colocar_alrededor_todos=Um alle grafiken anordnen.
+colocar_delante=Nach vorn
+colocar_detras=Nach hinten
+color=Farbe\:
+Color_final=Endfarbe\:
+Color_inicio=Anfangsfarbe
+color_texto=Textfarbe\:
+comentarios=Kommentare
+comenzar_edicion=
+compleja=
+configurar=Konfigurieren
+configurar_localizador=Navigator konfigurieren
+Configurar_localizador=Navigator konfigurieren ...
+confirmar_borrar=Sind Sie sicher, dass Sie dieses element l\u00f6schen wollen?
+conflicto_de_nombres_de_mapas_al_pegar=
+conflicto_de_nombres_de_tablas_al_pegar=
+conflicto_de_nombres_de_vistas_al_pegar=
+conflito_de_nombres_de_tablas_al_pegar=
+conservar_escala_visualizacion=Darstellungsma\u00dfstab beibehalten
+consulta=Abfrage
+Contengan=Beinhalten
+contraste=Contrast
+coor_geograficas=Geografische koordinaten
+copiar=
+copy=
+cortar=
+creation_date=Erstellungsdatum
+Crucen_con=Sich kreuzen mit
+cuando_activo=Wenn aktiv
+cut=
+Dado_un_campo_de_atributos=Bei vorgegebenen attributfeld\:
+debera_introducir_nombres_para_las_vistas_a_pegar=
+debera_introducir_nombres_para_los_mapas_a_pegar=
+default_projection=
+default_value=
+dehacer=
+delete_field=
+Derecha=Rechts
+Derecho=Rechts
+desagrupar=Gruppe aufl\u00f6sen
+desagrupar_capas=
+desagrupar_graficos=Grafikgruppe aufl\u00f6sen
+descending_order=Absteigende ordnung
+descending_order_tooltip=Sortierung nach dem ausgew\u00e4hlten Feld in absteigender Ordnung.
+descripcion_de_configuracion_capa_de_anotaciones=
+descripcion_de_crear_capa_de_anotaciones=
+desde_arriba=Von oben\:
+desde_izquierda=Von links\:
+desea_borrar_el_documento=
+desea_borrar_la_capa=
+desea_continuar=
+deshacer=
+desplaza_los_elementos_seleccionados_a_la_derecha=
+desplaza_los_elementos_seleccionados_a_la_izquierda=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=
+desplaza_los_elementos_seleccionados_hacia_abajo=
+desplaza_los_elementos_seleccionados_hacia_arriba=
+Desplazamiento=Verschieben
+desviacion_tipica=Typische Abweichung
+distance_units=Ma\u00dfeinheiten
+distribuir=Verteilen\:
+distribuir_elementos_sobre_todo_el_layout=
+distributes_down=
+distributes_horizontal=
+distributes_left=
+distributes_right=
+distributes_to_layout_down=
+distributes_to_layout_horizontal=
+distributes_to_layout_left=
+distributes_to_layout_right=
+distributes_to_layout_up=
+distributes_to_layout_vertical=
+distributes_up=
+distributes_vertical=
+distribuye_el_espacio_entre_los_elementos_en_horizontal=
+distribuye_el_espacio_entre_los_elementos_en_vertical=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=
+divisiones_izquierda=Teilungen auf der linken Seite
+documento=
+documentos_existentes=Vorhandene dokumente
+draw_text_only=
+driver=Treiber
+Dxffiles=DXF-Dateien
+edicion=
+editable=Editierbar
+Editar_leyenda=Legende editieren
+editar_vertices=
+el_numero_maximo_de_intervalos_para_este_campo_es=Die maximal Intervallenummer f\u00fcr dieses Feld ist
+Elegir_Color=Farbe ausw\u00e4hlen
+Elegir_Fuente=Schriftart ausw\u00e4hlen
+elemento_ya_existe=
+Elementos_seleccionados_de_la_capa=Ausgew\u00e4hlte elemente des layers
+Eliminar=L\u00f6schen
+eliminar_capa=Layer l\u00f6schen
+eliminar_columna=
+eliminar_extremos=Extreme l\u00f6schen
+eliminar_fila=
+en_el_mapa=Auf der karte\:
+En_metros=In Metern
+En_pixels=In pixeln
+en_unidades=
+Encuadre=Bildausschnitt
+Encuadre_Vista=Ansicht im bildausschnitt verschieben
+enlace_vivo=Aktiver link zum original
+Enlazar_a_fichero_de_texto=Link zu textdateien
+Enlazar_a_ficheros_de_imagen=Link zu bilddateien
+equal_intervals=Gleiche intervalle
+Error_exportando_SLD=
+Error_guardando_la_leyenda=Fehler beim Speichern der Legende
+Error_guardando_la_plantilla=
+escala=Ma\u00dfstab
+Escala=Ma\u00dfstab
+escala_desconocida=
+escala_maxima=Maximalma\u00dfstab
+Escala_Maxima=Gr\u00f6\u00dfter ma\u00dfstab
+escala_minima=Minimalma\u00dfstab
+Escala_Minima=Kleinster ma\u00dfstab
+escala_usuario=Benutzerdefinierter Ma\u00dfstab
+espaciado_horizontal=Horizontaler rasterabstand
+espaciado_vertical=Vertikaler Rasterabstand
+espacio=Leerzeichen\:
+estadisticas=Statistiken
+este_por_debajo_de_=Kleiner ist als
+este_por_encima_de=Gr\u00f6\u00dfer ist als
+Esten_contenidos_en=Enthalten sind in
+Etiqueta=Etikett
+Etiquetados=Etikettierung
+etiquetas=Etiketten\:
+Etiquetas_estandar=Standard-Etiketten
+Examinar=Browse
+export=Exportieren
+exportar=Exportieren
+exportar_pdf=Als pdf exportieren
+exportar_ps=Als ps exportieren
+extension=Verl\u00e4ngerung
+Extent=Bildbereich
+extents_no_coincidentes=Die ausgew\u00e4hlte Bildgr\u00f6\u00dfe stimmt nicht mit dem Originalbild \u00fcberein.
+factor_zoom_incorrecto=
+fallo_capas=Fehler beim Zugriff auf die Layer. Die folgenden Layer werden aus dem Projekt entfernt
+family=
+fichero=
+Fichero=Datei
+fichero_existe=Ausgew\u00e4hlte datei existiert schon als layergruppe.
+fichero_incorrecto=Unrichtige datei
+fichero_ya_existe_seguro_desea_guardarlo=
+field_already_exists=
+field_decimal_count=
+field_default_value=
+field_length=
+field_manager=
+field_name=
+field_type=
+filtro=Filter
+finish=Beenden
+Font=Schriftart
+formato=Format
+Formato_de_numero_erroneo=
+formato_incorrecto=Unrichtig Format
+fuente=Schriftart
+General=Allgemein
+georeferenciado=
+gestion_encuadre=Verwaltung der Bildausschnitte
+grados=Grad\:
+Grados=Grad
+Graficos=Grafiken
+grosor_linea=Strichst\u00e4rke
+group=Gruppieren
+group_graphic_line=
+grupo=
+guardado=Gespeichert in
+guardar=
+Guardar=Speichern
+guardar_cambios=\u00c4nderungen speichern?
+guardar_como=Speichern unter ...
+guardar_como_plantilla=als Vorlage speichern
+Guardar_el_zoom_actual=Aktuellen zoom speichern
+Guardar_leyenda=Legende speichern
+guardar_proyecto=Projekt speichern
+guardar_tooltip=Speichert die \u00c4nderungen des Projekts
+Habilitar_etiquetado=Etikettierung aktivieren
+Hiperenlace=Hyperlink
+horizontal=Horizontal
+horizontal_space=
+Identificar_Resultados=Ergebnisse identifizieren
+Igual_que_la_impresora=Wie drucker
+igual_todos_lados=Gleiche Verschiebung in alle richtungen
+imagen=Bild
+Implimir=
+importar=Importieren
+Imprimir=Drucken
+Indexando=Indexing...
+Indexando_espacialmente=
+indexar_campos=
+Inferior=Unten
+info=Information
+informacion=Information
+Informacion=Information
+Inicializando=Initialisiert
+initial_warning=
+insert_row=
+Insertar=Einf\u00fcgen
+insertar_cajetin=
+insertar_circulo=Kreis einf\u00fcgen
+insertar_columna=
+insertar_escala=Ma\u00dfstab einf\u00fcgen
+insertar_fila=
+insertar_imagen=Bild einf\u00fcgen
+insertar_leyenda=Legende einf\u00fcgen
+insertar_linea=Linie einf\u00fcgen
+insertar_norte=Nordung einf\u00fcgen
+insertar_poligono=Polygon einf\u00fcgen
+insertar_polilinea=
+insertar_punto=Punkt einf\u00fcgen
+insertar_rectangulo=Rechteck einf\u00fcgen
+insertar_texto=Text einf\u00fcgen
+insertar_vista=Ansicht einf\u00fcgen
+Intersecten_con=Sich \u00fcberschneiden mit
+Intervalo=Intervall
+Intervalos=Intervalle
+introduce_nombre=Geben Sie den neuen Namen ein.
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=
+introduzca_nuevo_nombre_para_la_vista=
+invalid_value_for_gap=
+invert_selection=
+Italic=Kursiv
+Izquierda=Links
+Izquierdo=Links
+join=Verbindung
+jpg=JPEG-Datei
+kilometros=Kilometer
+Kilometros=Kilometer
+leyenda=Legende
+Leyenda=Legende
+leyenda_campo_unido=Man verwendt ein Field der Verbindung in der Legende (und/oder Etikettierung). Tauschen Sie die Legende vorher aus, die Verbindung aufzul\u00f6sen.
+Leyenda_Por_Defecto=Legende nach vorgabe
+linea=Linie
+linea_grafica=Grafiklinie
+lineal_directo=Direktlineal
+link=Link
+Link=Link
+localizador=Locator
+locked_element=
+locked_element_it_cannot_be_deleted=
+locked_element_it_cannot_be_renamed=
+m/pixel=metros/pixel
+malla_activada=Raster aktiviert
+manage_fields=
+mantener_intervalo=Intervall beibehalten
+map_units=Karteneinheiten
+mapa=
+Mapa=Karte
+mapas=Karten
+marco=Rahmen
+marco_vista=Ansichtsrahmen
+margenes=R\u00e4nder\:
+mas_de_100_simbolos=Mehr als 100 Symbols liefern keine Information zu der Karte
+max_length_is=
+maximo=Maximal
+MDIFrame.quiere_salir=Sind Sie sicher, dass Sie das Programm beenden wollen?
+MDIFrame.salir=Beenden
+media=Mittel
+medir_area=Fl\u00e4che messen
+medir_distancias=Abst\u00e4nde messen
+metadatos=
+metros=Meter
+Metros=Meter
+Milimetros=Milimeter
+Millas=Meilen
+minimo=Minimal
+modificar=
+modification_date=Letzte \u00c4nderung
+mostrar_escala_numerica=
+Mostrar_siempre=Immer zeigen
+mostrar_unidades=Einheiten anzeigen
+move_elements=
+Muestra_atributos=Zeigt die attribute der ausgew\u00e4hlten Layer.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Zeigt Elemente des Layers mit je einem symbol pro Wert.
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Zeigt die Elemente des Layers mit der gleichen Farbpalette, abh\u00e4ngig vom Wert eines bestimmten Attributfelds.
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Zeigt alle elemente des layers mit dem gleichen symbol.
+natural_intervals=Nat\u00fcrliche Intervalle
+navegacion=\u00dcbersicht
+navegacion_vista=\u00dcbersicht der Ansicht
+necesita_una_capa_activa=
+necesita_una_capa_vectorial_activa=
+new_field=
+new_field_properties=
+next=Weiter
+ninguna_impresora_configurada=Kein Drucker konfiguriert
+Nivel_de_transparencia=Transparenzgrad
+no=No
+no_activos=inaktiv
+No_de_intervalos=Anzahl intervalle
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=
+No_mostrar=Den Layer nicht zeigen, wenn der Ma\u00dfstab ...
+No_mostrar_la_capa_cuando_la_escala=Den layer nicht zeigen, wenn der ma\u00dfstab ...
+no_se_pegaran_las_tablas=
+no_se_pegaran_las_vistas_del_conflicto=
+No_se_pudo_obtener_la_tabla_de_la_capa=
+no_visibles=Unsichtbar
+nombre=Name
+Nombre=Name
+nombre_no_valido=
+Nombre_que_se_le_dara_al_zoom=Name des zooms
+nombre_sesion=Name der session
+none=
+none_selected=keiner ausgew\u00e4hlt
+normal=Normal
+north=Nord
+Nueva_tabla=Neue tabelle
+nuevo=Neu
+Nuevo_conjunto=Neuer datensatz
+nuevo_nombre_para_el_mapa=
+nuevo_proyecto=Neues projekt
+nuevo_tooltip=Erstellt ein neues projekt
+num_bandas=Anzahl farbstreifen
+num_columnas=
+num_filas=
+Num_intervalos=
+numero_decimales_mostrar=
+numero_incorrecto=Unrichtig nummer
+ok=OK
+opacidad=Lichtundurchl\u00e4ssigkeit
+operacion_cancelada=
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Ausrichtung
+origen_de_datos=Herkunft der daten
+Origen_de_datos=Herkunft der daten
+Origen_de_Datos=Herkunft der daten\:
+owner=Besitzer
+paste=Paste
+paste_elements=
+path=Pfad
+pdf=
+pegar=
+pegar_mapas=
+pegar_vistas=
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Erm\u00f6glicht das etiketieren von elementen der karte, mit dem wert eines bestimmten felds.
+Personalizado=Benutzerdefiniert
+personalizar_margenes=
+Pies=Feet
+pila_de_comandos=
+pixeles=pixel
+pixels=pixels
+Plain=Einfach
+plantilla=
+please_insert_new_field_name=
+png=PNG-Datei
+poligono=
+polilinea=
+poner_capas_a=
+por_debajo_de=unter\:
+por_encima_de=\u00fcber\:
+Por_favor_active_la_capa=
+posicion_linea=Position der Linie
+precision=
+preparar_pagina=Seite einrichten
+Preparar_pagina=Seite einrichten
+presentacion=Pr\u00e4sentation
+previsualizacion=
+Previsualizacion=Voransicht
+Previsualizacion_de_simbolo=Symbolvoransicht
+propiedad=
+propiedades=Eigenschaften
+propiedades_cajetin=
+propiedades_capa=
+propiedades_de_la_capa=Eigenschaften des Layers
+Propiedades_escala_grafica=Eigenschaften des Ma\u00dfstabsbalkens
+propiedades_grafico=Eigenschaften der grafik
+propiedades_mapa=Eigenschaften der Karte
+propiedades_marco_imagenes=Eigenschaften des bildrahmens
+propiedades_marco_leyenda=Eigenschaften des Legenderahmens
+propiedades_marco_vista=Eigenschaften des ansichtsrahmens
+propiedades_raster=Eigenschaften der rasterung
+propiedades_sesion=Eigenschaften der session
+propiedades_tabla=Eigenschaften der tabelle
+Propiedades_texto=Eigenschaften des textes
+propiedades_vista=Eigenschaften der ansicht
+Proyecciones=
+ps=
+puerto=
+Pulgadas=Inches
+punto=Punkt
+quantile_intervals=Quantile Intervalle
+quiere_continuar=W\u00f6llen Sie wietermachen?
+Quitar=Entfernen
+Quitar_capa=Layer entfernen
+quitar_enlaces=Links aufl\u00f6sen
+Quitar_todos=Alle entfernen
+quitar_uniones=Verbindungen aufl\u00f6sen
+rango_de_escalas=Ma\u00dfstabsbereich
+Rango_de_escalas=Ma\u00dfstabsbereich
+realce=Heraushebung
+realmente_desea_guardar=
+recargar=
+recorte_colas=Zuschnitt der Randbereiche
+recorte_vista=Ausschneiden nach Augenma\u00df
+rectangulo=Rechteck
+recuento=Nachz\u00e4hlung
+Recuperar_leyenda=Legende laden
+Recuperar_y_eliminar_otros_zoom=Andere zooms laden oder l\u00f6schen
+refrescar=Aktualisieren
+rehacer=
+rellenar_marco_vista=Ansichtsrahmen f\u00fcllen
+relleno=F\u00fcllung\:
+remove_elements=
+remove_fields=
+remove_row=
+remove_rows=
+rename_field=
+renombrar=Umbenennen
+reproyectar_aviso=Die Layerprojektion deckt sich nicht mit der Ansichtsprojektion. \nACHTUNG\: Bei einigen Transformationen k\u00f6nnte sie ungenau sein.\nLesen Sie bitte die Dokumentation.
+reproyectar_pregunta=W\u00fcnschen Sie eine neue Projektion?
+resolucion_resultado=Ausgabeauf\u00f6sung\:
+resto_valores=Andere werte
+restore_palette=
+rotation_field=
+salir=Schlie\u00dfen
+salir_tooltip=Schlie\u00dfen
+salvar_raster=Als Rasterung sichern
+Sample=Beispiel
+Se_superponen_a=Sich \u00fcberlagern \u00fcber
+Sean_disjuntos_a=getrennt sind von
+Sean_iguales_a=gleich sind wie
+seleccion=Auswahl
+seleccion_fuente=Schriftart w\u00e4hlen
+Seleccion_por_capa=
+selecciona_sistema_de_referencia=
+Seleccionar=ausw\u00e4hlen
+seleccionar_capas=Layer ausw\u00e4hlen
+seleccionar_capas_raster=
+Seleccionar_de_las_capas_activas_los_elementos_que=In den aktiven layern nach elementen suchen, die\:
+Seleccionar_del_conjunto=Aus dem datensatz ausw\u00e4hlen
+Seleccionar_fichero=Datei ausw\u00e4hlen
+seleccionar_por_poligono=
+seleccionar_por_punto=\u00dcber Punkt ausw\u00e4hlen
+seleccionar_por_rectangulo=Auswahlrahmen
+seleccionar_todos=Alle ausw\u00e4hlen
+seleccione_campo_enlace=W\u00e4hlen Sie das Feld aus, \u00fcber das sie verlinken wollen.
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=
+seleccione_el_campo_color_de_la_capa_de_anotaciones=
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=
+seleccione_fecha=W\u00e4hlen sie ein Datum aus ...
+seleccione_tabla_a_enlazar=W\u00e4hlen Sie die Tabelle aus, die Sie verlinken wollen.
+seleccione_tabla_origen=W\u00e4hlen Sie die Originaltabelle f\u00fcr die Verbindung aus.
+selection_color=Farbe der Auswahl
+selection_up=
+separator=
+Servidor=Server
+Shapefile=Shapefile
+show_this_dialog_next_startup=
+si=
+siempre=Immer
+simbolo=
+Simbolo=Symbol
+Simbolo_unico=Einmaliges symbol
+Simbologia=Symbole
+simplificar_leyenda=
+simplify=
+sin_titulo=Ohne Titel
+sincronizar_color_borde_relleno=Die randfarbe mit der f\u00fcllung synchronisieren\:
+Size=Gr\u00f6\u00dfe
+sobre_la_barra=Auf dem Balken
+Solo_para_capas_vectoriales=Nur f\u00fcr Vektorlayer
+start_edition=
+statistics=Statistiken
+stop_edition=
+Style=Stil
+Subir_capa=Layer nach oben
+suma=Summe
+Superior=Oben
+symbol_selector=
+Tabla=Tabelle
+Tabla_de_Atributos=Attributtabelle
+tablas=Tabellen
+Tablas=Tabellen
+tag=tag
+tamano=Gr\u00f6\u00dfe\:
+tamano_metros=Gr\u00f6\u00dfe in Metern
+tamano_pagina=Seitenformat\:
+tamano_posicion=Gr\u00f6\u00dfe und Position
+tamanyo_borde=Randgr\u00f6\u00dfe
+tamanyo_fuente=Schriftgr\u00f6\u00dfe
+tamanyo_pagina=
+tamPixX=
+tamPixY=
+terminar=
+terminar_edicion=
+texto=
+this_table_is_not_self_editable=
+tipo_dato=Datentyp
+tipo_de_intervalo=Intervallesart
+tipo_de_leyenda=Legendentyp
+tipo_fichero_proyecto=Projektdatei gvSIG (*.gvsproj)
+tipo_linea=Strichtyp\:
+tipo_relleno=F\u00fcllstil\:
+tipo_simbolo=Symboltyp\:
+tipos_de_documentos=Dokumenttyp
+titulo=Projektverwalter
+titulo_fframetext=Titel des Textfelds
+to_annotation=
+to_palette=
+tooltip_copiar_al_portapapeles=
+tooltip_cortar_al_portapapeles=
+tooltip_pegar_desde_el_portapapeles=
+Toquen=fassen an
+transparencia=Transparenz
+Transparencia=Transparenz
+transparencia_pixel=
+ungroup=Gruppe aufl\u00f6sen
+unidades=Einheiten\:
+Unidades=Einheiten\:
+untitled=Ohne Titel
+url=
+Usar_indice_espacial=R\u00e4umlichen Index benutzen
+usar_marco=Rahmen verwenden
+usar_titulo=Titel verwenden
+usuario=Benutzer
+utilizar_margenes_impresora=Randbegrenzung des Druckers verwenden
+vacia=
+Valor=Wert
+Valores=Werte
+Valores_unicos=Einmalige werte
+varianza=Varianz
+Ventana=Fenster
+ventana_proyecto=Projektfenster
+Ver=Sehen
+ver_error_capa=
+ver_tabla_atributos=Attributtabelle sehen
+ver_tags=
+ver_tooltip=Zeigt das Projektfenster
+vertical=Vertikal
+vertical_space=
+visible=Sichtbar
+visibles=Sichtbar
+Vista=Ansicht
+vistas=Ansichten
+visualizacion=Darstellung
+Visualizacion=Visualisierung
+visualizar_cuadricula=Raster darstellen
+warning=
+xmax=Maximalwert x
+xmin=Minimalwert x
+Yardas=Yards
+ymax=Maximalwert y
+ymin=Minimalwert y
+Zoom_a_la_capa=
+Zoom_Acercar=Heranzoomen
+Zoom_Alejar=Wegzoomen
+Zoom_Completo=Zoom auf alles
+Zoom_Completo_Vista=Zoom auf alles im bildausschnitt
+zoom_in_factor=
+Zoom_Mas=Gr\u00f6\u00dfer zoomen
+Zoom_Mas_Vista=Im bildausschnitt gr\u00f6\u00dfer zoomen
+Zoom_Menos=Kleiner zoomen
+Zoom_Menos_Vista=Im bildausschnitt kleiner zoomen
+zoom_out_factor=
+Zoom_pixel=Zoom zur Rasteraufl\u00f6sung
+Zoom_Previo=Letzter zoom
+Zoom_Real=Zoom 1\:1
+Zoom_Select=Zur auswahl zoomen

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_de.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gvsig-logo1-association.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gvsig-logo1-association.jpg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-cit.html
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-cit.html	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-cit.html	(revision 38262)
@@ -0,0 +1,12 @@
+<html>
+<body>
+
+<img src="gva-logo_horiz_bicolor.png"><br>
+
+<h2>GVA</h2>
+<br>
+
+<p>EN CONSTRUCCION</p>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-cit.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-logo.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/disid.html
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/disid.html	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/disid.html	(revision 38262)
@@ -0,0 +1,27 @@
+<html>
+<body>
+
+<img src="disid-logo.jpeg"><br>
+
+<h2>DiSiD Technologies</h2>
+<br>
+<p>
+<a href="http://www.disid.com/">http://www.disid.com/</a>
+</p>
+<p>Empresa de ingenier&iacute;a inform&aacute;tica especializada en tecnolog&iacute;a Java.</p>
+<p>Nuestro objetivo es proveer soluciones software enfocadas a resolver problemas y necesidades con
+el objetivo de ofrecer s&oacute;lo lo que los clientes necesitan, evitando gestiones innecesarias.</p>
+<br>
+<p>Especializados en:
+<ul>
+<li>Sistemas de informaci&oacute;n geogr&aacute;fica (gvSIG)</li>
+<li>Reconocimiento y trazabilidad de personas y Activos con representaci&oacute;n gr&aacute;fica</li>
+<li>e-business y Tiendas virtuales</li>
+<li>Portales corporativos y Marketing on-line</li>
+<li>Consultor&iacute;a tecnol&oacute;gica, desarrollo, soporte y formaci&oacute;n Java</li>
+</ul>
+<br>
+<img src="gvsig-logo1-association.jpg">
+<p><em>Miembro de la <a href="http://www.gvsig.com/">Asociaci&oacute;n gvSIG</a></em>
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/disid.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/prodevelop-logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/prodevelop-logo.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_gl.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_gl.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_gl.properties	(revision 38262)
@@ -0,0 +1,706 @@
+#Translations for language [gl]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(escala m\u00e1xima)
+(escala_minima)=(escala m\u00ednima)
+1\:=
+_(Simbolo_unico)=(S\u00edmbolo \u00fanico)
+__proyeccion_actual=Proxecci\u00f3n actual\:
+__redimensionar_texto_escala=Redimensionar o texto a escala coa vista.
+__seleccion_de_fuente=Selecci\u00f3n de fonte
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Abaixo
+abrir=Abrir
+abrir_plantilla=Abrir modelo
+abrir_proyecto=Abrir proxecto
+abrir_tooltip=Abre un proxecto existente
+Abrir_una_capa=Abrir capa
+Accion_Predefinida=Acci\u00f3n predefinida
+aceptar=Aceptar
+Aceptar=Aceptar
+acerca_de=Acerca de...
+activar=Activate
+activar_regla=Activar regra
+activos=Activos
+add_delete_edit_fields=
+add_layer=Engadir capa
+add_rows=
+adjust_transparency=Axustar transparencia
+agrupacion=
+agrupar=Agrupar
+agrupar_capas=Agrupar capas
+agrupar_graficos=Agrupar gr\u00e1ficos
+agrupar_linea=Agrupar li\u00f1a gr\u00e1fica con gr\u00e1ficos
+Ajustar_transparencia=Axustar transparencia
+ajustes_linea_grafica=Axustes de li\u00f1a gr\u00e1fica
+Al_leer_la_leyenda=\u00d3 l\u00e9r a lenda
+alias=Alias
+align_center=
+align_down=
+align_left=
+align_right=
+align_to_layout_center=
+align_to_layout_down=
+align_to_layout_left=
+align_to_layout_right=
+align_to_layout_up=
+align_to_layout_vertical_center=
+align_up=
+align_vertical_center=
+alineamiento=Ali\u00f1amento\:
+alinear=Ali\u00f1ar
+alinear_graficos=Ali\u00f1ar gr\u00e1ficos
+alta=Alta
+alto=Alto
+altura=Altura\:
+Altura_fija_de_texto=Altura fixa do texto
+ambito=\u00c1mbeto
+Anadir=Engadir
+Anadir_al_conjunto=Engadir ao conxunto
+Anadir_capa=Engadir capa
+Anadir_Capa=Engadir capa
+anadir_tag=
+Anadir_todos=Engadir todos
+ancho=Largo
+ancho_alto=Ancho alto
+anchura=Largo\:
+Aplicar=Aplicar
+Archivo=Arquivo
+arriba=Arriba
+ascending_order=Orde ascendente
+ascending_order_tooltip=Ordena polo campo seleccionado en orde ascendente
+Atributo=Atributo
+automatico=Autom\u00e1tico
+Ayuda=Axuda
+back=Anterior
+background_color=C\u00f3r de fondo
+baja=Baixa
+Bajar_capa=Baixar capa
+bandas=Bandas
+barra=Barra\:
+base=base
+base_datos=Base de datos
+bmp=Arquivos de tipo bmp
+Bold=
+borra_seleccion=Borra selecci\u00f3n
+borrador=Borrador
+borrar=Borrar
+box=
+brillo=Brillo
+brillo_y_contraste=Brillo e Contraste
+browse=Examinar
+cajetin=
+Calcular_intervalos=Calcular intervalos
+calidad=Calidade
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=
+Cambio_Color=Cambio c\u00f3r
+cambio_nombre=Cambio de nome
+campo=Campo
+Campo=Campo
+campo_altura_texto=Campo de altura de texto\:
+Campo_de_clasificacion=Campo de clasificaci\u00f3n
+Campo_de_etiquetado=Campo de etiquetado
+Campos=Campos
+cancel=Cancelar
+Cancel=Cancelar
+cancelar=Cancelar
+Cancelar=Cancelar
+Capa=Capa
+Capas=Capas
+Capas_del_localizador=Capas do localizador
+Centimetros=Cent\u00edmetros
+cerrar=Pechar
+Cerrar=Pechar
+change=
+change_before=
+change_behind=
+change_height=
+change_width=
+circulo=C\u00edrculo
+clave=Clave
+close=Pechar
+coincidir_tamanyo=
+colocar_a_margenes=Colocar con referencia a marxes.
+colocar_alrededor_seleccionados=Colocar ao redor dos gr\u00e1ficos seleccionados.
+colocar_alrededor_todos=Colocar ao redor de t\u00f3dolos gr\u00e1ficos
+colocar_delante=Colocar diante
+colocar_detras=Colocar detr\u00e1s
+color=Cor\:
+Color_final=Cor final
+Color_inicio=Cor de inicio
+color_texto=Cor do texto
+comentarios=Comentarios
+comenzar_edicion=
+compleja=
+configurar=Configurar
+configurar_localizador=Configurar localizador
+Configurar_localizador=Configurar localizador
+confirmar_borrar=Seguro que desexa borrar o elemento?
+conflicto_de_nombres_de_mapas_al_pegar=
+conflicto_de_nombres_de_tablas_al_pegar=
+conflicto_de_nombres_de_vistas_al_pegar=
+conflito_de_nombres_de_tablas_al_pegar=
+conservar_escala_visualizacion=Conservar escala de visualizaci\u00f3n
+consulta=Consulta
+Contengan=Conte\u00f1an
+contraste=Contraste
+coor_geograficas=Coordenadas xeogr\u00e1ficas
+copiar=
+copy=Copiar
+cortar=
+creation_date=Data de creaci\u00f3n
+Crucen_con=Crucen con
+cuando_activo=Cando activo
+cut=
+Dado_un_campo_de_atributos=Dado un campo de atributos
+debera_introducir_nombres_para_las_vistas_a_pegar=
+debera_introducir_nombres_para_los_mapas_a_pegar=
+default_projection=
+default_value=
+dehacer=Desfacer
+delete_field=Borrar campo
+Derecha=Dereita
+Derecho=Dereito
+desagrupar=Desagrupar
+desagrupar_capas=
+desagrupar_graficos=Desagrupar gr\u00e1ficos
+descending_order=Orde descendente
+descending_order_tooltip=Ordena polo campo seleccionado en orde descendente
+descripcion_de_configuracion_capa_de_anotaciones=
+descripcion_de_crear_capa_de_anotaciones=
+desde_arriba=Dende arriba\:
+desde_izquierda=Dende a esquerda
+desea_borrar_el_documento=
+desea_borrar_la_capa=
+desea_continuar=
+deshacer=Desfacer
+desplaza_los_elementos_seleccionados_a_la_derecha=
+desplaza_los_elementos_seleccionados_a_la_izquierda=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=
+desplaza_los_elementos_seleccionados_hacia_abajo=
+desplaza_los_elementos_seleccionados_hacia_arriba=
+Desplazamiento=Desprazamento
+desviacion_tipica=Desviaci\u00f3n t\u00edpica
+distance_units=Unidades de medida
+distribuir=Distribu\u00edr\:
+distribuir_elementos_sobre_todo_el_layout=
+distributes_down=
+distributes_horizontal=
+distributes_left=
+distributes_right=
+distributes_to_layout_down=
+distributes_to_layout_horizontal=
+distributes_to_layout_left=Distribuye izquierda del layout
+distributes_to_layout_right=
+distributes_to_layout_up=
+distributes_to_layout_vertical=
+distributes_up=
+distributes_vertical=
+distribuye_el_espacio_entre_los_elementos_en_horizontal=
+distribuye_el_espacio_entre_los_elementos_en_vertical=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=
+divisiones_izquierda=Divisi\u00f3ns \u00e1 esquerda
+documento=
+documentos_existentes=Documentos existentes
+draw_text_only=
+driver=Driver
+Dxffiles=Arquivos .DXF
+edicion=Edici\u00f3n
+editable=
+Editar_leyenda=Editar lenda
+editar_vertices=Editar v\u00e9rtices
+el_numero_maximo_de_intervalos_para_este_campo_es=O n\u00famero m\u00e1ximo de intervalos para este campo \u00e9
+Elegir_Color=Elixir Cor
+Elegir_Fuente=Elixir fonte
+elemento_ya_existe=
+Elementos_seleccionados_de_la_capa=Elementos seleccionados da capa
+Eliminar=Eliminar
+eliminar_capa=Eliminar capa
+eliminar_columna=
+eliminar_extremos=Eliminar extremos
+eliminar_fila=
+en_el_mapa=No mapa\:
+En_metros=En metros
+En_pixels=En pixels
+en_unidades=
+Encuadre=Encadre
+Encuadre_Vista=Encadre sobre a vista
+enlace_vivo=Ligaz\u00f3n viva
+Enlazar_a_fichero_de_texto=Ligar a arquivo de texto
+Enlazar_a_ficheros_de_imagen=Ligar a arquivos de imaxe
+equal_intervals=Intervalos iguais
+Error_exportando_SLD=
+Error_guardando_la_leyenda=Erro ao gardar a lenda
+Error_guardando_la_plantilla=
+escala=Escala
+Escala=Escala
+escala_desconocida=
+escala_maxima=Escala m\u00e1xima
+Escala_Maxima=Escala m\u00e1xima
+escala_minima=Escala m\u00ednima
+Escala_Minima=Escala m\u00ednima
+escala_usuario=Escala especificada polo usuario
+espaciado_horizontal=Espaciado horizontal da malla
+espaciado_vertical=Espaciado vertical da malla
+espacio=Espazo\:
+estadisticas=Estat\u00edsticas
+este_por_debajo_de_=Estea por debaixo de
+este_por_encima_de=Estea por riba de
+Esten_contenidos_en=Estean contidos en
+Etiqueta=Etiqueta
+Etiquetados=Etiquetados
+etiquetas=Etiquetas
+Etiquetas_estandar=Etiquetas est\u00e1ndar
+Examinar=Examinar
+export=Exportar
+exportar=Exportar
+exportar_pdf=Exportar a pdf
+exportar_ps=Exportar a ps
+extension=Extensi\u00f3n
+Extent=Extent
+extents_no_coincidentes=Extensi\u00f3ns non coincidentes
+factor_zoom_incorrecto=
+fallo_capas=Erro accedendo \u00e1s capas. As seguintes capas van ser eliminadas do proxecto
+family=
+fichero=
+Fichero=Arquivo
+fichero_existe=Arquivo existe
+fichero_incorrecto=Arquivo incorrecto
+fichero_ya_existe_seguro_desea_guardarlo=
+field_already_exists=
+field_decimal_count=
+field_default_value=
+field_length=
+field_manager=
+field_name=
+field_type=
+filtro=Filtro
+finish=Rematar
+Font=Fonte
+formato=Formato
+Formato_de_numero_erroneo=
+formato_incorrecto=Formato incorrecto
+fuente=Fonte
+General=Xeral
+georeferenciado=
+gestion_encuadre=Xesti\u00f3n de Encadre
+grados=Graos\:
+Grados=Graos
+Graficos=Gr\u00e1ficos
+grosor_linea=Grosor de li\u00f1a\:
+group=Agrupar
+group_graphic_line=
+grupo=
+guardado=Gardado en
+guardar=Gardar
+Guardar=Gardar
+guardar_cambios=\u00bfQuere gardar os cambios?
+guardar_como=Gardar como
+guardar_como_plantilla=Gardar como dese\u00f1o
+Guardar_el_zoom_actual=Gardar o zoom
+Guardar_leyenda=Gardar lenda
+guardar_proyecto=Gardar proxecto
+guardar_tooltip=Gardar os cambios ao proxecto
+Habilitar_etiquetado=Habilitar etiquetado
+Hiperenlace=Hiperligaz\u00f3n
+horizontal=Horizontal
+horizontal_space=
+Identificar_Resultados=Identificar resultados
+Igual_que_la_impresora=Igual que a impresora
+igual_todos_lados=Desprazamento igual por t\u00f3dolos lados
+imagen=Imaxe
+Implimir=
+importar=Importar
+Imprimir=Imprimir
+Indexando=Indexando...
+Indexando_espacialmente=Indexando espacialmente a capa
+indexar_campos=
+Inferior=Inferior
+info=Informaci\u00f3n
+informacion=Informaci\u00f3n
+Informacion=Informaci\u00f3n
+Inicializando=Inicializando
+initial_warning=
+insert_row=Inserir fila
+Insertar=Insertar
+insertar_cajetin=Inserir cadro de rotulaci\u00f3n
+insertar_circulo=Insertar c\u00edrculo
+insertar_columna=
+insertar_escala=Insertar escala
+insertar_fila=
+insertar_imagen=Insertar imaxe
+insertar_leyenda=Insertar lenda
+insertar_linea=Insertar li\u00f1a
+insertar_norte=Insertar norte
+insertar_poligono=Insertar pol\u00edgono
+insertar_polilinea=Inserir polili\u00f1a
+insertar_punto=Insertar punto
+insertar_rectangulo=Insertar rect\u00e1ngulo
+insertar_texto=Insertar texto
+insertar_vista=Insertar vista
+Intersecten_con=Intersecten con
+Intervalo=Intervalo
+Intervalos=Intervalos
+introduce_nombre=Introduce o novo nome
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=
+introduzca_nuevo_nombre_para_la_vista=
+invalid_value_for_gap=
+invert_selection=
+Italic=
+Izquierda=Esquerda
+Izquierdo=Esquerdo
+join=Empalmar
+jpg=Arquivos JPEG
+kilometros=Kil\u00f3metros
+Kilometros=Kil\u00f3metros
+leyenda=Lenda
+Leyenda=Lenda
+leyenda_campo_unido=Estase a utilizar un campo da uni\u00f3n na lenda (e/ou etiquetado). Cambie a lenda antes de quitar a uni\u00f3n, por favor.
+Leyenda_Por_Defecto=Lenda por defecto
+linea=Li\u00f1a
+linea_grafica=Li\u00f1a gr\u00e1fica
+lineal_directo=Lineal directo
+link=Ligazon
+Link=Ligaz\u00f3n
+localizador=Localizador
+locked_element=
+locked_element_it_cannot_be_deleted=
+locked_element_it_cannot_be_renamed=
+m/pixel=metros/pixel
+malla_activada=Malla activada
+manage_fields=
+mantener_intervalo=Manter intervalo
+map_units=Unidades de mapa
+mapa=
+Mapa=Mapa
+mapas=Mapas
+marco=Marco
+marco_vista=Marco da vista
+margenes=M\u00e1rxenes\:
+mas_de_100_simbolos=M\u00e1is de 100 s\u00edmbolos non adoitan aportar informaci\u00f3n nun plano
+max_length_is=
+maximo=M\u00e1ximo
+MDIFrame.quiere_salir=Est\u00e1 seguro de que quere sa\u00edr?
+MDIFrame.salir=Sa\u00edr
+media=Media
+medir_area=Medir \u00c1rea
+medir_distancias=Medir distancias
+metadatos=Metadatos
+metros=Metros
+Metros=Metros
+Milimetros=Mil\u00edmetros
+Millas=Millas
+minimo=M\u00ednimo
+modificar=
+modification_date=\u00daltima data de modificaci\u00f3n
+mostrar_escala_numerica=
+Mostrar_siempre=Amosar sempre
+mostrar_unidades=Amosar unidades
+move_elements=
+Muestra_atributos=Amosa os atributos das capas seleccionadas
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Amosa os elementos da capa empregando un s\u00edmbolo por cada valor \u00fanico
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Amosa os elementos da capa empregando unha gama de cores en funci\u00f3n do valor dun determinado campo de atributos
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Amosa todolos elementos dunha capa empregando o mesmo s\u00edmbolo
+natural_intervals=Intervalos naturais
+navegacion=Navegaci\u00f3n
+navegacion_vista=Navegaci\u00f3n vista
+necesita_una_capa_activa=
+necesita_una_capa_vectorial_activa=Necesita unha capa vectorial activa
+new_field=Novo campo
+new_field_properties=
+next=Seguinte
+ninguna_impresora_configurada=Ningunha impresora configurada
+Nivel_de_transparencia=Nivel de transparencia
+no=Non
+no_activos=Non activos
+No_de_intervalos=N\u00ba de intervalos
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=
+No_mostrar=Non amosar a capa cando a escala
+No_mostrar_la_capa_cuando_la_escala=Non amosar a capa cando a escala
+no_se_pegaran_las_tablas=
+no_se_pegaran_las_vistas_del_conflicto=
+No_se_pudo_obtener_la_tabla_de_la_capa=Non se puido obter a t\u00e1boa da capa
+no_visibles=Non visibles
+nombre=Nome
+Nombre=Nome
+nombre_no_valido=
+Nombre_que_se_le_dara_al_zoom=Nome que se lle dar\u00e1 ao zoom
+nombre_sesion=Nome da sesi\u00f3n
+none=
+none_selected=Ning\u00fan seleccionado
+normal=Normal
+north=Norte
+Nueva_tabla=Nova t\u00e1boa
+nuevo=Novo
+Nuevo_conjunto=Novo conxunto
+nuevo_nombre_para_el_mapa=
+nuevo_proyecto=Novo proxecto
+nuevo_tooltip=Crea un novo proxecto
+num_bandas=N\u00famero de bandas
+num_columnas=N\u00famero de columnas
+num_filas=
+Num_intervalos=
+numero_decimales_mostrar=
+numero_incorrecto=
+ok=Aceptar
+opacidad=Opacidade
+operacion_cancelada=
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Orientaci\u00f3n\:
+origen_de_datos=Origen de dades
+Origen_de_datos=Orixe dos datos
+Origen_de_Datos=Orixe dos datos\:
+owner=Propietario
+paste=Pegar
+paste_elements=
+path=Ruta
+pdf=
+pegar=
+pegar_mapas=
+pegar_vistas=
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Permite etiquetar os elementos do mapa c\u00f3 valor dun determinado campo
+Personalizado=Persoalizado
+personalizar_margenes=
+Pies=P\u00e9s
+pila_de_comandos=P\u00eda de comandos
+pixeles=p\u00edxeles
+pixels=pixels
+Plain=
+plantilla=
+please_insert_new_field_name=
+png=Arquivos png
+poligono=Pol\u00edgono
+polilinea=polili\u00f1a
+poner_capas_a=
+por_debajo_de=por debaixo de\:
+por_encima_de=por riba de\:
+Por_favor_active_la_capa=Por favor active a capa
+posicion_linea=Posici\u00f3n da li\u00f1a
+precision=
+preparar_pagina=Prepara p\u00e1xina
+Preparar_pagina=Prepara p\u00e1xina
+presentacion=Presentaci\u00f3n
+previsualizacion=Previsualizaci\u00f3n
+Previsualizacion=Previsualizaci\u00f3n
+Previsualizacion_de_simbolo=
+propiedad=
+propiedades=Propiedades
+propiedades_cajetin=Propiedades da cadro de rotulaci\u00f3n
+propiedades_capa=Propiedades da capa
+propiedades_de_la_capa=Propiedades da capa
+Propiedades_escala_grafica=Propiedades da escala gr\u00e1fica
+propiedades_grafico=Propiedades del gr\u00e1fico
+propiedades_mapa=Propiedades do mapa
+propiedades_marco_imagenes=Propiedades do marco de imaxes
+propiedades_marco_leyenda=Propiedades do marco de lenda
+propiedades_marco_vista=Propiedades do marco de vista
+propiedades_raster=Propiedades do raster
+propiedades_sesion=Propiedades da sesi\u00f3n
+propiedades_tabla=Propiedades da t\u00e1boa
+Propiedades_texto=Propiedades do texto
+propiedades_vista=Propiedades da vista
+Proyecciones=
+ps=
+puerto=Porto
+Pulgadas=Pulgadas
+punto=Punto
+quantile_intervals=Intervalos cuantiles
+quiere_continuar=Est\u00e1 seguro de que quere continuar?
+Quitar=Quitar
+Quitar_capa=Quitar capa
+quitar_enlaces=Quitar ligaz\u00f3ns
+Quitar_todos=Quitar todos
+quitar_uniones=Quitar uni\u00f3ns
+rango_de_escalas=Rango de escalas
+Rango_de_escalas=Rango de escalas
+realce=Realce
+realmente_desea_guardar=Realmente desexa gardar?
+recargar=
+recorte_colas=Recorte colas
+recorte_vista=Recorte a vista
+rectangulo=Rect\u00e1ngulo
+recuento=Reconto
+Recuperar_leyenda=Recuperar lenda
+Recuperar_y_eliminar_otros_zoom=Recuperar e eliminar outros zooms
+refrescar=Refrescar
+rehacer=Refacer
+rellenar_marco_vista=Rechear marco da vista
+relleno=Reenchido\:
+remove_elements=
+remove_fields=
+remove_row=Elimina fila
+remove_rows=
+rename_field=
+renombrar=Renomear
+reproyectar_aviso=A proxecci\u00f3n da capa non \u00e9 igual que a da vista\nAVISO\: Pode ser inexacto con algunhas transformaci\u00f3ns.\nPor favor, lea a documentaci\u00f3n
+reproyectar_pregunta=Desexa reproxectar?
+resolucion_resultado=Resoluci\u00f3n do resultado\:
+resto_valores=Resto de valores
+restore_palette=
+rotation_field=
+salir=Sa\u00edr
+salir_tooltip=Sa\u00edr
+salvar_raster=Gardar a raster xeoreferenciado
+Sample=Exemplo
+Se_superponen_a=Sobrep\u00f3\u00f1ense a
+Sean_disjuntos_a=sexan disxuntos a
+Sean_iguales_a=sexan iguais a
+seleccion=Selecci\u00f3n
+seleccion_fuente=Selecci\u00f3n de fonte
+Seleccion_por_capa=
+selecciona_sistema_de_referencia=
+Seleccionar=Seleccionar
+seleccionar_capas=Seleccionar capas
+seleccionar_capas_raster=
+Seleccionar_de_las_capas_activas_los_elementos_que=Seleccionar das capas activas os elementos que\:
+Seleccionar_del_conjunto=Seleccionar do conxunto
+Seleccionar_fichero=Seleccionar arquivo
+seleccionar_por_poligono=
+seleccionar_por_punto=Seleccionar por punto
+seleccionar_por_rectangulo=Seleccionar por rect\u00e1ngulo
+seleccionar_todos=Seleccionar todos
+seleccione_campo_enlace=Seleccionar o campo polo que ligar
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=
+seleccione_el_campo_color_de_la_capa_de_anotaciones=
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=
+seleccione_fecha=Seleccione unha data...
+seleccione_tabla_a_enlazar=Seleccione a t\u00e1boa a ligar
+seleccione_tabla_origen=Selecciona a t\u00e1boa de orixe da join
+selection_color=Cor da selecci\u00f3n
+selection_up=
+separator=
+Servidor=Servidor
+Shapefile=Shapefile
+show_this_dialog_next_startup=
+si=
+siempre=
+simbolo=
+Simbolo=S\u00edmbolo
+Simbolo_unico=S\u00edmbolo \u00fanico
+Simbologia=Simbolox\u00eda
+simplificar_leyenda=
+simplify=
+sin_titulo=Sen t\u00edtulo
+sincronizar_color_borde_relleno=Sincronizar a cor do bordo coa de reenchido\:
+Size=
+sobre_la_barra=Sobre a barra
+Solo_para_capas_vectoriales=S\u00f3 para capas vectoriais
+start_edition=Comenzar edici\u00f3n
+statistics=Estat\u00edsticas
+stop_edition=Rematar edici\u00f3n
+Style=Estilo
+Subir_capa=Subir capa
+suma=Suma
+Superior=Superior
+symbol_selector=
+Tabla=T\u00e1boa
+Tabla_de_Atributos=T\u00e1boa de atributos
+tablas=T\u00e1boas
+Tablas=Taules
+tag=tag
+tamano=Tama\u00f1o\:
+tamano_metros=Tama\u00f1o en metros\:
+tamano_pagina=Tama\u00f1o da p\u00e1xina\:
+tamano_posicion=tama\u00f1o/posici\u00f3n
+tamanyo_borde=Tam\u00f1o do bordo
+tamanyo_fuente=Tama\u00f1o da fonte
+tamanyo_pagina=
+tamPixX=
+tamPixY=
+terminar=
+terminar_edicion=
+texto=Texto
+this_table_is_not_self_editable=
+tipo_dato=Tipo dato
+tipo_de_intervalo=Tipo de intervalo
+tipo_de_leyenda=Tipo de lenda
+tipo_fichero_proyecto=Arquivo de proxecto gvSIG (*.gvsproj)
+tipo_linea=Tipo de Li\u00f1a\:
+tipo_relleno=Tipo de Reenchido\:
+tipo_simbolo=Tipo de s\u00edmbolo\:
+tipos_de_documentos=Tipos de documentos
+titulo=Xestor de proxectos
+titulo_fframetext=T\u00edtulo do campo de texto
+to_annotation=Transforma a capa de anotaci\u00f3ns
+to_palette=
+tooltip_copiar_al_portapapeles=
+tooltip_cortar_al_portapapeles=
+tooltip_pegar_desde_el_portapapeles=
+Toquen=toquen
+transparencia=Transparencia
+Transparencia=Transparencia
+transparencia_pixel=Transparencia por p\u00edxel
+ungroup=Desagrupar
+unidades=Unidades\:
+Unidades=Unidades\:
+untitled=Sen t\u00edtulo
+url=
+Usar_indice_espacial=Usar \u00edndice espacial
+usar_marco=Empregar marco
+usar_titulo=Empregar t\u00edtulo
+usuario=Usuario
+utilizar_margenes_impresora=Empregar m\u00e1rxenes de impresora
+vacia=Baleira
+Valor=Valor
+Valores=Valores
+Valores_unicos=Valores \u00fanicos
+varianza=Varianza
+Ventana=Fiestra
+ventana_proyecto=Vent\u00e1 de proxecto
+Ver=Ver
+ver_error_capa=
+ver_tabla_atributos=Ver T\u00e1boa de atributos
+ver_tags=
+ver_tooltip=Amosa a vent\u00e1 de proxecto
+vertical=Vertical
+vertical_space=
+visible=Visible
+visibles=Vis\u00edbeis
+Vista=Vista
+vistas=Vistas
+visualizacion=Visualizaci\u00f3n
+Visualizacion=Visualizaci\u00f3n
+visualizar_cuadricula=Visualizar malla
+warning=Aviso
+xmax=xmax
+xmin=xmin
+Yardas=Yardas
+ymax=ymax
+ymin=ymin
+Zoom_a_la_capa=Zoom \u00e1 capa
+Zoom_Acercar=Zoom acercar
+Zoom_Alejar=Zoom afastar
+Zoom_Completo=Zoom completo
+Zoom_Completo_Vista=Zoom completo sobre a vista
+zoom_in_factor=
+Zoom_Mas=Zoom m\u00e1is
+Zoom_Mas_Vista=Zoom m\u00e1is sobre a vista
+Zoom_Menos=Zoom menos
+Zoom_Menos_Vista=Zoom menos sobre a vista
+zoom_out_factor=
+Zoom_pixel=Zoom pixel
+Zoom_Previo=Zoom previo
+Zoom_Real=Zoom 1\:1
+Zoom_Select=Zoom ao seleccionado

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_gl.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_en.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_en.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_en.properties	(revision 38262)
@@ -0,0 +1,998 @@
+#Translations for language [en]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(maximum scale)
+(escala_minima)=(minimum scale)
+1\:=
+_(Simbolo_unico)=(Unique symbols)
+__proyeccion_actual=Current projection\:
+__redimensionar_texto_escala=Resize the text to the view scale
+__seleccion_de_fuente=Font selection
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Down
+abrir=Open
+abrir_plantilla=Open template
+abrir_proyecto=Open project
+abrir_tooltip=Open an existing project
+Abrir_una_capa=Open layer
+Accion_Predefinida=Predefined action
+aceptar=Accept
+Aceptar=Accept
+acerca_de=About...
+activar=Activate
+activar_regla=Activate ruler
+activos=Active
+add_delete_edit_fields=The fields can be added, deleted or renamed
+add_layer=Add layer
+add_rows=Add rows
+adjust_transparency=Set transparency
+agrupacion=Grouping
+agrupar=Group
+agrupar_capas=Group layers
+agrupar_graficos=Group graphics
+agrupar_linea=Group graphic line with graphics
+Ajustar_transparencia=Adjust transparency
+ajustes_linea_grafica=Graphic line settings
+Al_leer_la_leyenda=Reading legend
+alias=Alias
+align_center=Align center
+align_down=Align down
+align_left=Align left
+align_right=Align right
+align_to_layout_center=Align in the center of the layout
+align_to_layout_down=Align in the bottom of the layout
+align_to_layout_left=Align in the left of the layout
+align_to_layout_right=Align in the right of the layout
+align_to_layout_up=Alinear arriba del layout
+align_to_layout_vertical_center=Align in the vertical center of the layout
+align_up=Align top
+align_vertical_center=Align in the vertical center
+alineamiento=Alignment\:
+alinear=Align
+alinear_graficos=Align graphics
+alta=High
+alto=Height
+altura=Height\:
+Altura_fija_de_texto=Fixed text height
+ambito=Scope
+Anadir=Add
+Anadir_al_conjunto=Add to set
+Anadir_capa=Add layer
+Anadir_Capa=Add layer
+anadir_tag=Add tag
+Anadir_todos=Add all
+ancho=Width
+ancho_alto=Width x Height
+anchura=Width\:
+Aplicar=Apply
+Archivo=File
+arriba=Up
+ascending_order=Ascending order
+ascending_order_tooltip=Sort by selected field in ascending order
+Atributo=Attribute
+automatico=Automatic
+Ayuda=Help
+back=Previous
+background_color=Background color
+baja=Low
+Bajar_capa=Move layer down
+bandas=Bands
+barra=Bar\:
+base=base
+base_datos=Data base
+bmp=BMP files
+Bold=Bold
+borra_seleccion=Clear selection
+borrador=Draft
+borrar=Delete
+box=box
+brillo=Brightness
+brillo_y_contraste=Brightness and contrast
+browse=Browse
+cajetin=Box
+Calcular_intervalos=Compute intervals
+calidad=Quality
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=Change the selected elements' height to match the highest one.
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=Change the selected elements' width to match the widest one.
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=Change the selected elements' size to match the biggest one.
+Cambio_Color=Change color
+cambio_nombre=Rename
+campo=Field
+Campo=Field
+campo_altura_texto=Text field heigth\:
+Campo_de_clasificacion=Classification field
+Campo_de_etiquetado=Labeling field
+Campos=Fields
+cancel=Cancel
+Cancel=Cancel
+cancelar=Cancel
+Cancelar=Cancel
+Capa=Layer
+Capas=Layers
+Capas_del_localizador=Locator layers
+Centimetros=Centimeters
+cerrar=Close
+Cerrar=Close
+change=Change
+change_before=Bring forward
+change_behind=Send backward
+change_height=Change height
+change_width=Change width
+choose_color=Choose color
+circulo=Circle
+clave=Code
+close=Close
+coincidir_tamanyo=Match size
+colocar_a_margenes=Place with reference to margins.
+colocar_alrededor_seleccionados=Place around the graphics selected.
+colocar_alrededor_todos=Place around all the graphics.
+colocar_delante=Bring to front
+colocar_detras=Place back
+color=Color\:
+Color_final=End color\:
+Color_inicio=Begin color
+color_texto=Text color\:
+comentarios=Comments
+comenzar_edicion=Start edition
+compleja=Complex
+configurar=Configure
+configurar_localizador=Configure locator map
+Configurar_localizador=Configure locator ...
+confirmar_borrar=The element will be removed. Are you sure?
+conflicto_de_nombres_de_mapas_al_pegar=You are trying to paste maps whose names already exist in the current project
+conflicto_de_nombres_de_tablas_al_pegar=You are trying to paste tables whose names already exist in the current project
+conflicto_de_nombres_de_vistas_al_pegar=You are trying to paste views whose names already exist in the current project
+conflito_de_nombres_de_tablas_al_pegar=Table name conflict when pasting
+conservar_escala_visualizacion=Maintain viewing scale
+consulta=Query
+Contengan=Contain
+contraste=Contrast
+coor_geograficas=Geographic coordinates
+copiar=Copy
+copy=Copy
+cortar=Cut
+creation_date=Creation date
+Crucen_con=Cross over
+cuando_activo=When active
+cut=Cut
+Dado_un_campo_de_atributos=Given a attribute field
+datum=Datum
+debera_introducir_nombres_para_las_vistas_a_pegar=You will need to write new names for the views
+debera_introducir_nombres_para_los_mapas_a_pegar=You will need to write new names for the maps
+default_projection=Default projection
+default_value=Default Value
+dehacer=Undo
+delete_field=Delete field
+Derecha=Right
+Derecho=Right
+desagrupar=Ungroup
+desagrupar_capas=Ungroup layers
+desagrupar_graficos=Ungroup graphics
+descending_order=Descending order
+descending_order_tooltip=Sort by selected field in descending order
+descripcion_de_configuracion_capa_de_anotaciones=<HTML>Keep the default values to use the values which are shared by all the attributes of the layer. Select the fields which store the values in order to customize the label aspect.</HTML>
+descripcion_de_crear_capa_de_anotaciones=<HTML>A new virtual layer can be created using this tool, based on an already existing layer which allows to perform advanced labeling. It changes the visualization of the<br> selected layer showing the value of one of its fields.</HTML>
+desde_arriba=From top\:
+desde_izquierda=From left\:
+desea_borrar_el_documento=\u00bfDo you really want to delete the selected documents?
+desea_borrar_la_capa=Do you really want to delete the active layers?
+desea_continuar=\u00bfDo you want to continue?
+deshacer=Undo
+desplaza_los_elementos_seleccionados_a_la_derecha=Shift the selected layers to the right
+desplaza_los_elementos_seleccionados_a_la_izquierda=Shift the selected layers to the left
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=Shift the selected elements to the center on the X axis.
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=Shit the selected elements to the center on the Y axis.
+desplaza_los_elementos_seleccionados_hacia_abajo=Shift the selected elements to the bottom.
+desplaza_los_elementos_seleccionados_hacia_arriba=Shift the selected elements to the top.
+Desplazamiento=Panning
+desviacion_tipica=Standard deviation
+distance_units=Measuring units
+distribuir=Distributing\:
+distribuir_elementos_sobre_todo_el_layout=Arrange the elements over the whole Layout
+distributes_down=Arrange from the bottom
+distributes_horizontal=Arrange elements horizontally
+distributes_left=Arrange from the left
+distributes_right=Arrange from the right
+distributes_to_layout_down=Arrange from the bottom of the layout
+distributes_to_layout_horizontal=Arrange horizontally the layout
+distributes_to_layout_left=Arrange from the left of the layout
+distributes_to_layout_right=Arrange from the right of the layout
+distributes_to_layout_up=Arrange from the top of the layout
+distributes_to_layout_vertical=Arrange vertically the layout
+distributes_up=Arrange from the top
+distributes_vertical=Arrange vertically
+distribuye_el_espacio_entre_los_elementos_en_horizontal=Arrange horizontally the space between elements.
+distribuye_el_espacio_entre_los_elementos_en_vertical=Arrange vertically the space between the elements.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=Arrange the selected elements in an equidistant way from bottom to top.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=Arrange the selected elements in an equidistant way from top to bottom.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=Arrange the selected elements in an equidistant way from right to left.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=Arrange the selected elements in an equidistant way from left to right.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=Arrange horizontally the selected elements in an equidistant way.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=Arrange vertically the selected items in an equidistant way.
+divisiones_izquierda=Divisions to the left
+documento=Document
+documentos_existentes=Existing documents
+dont_find_the_file=File not found
+do_you_want_to_locate_the_file=Do you want to locate the file?
+draw_text_only=Draw text only
+driver=Driver
+driver_error=Driver error.
+Dxffiles=DXFFiles
+edicion=Edition
+editable=Editable
+Editar_leyenda=Edit style
+editar_vertices=Edit vertex
+el_numero_maximo_de_intervalos_para_este_campo_es=The maximum number of intervals for this field is
+Elegir_Color=Select color
+Elegir_Fuente=Select font
+elemento_ya_existe=The element already exists
+Elementos_seleccionados_de_la_capa=Selected items of a layer
+Eliminar=Delete
+eliminar_capa=Delete layer
+eliminar_columna=Remove column
+eliminar_extremos=Remove edges
+eliminar_fila=Remove row
+en_el_mapa=In the layout\:
+En_metros=In meters
+En_pixels=In pixels
+en_unidades=in units
+Encuadre=Zoom Manager
+Encuadre_Vista=View frame pan
+enlace_vivo=Active link
+Enlazar_a_fichero_de_texto=Link to text files
+Enlazar_a_ficheros_de_imagen=Link to image files
+equal_intervals=Equal intervals
+Error_exportando_SLD=Error exporting SLD
+Error_guardando_la_leyenda=Error saving legend
+Error_guardando_la_plantilla=Error saving the template
+escala=Scale
+Escala=Scale
+escala_desconocida=Unknown scale
+escala_maxima=Maximum scale
+Escala_Maxima=Maximum scale
+escala_minima=Minimum scale
+Escala_Minima=Minimum scale
+escala_usuario=Scale specified by the user
+espaciado_horizontal=Horizontal grid spacing
+espaciado_vertical=Vertical grid spacing
+espacio=Space\:
+estadisticas=Statistics
+este_por_debajo_de_=To be under
+este_por_encima_de=To be over
+Esten_contenidos_en=Contained in
+Etiqueta=Label
+Etiquetados=Labeling
+etiquetas=Lables\:
+Etiquetas_estandar=Standard labels
+Examinar=Browse
+export=Export
+exportar=Export
+exportar_pdf=Export to pdf
+exportar_ps=Export to ps
+expresion_error=Expresion error
+extension=Extension
+Extent=Extent
+extents_no_coincidentes=Extent of the selected image does not match with the origin image.
+factor_zoom_incorrecto=Incorrect zoom factor.
+fallo_capas=Layer access error.  The following layers will be deleted from the proyect.
+family=Family
+fichero=file
+Fichero=File
+fichero_existe=Selected file already exists as layer band
+fichero_incorrecto=Invalid file
+fichero_ya_existe_seguro_desea_guardarlo=The file already exists, do you want to continue?
+field_already_exists=Field already exists
+field_decimal_count=Decimal count
+field_default_value=Default value
+field_length=Length
+field_manager=Field Manager
+field_name=Field name
+field_type=Type
+filtro=Filter
+finish=Finish
+Font=Font
+formato=Format
+Formato_de_numero_erroneo=Incorrect number format
+formato_incorrecto=Invalid format
+fuente=Font
+General=General
+georeferenciado=Georeferenced
+gestion_encuadre=Zoom Manager
+grados=Degrees\:
+Grados=Degrees
+Graficos=Graphics
+grosor_linea=Line width\:
+group=Group
+group_graphic_line=Group graphic line
+grupo=group
+guardado=Saved in
+guardar=Save
+Guardar=Save
+guardar_cambios=Save changes?
+guardar_como=Save as...
+guardar_como_plantilla=Save as template
+Guardar_el_zoom_actual=Save current zoom
+Guardar_leyenda=Save legend
+guardar_proyecto=Save project
+guardar_tooltip=Save changes to project
+Habilitar_etiquetado=Enable labeling
+Hiperenlace=Hyperlink
+horizontal=Horizontal
+horizontal_space=Horizontal space
+Identificar_Resultados=Identify results
+Igual_que_la_impresora=Same as printer
+igual_todos_lados=Equal displacement for all sides.
+imagen=Image
+Implimir=Print
+importar=Import
+Imprimir=Print
+Indexando=Indexing...
+Indexando_espacialmente=Spatially indexing the layer
+indexar_campos=Index fields
+Inferior=Lower
+info=Information
+informacion=Information
+Informacion=Information
+Inicializando=Initializing
+initial_warning=<html><b>WARNING\!</b><br>Development version. It might have important errors and even provocate damages in the edited files.<br><br>The last stable version of gvSIG is recommended for daily work.</html>
+input_output_error=Input/Output error.
+insert_row=Insert row
+Insertar=Insert
+insertar_cajetin=Insert grid
+insertar_circulo=Insert circle
+insertar_columna=Insert column
+insertar_escala=Insert scale
+insertar_fila=Insert row
+insertar_imagen=Insert image
+insertar_leyenda=Insert legend
+insertar_linea=Insert line
+insertar_norte=Insert north
+insertar_poligono=Insert polygon
+insertar_polilinea=Insert polyline
+insertar_punto=Insert point
+insertar_rectangulo=Insert rectangle
+insertar_texto=Insert text
+insertar_vista=Insert view
+Intersecten_con=Intersected with
+Intervalo=Interval
+Intervalos=Intervals
+introduce_nombre=Type the new name
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=Insert the name of the new annotation layer
+introduzca_nuevo_nombre_para_la_vista=Write the new name for the view
+invalid_value_for_gap=Invalid value for gap
+invert_selection=Invert selection
+Italic=Italic
+Izquierda=Left
+Izquierdo=Left
+join=Join
+jpg=JPEG files
+keep_the_order_of_values=Keep the order of values.
+kilometros=Kilometers
+Kilometros=Kilometers
+leyenda=Legend
+Leyenda=Legend
+leyenda_campo_unido=You are using a field of the union either in the legend or in the labeling. Please, change the legend before removing the union.
+Leyenda_Por_Defecto=Default legend
+linea=Line
+linea_grafica=Graphic line
+lineal_directo=Direct linear
+link=Link
+Link=Link
+localizador=Locator
+locked_element=Locked element
+locked_element_it_cannot_be_deleted=Locked element.\nIt cannot be deleted.
+locked_element_it_cannot_be_renamed=Locked element.\nIt cannot be removed.
+m/pixel=metros/pixel
+malla_activada=Active grid
+manage_fields=Manage fields
+mantener_intervalo=Keep interval
+map_units=Map units
+mapa=Map
+Mapa=Map
+mapas=Maps
+marco=Frame
+marco_vista=Framework of the view
+margenes=Margins\:
+mas_de_100_simbolos=More than 100 symbols usually do not give any information in a map
+max_length_is=Max length is
+maximo=Maximum
+MDIFrame.quiere_salir=Exit gvSIG?
+MDIFrame.salir=Exit
+media=Mean
+medir_area=Measure area
+medir_distancias=Measure distances
+metadatos=Metadatos
+metros=Meters
+Metros=Meters
+Milimetros=Milimeters
+Millas=Miles
+minimo=Minimum
+modificar=modify
+modification_date=Modification date
+mostrar_escala_numerica=Show numeric scale.
+Mostrar_siempre=To show always
+mostrar_unidades=Show units
+move_elements=Move elements
+Muestra_atributos=Show attributes of selected layers.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Show the layers features using a each unique value symbol
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Show the layers features using a range of color according to values of a attribute field
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Show all the items of a layer using the same symbol
+natural_intervals=Natural intervals
+navegacion=Navigation
+navegacion_vista=Navegation in a view
+necesita_una_capa_activa=Needs an active layer
+necesita_una_capa_vectorial_activa=Needs an active vectorial layer
+new_field=New field
+new_field_properties=New field properties
+next=Next
+ninguna_capa_seleccionada=No layer selected
+ninguna_impresora_configurada=No printer set
+Nivel_de_transparencia=Transparency level
+no=No
+no_activos=Not active
+No_de_intervalos=Nr of intervals
+no_es_posible_aplicar_leyenda_vacia=It's imposible to apply empty legend.
+No_ha_sido_posible_realizar_la_operacion=Unable to perform operation.
+no_hay_campo_seleccionado=
+No_mostrar=Do not show the layer when the scale
+No_mostrar_la_capa_cuando_la_escala=Don't show the layer when the scale
+no_se_pegaran_las_tablas=There will not be any pasted table
+no_se_pegaran_las_vistas_del_conflicto=The conflicting views will not be pasted
+No_se_pudo_obtener_la_tabla_de_la_capa=It was not possible to retrieve from the layer
+no_visibles=Not visible
+nombre=Name
+Nombre=Name
+nombre_no_valido=Invalid name
+Nombre_que_se_le_dara_al_zoom=Name for the zoom
+nombre_sesion=Session name
+none=none
+none_selected=None selected
+normal=Normal
+north=North
+not_GVL_save_question=The selected format is not gvSIG native, it can be used to share legends with other software.\nIf you'd like, in the future, to import back this legend to gvSIG,\nwe recommend to use GVL format in order to avoid losing some of the original legend settings.
+Nueva_tabla=New table
+nuevo=New
+Nuevo_conjunto=New set
+nuevo_nombre_para_el_mapa=Write the new name for the layer
+nuevo_proyecto=New project
+nuevo_tooltip=Create a new project
+num_bandas=Band count
+num_columnas=Number of columns
+num_filas=Number of rows
+Num_intervalos=Number of Intervals
+numero_decimales_mostrar=Number of decimals
+numero_incorrecto=Invalid value
+ok=Ok
+opacidad=Opacity
+operacion_cancelada=Cancelled operation
+options.layout.paper_properties.landscaped=Lands scaped
+options.layout.paper_properties.paper_direction=Paper direction
+options.layout.paper_properties.portrait=Portrait
+options.layout.paper_properties.title=Properties
+options.view.default_map_overview_back_color=Default map overview back color
+options.view.default_selection_color=Default selection color
+options.view.default_view_back_color=Default view back color
+options.view.invisible_new_layers=Add new layers in invisible mode
+options.view.keep_scale_on_resizing=Keep scale on resizing
+orientacion=Orientation\:
+origen_de_datos=Data origin
+Origen_de_datos=Data origin
+Origen_de_Datos=Data origin\:
+owner=Owner
+parse_expresion_error=Parse expresion error.
+paste=Paste
+paste_elements=Paste elements
+path=Path
+pdf=Pdf
+pegar=Paste
+pegar_mapas=Pasta maps
+pegar_vistas=Paste views
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Allows to set label of the map elements with the value of a particular field
+Personalizado=Custom
+personalizar_margenes=Customize margins
+Pies=Feet
+pila_de_comandos=commands stack
+pixeles=pixels
+pixels=pixels
+Plain=Regular
+plantilla=template
+please_insert_new_field_name=Please insert new field name.
+png=PNG files
+poligono=Polygon
+polilinea=polyline
+poner_capas_a=Set layers as
+por_debajo_de=below\:
+por_encima_de=above\:
+Por_favor_active_la_capa=Please, activate the layer
+posicion_linea=Position of the line
+precision=Precision
+preparar_pagina=Prepare page
+Preparar_pagina=Prepare page
+presentacion=Presentation
+previsualizacion=Preview
+Previsualizacion=Preview
+Previsualizacion_de_simbolo=Symbol preview
+projection=Projection
+propiedad=Oroperty
+propiedades=Properties
+propiedades_cajetin=Box properties
+propiedades_capa=Layer properties
+propiedades_de_la_capa=Layer properties
+Propiedades_escala_grafica=Properties of the scale bar
+propiedades_grafico=Graphic properties
+propiedades_mapa=Map properties
+propiedades_marco_imagenes=Properties of Image framework
+propiedades_marco_leyenda=Properties of legend framework
+propiedades_marco_vista=Properties of view framework
+propiedades_raster=Raster properties
+propiedades_sesion=Session properties
+propiedades_tabla=Table properties
+Propiedades_texto=Properties of text
+propiedades_vista=View properties
+Proyecciones=Projections
+ps=Ps
+puerto=Port
+Pulgadas=Inches
+punto=Point
+quantile_intervals=Quantile interval
+quiere_continuar=Would you like to continue?
+Quitar=Remove
+Quitar_capa=Remove layer
+quitar_enlaces=Remove links
+Quitar_todos=Remove all
+quitar_uniones=Remove joins
+rango_de_escalas=Scale range
+Rango_de_escalas=Rank of scales
+realce=Enhance
+realmente_desea_guardar=Would you really like to save?
+recargar=Reload
+recorte_colas=Tail trimming
+recorte_vista=Cut to view
+rectangulo=Rectangle
+recuento=Recount
+Recuperar_leyenda=Load legend
+Recuperar_y_eliminar_otros_zoom=Recover and delete other zoom
+reference_system=Reference System
+refrescar=Refresh
+rehacer=Redo
+rellenar_marco_vista=Fill view framework
+relleno=Fill\:
+remove_elements=Remove elements
+remove_fields=Remove fields
+remove_row=Remove row
+remove_rows=Remove rows
+rename_field=Rename field
+renombrar=Rename
+reproyectar_aviso=The layer projection is not the same as the views projection.\nATENTION\: It can be unaccurate with some transformations.\nPlease read docs
+reproyectar_pregunta=Do you want to reproject?
+resolucion_resultado=Resolution of the result\:
+resto_valores=Other values
+restore_palette=Restore palette
+rotation_field=Rotation field
+salir=Exit
+salir_tooltip=Exit
+salvar_raster=Save as raster
+Sample=Sample
+Se_superponen_a=Over
+Sean_disjuntos_a=disjoint as
+Sean_iguales_a=same as
+seleccion=Selection
+seleccion_fuente=Font selection
+Seleccion_por_capa=Selection by Layer
+selecciona_sistema_de_referencia=Choose reference system
+Seleccionar=Select
+seleccionar_capas=Select Layers
+seleccionar_capas_raster=Select raster layers
+Seleccionar_de_las_capas_activas_los_elementos_que=Select items from active layers that are\:
+Seleccionar_del_conjunto=Select from set
+Seleccionar_fichero=Select file
+seleccionar_por_poligono=Select by polygon
+seleccionar_por_punto=Select by point
+seleccionar_por_rectangulo=Select by rectangle
+seleccionar_todos=Select all
+seleccione_campo_enlace=Select field to use for link
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=<HTML>Choose the field used to store the slope of the label\u0092s text</HTML>
+seleccione_el_campo_color_de_la_capa_de_anotaciones=<HTML>Choose the field used to store the label\u0092s color</HTML>
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=<HTML>Choose the text field which should be used to show the new virtual layer.</HTML>
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=<HTML>Choose the field used to store the label\u0092s font</HTML>
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=<HTML>Choose the field used to store the label\u0092s height</HTML>
+seleccione_fecha=Select date...
+seleccione_tabla_a_enlazar=Select table to link
+seleccione_tabla_origen=Select origin table of the join
+selection_color=Color selection
+selection_up=Move selection to top
+semantic_expresion_error=Semantic expresion error.
+separator=Separator
+Servidor=Server
+Shapefile=Shapefile
+Show_grid=Show grid
+show_this_dialog_next_startup=Show this dialog on next startup
+si=yes
+siempre=Always
+simbolo=Symbol
+Simbolo=Symbol
+Simbolo_unico=Unique symbols
+Simbologia=Symbols
+simplificar_leyenda=Simplify legend
+simplify=Simplify
+sin_titulo=Untitled
+sincronizar_color_borde_relleno=Sincronize color of stroke and fill\:
+Size=Size
+sobre_la_barra=On the scale bar
+Solo_para_capas_vectoriales=Only for vector layers
+sorter=Sorter
+start_edition=Start edition
+statistics=Statistics
+stop_edition=Finish edition
+Style=Style
+Subir_capa=Move layer up
+suma=Sum
+Superior=Upper
+symbol_selector=Symbol selector
+Tabla=Table
+Tabla_de_Atributos=Table of attributes
+tablas=Tables
+Tablas=Tables
+tag=tag
+tamano=Size\:
+tamano_metros=Size in meters
+tamano_pagina=Page Size
+tamano_posicion=size/position
+tamanyo_borde=Border size
+tamanyo_fuente=Font size
+tamanyo_pagina=Page size
+tamPixX=Pixel size X
+tamPixY=Pixel size Y
+terminar=Terminate
+terminar_edicion=Terminate edition
+texto=Text
+this_table_is_not_self_editable=Table not editable
+tipo_dato=Data type
+tipo_de_intervalo=Interval type
+tipo_de_leyenda=Type of legend
+tipo_fichero_proyecto=gvSIG project file(*.gvsproj)
+tipo_linea=Stroke\:
+tipo_relleno=Fill\:
+tipo_simbolo=Type of symbol\:
+tipos_de_documentos=Document types
+titulo=Project manager
+titulo_fframetext=Text field title
+to_annotation=Transform to annotation layer
+to_palette=Change to palete
+tooltip_copiar_al_portapapeles=Copy to clipboard
+tooltip_cortar_al_portapapeles=Cut to clipboard
+tooltip_pegar_desde_el_portapapeles=Paste from clipboard
+Toquen=in contact with
+transparencia=Transparency
+Transparencia=Transparency
+transparencia_pixel=Transparency per pixel
+ungroup=Ungroup
+unidades=Units\:
+Unidades=Units\:
+untitled=Untitled
+url=url
+Usar_indice_espacial=Use spatial index
+usar_marco=Use frame
+usar_titulo=Use title
+usuario=User
+utilizar_margenes_impresora=Use printer margins
+vacia=Empty
+Valor=Value
+Valores=Values
+Valores_unicos=Unique values
+varianza=Variance
+Ventana=Window
+ventana_proyecto=Project window
+Ver=Show
+ver_error_capa=Show errors
+ver_tabla_atributos=See table of attributes
+ver_tags=Show tags
+ver_tooltip=Show project window
+vertical=Vertical
+vertical_space=Vertical space
+visible=Visible
+visibles=Visible
+Vista=View
+vistas=Views
+visualizacion=Viewing
+Visualizacion=Visualization
+visualizar_cuadricula=Visualize grid
+warning=Warning
+xmax=Maximum X
+xmin=Minimum X
+Yardas=Yards
+ymax=Maximum Y
+ymin=Minimum Y
+zone=Zone
+Zoom_a_la_capa=Zoom to layer
+Zoom_Acercar=Zoom in
+Zoom_Alejar=Zoom out
+Zoom_Completo=Full extent
+Zoom_Completo_Vista=View frame full extent
+zoom_in_factor=Zoom in factor
+Zoom_Mas=Zoom In
+Zoom_Mas_Vista=Zoom In view frame
+Zoom_Menos=Zoom out
+Zoom_Menos_Vista=View frame zoom out
+zoom_out_factor=Zoom out factor
+Zoom_pixel=Zoom to raster resolution
+Zoom_Previo=Previous zoom
+Zoom_Real=1\:1 Zoom
+Zoom_Select=Zoom to selection
+too_large_border=Too large border
+
+categories=Categories
+cannot_apply_to_a_non_polygon_layer=Cannot apply to a non-polygon layer
+looks_like_too_low_value_for_this_field_may_cause_system_to_run_slow=Looks like too low value for this field. May cause the system to run slow.
+in_layer=in layer
+could_not_setup_legend=Could not setup legend
+labeling_field=Labeling field
+dot_size=Dot size
+dot_value=Dot value
+outline_color=Border color
+densities=Densities
+high=High
+medium=Medium
+low=Low
+Defines_a_dot_density_symbol_based_on_a_field_value=Defines a dot density symbol based on the value of a field
+dot_density=Dot density
+features=Features
+preview=Preview
+quantities=Quantities
+choose_symbol=Choose symbol
+legend=Legend
+label_text_in_the_TOC=Label text that will appear in the TOC
+exception_cloning_legend=Exception cloning legend.
+character_marker=Character marker
+character_marker_symbol=Character marker symbol
+marker_fill=Marker fill
+choose_marker=Choose marker
+outline=Border
+grid=Grid
+Grid_settings=Grid settings
+random=Random
+fill_properties=Fill properties
+offset=Offset
+separation=Separation
+simple_fill=Simple fill
+fill_color=Fill color
+outline_width=Border width
+trying_to_add_a_non_TypeSymbolEditor_panel=Trying to add a non SymbolEditor panel.
+two_panels_with_the_same_name=Two panels with the same name.
+symbol_property_editor=Symbol property editor
+properties=Properties
+layers=Layers
+type=Type
+units=Units
+layer=Layers
+preview_not_available=Preview is not available
+point_symbols=Marker symbols
+line_symbols=Line symbols
+polygon_symbols=Polygon symbols
+shape_type_not_yet_supported=Shapetype not yet supported
+symbol_library=Symbol library
+could_not_find_symbol_directory=Could not find symbols directory
+options=Options
+new=New
+reset=Reset
+save=Save
+size=Size
+angle=Angle
+width=Width
+save_error=Save error
+marker_fill=Marker fill
+simple_line=Simple line
+simple_marker=Simple marker
+x_offset=X offset
+y_offset=Y offset
+simple_marker_symbol=Simple marker symbol
+enter_description=Enter description
+syntax_error=Syntax error
+error=Error
+label_expression_help=
+expression=Expression
+label_expression_editor=Label expression editor
+method=Method
+class=Class
+classes=Classes
+text_string=Text
+text_symbol=Text symbol
+font_color=Font color
+enable_labeling=Enable labeling
+visualization=Visualization
+label_styles=Label styles
+placement=Placement
+edit_expression=Edit expression
+SQL_query=SQL query
+remane_class=Rename class
+delete_class=Delete class
+add_class=Add class
+label_features_in_this_class=Label features in this class
+labeling=Labeling
+shape_type_error=Shape type error.
+enter_new_name=Enter new name
+placement_properties=Placement properties
+point_settings=Point settings
+line_settings=Line settings
+polygon_settings=Polygon settings
+position=Position
+orientation=Orientation
+parallel=Parallel
+following_line=Following the line
+perpedicular=Perpendicular
+duplicate_labels=Duplicate layers
+place_one_label_per_feature_part=Place one label per feature part
+place_one_label_per_feature=Place one label per feature
+remove_duplicate_labels=Remove duplicate labels
+label_features_in_the_same_way=Label features in the same way
+define_classes_of_features_and_label_each_differently=Define classes of features and label each differently
+label_only_when_selected=Label only when the feature is selected
+could_not_apply_legend=Could not apply legend
+quantity_by_category=Quantity by category
+graduated_symbols=Graduated symbols
+multiple_atributes=Multiple attribute
+too_large_border=Too large border
+file=File
+file_not_found=File not found
+file_corrupt=File corrupt
+unsupported_legend=Unsupported legend
+symbol=Symbol
+from=From
+to=To
+template=Template
+generating_intervals=Generating intervals
+draw_quantities_using_symbol_size_to_show_relative_values=Draws quantities using symbol size to show relative values.
+could_not_get_shape_type=Could not get shape type.
+general=General
+text_field=Text
+text_height_field=Text height field
+rotation_height=Rotation field
+accessing_file_structure=Acessing file structure
+could_not_restore_text_height_field=Could not restore text height field.
+could_not_restore_rotation_field=Could not restore rotation field.
+could_not_restore_text_field=Could not restore text field.
+font=Font
+usupported_layer_type=Unsupported layer type
+driver_exception=Driver exception
+legend_exception=Legend exception
+variation_by=Variation by
+color_ramp=Color ramp
+values_field=Value fields
+color_field=Color field
+symbol_field=Symbol field
+getting_layer_shape_type=Getting layer shape type
+draw_quantities_for_each_category=Draw quantities for each category.
+recovering_recordset=Recovering recordset.
+fields=fields
+user_defined_labels=User defined labels
+label_attributes_defined_in_table=Label attributes defined in table
+current=Current
+text_symbols=Text symbols
+label_expression_help=
+fixed_height=Fixed height
+location=Location
+location_along_the_lines=Location along the lines
+at_best=At best
+at_begin=At begin
+at_end=At end
+label-point-priority-help=Priority: 0 = Blocked, 1 = Highest, 3 = Lowest
+change_location=Change location
+offset_labels_on_top_of_the_points=Offset labels on top of the points
+offset_labels_horizontally=Offest labels horizontally around the point.
+always_straight=Always straight
+always_horizontal=Always horizontal
+orientation_system=Orientation system
+line=Line
+page=Page
+below=Below
+on_the_line=On the line
+above=Above
+getting_shape_type=Getting shape type
+confirmation_dialog=Confirmation dialog
+options.view.behavior.screen_refreshrate=Screen refresh rate
+options.view.behavior.screen_refreshrate.none=<html><b>None</b> (fastest drawing)</html>
+options.view.behavior.screen_refreshrate.half=<html><b>Half</b></html>
+options.view.behavior.screen_refreshrate.full=<html><b>Full</b> (real time response)</html>
+options.view.behavior.screen_refresh_rate.help=<html><b>Note:</b> the screen refresh rate allows to improve the map navigation experience by visually reducing the latency time between map drawings. This is specially interesting in edition time. However, the refresh is a task that slightly increases CPU processing time (&lt;15%). So, the greather refresh rate the more time is required to draw a map.</html>.
+warning_you_must_input_the_exact_name_this_difference_between_capital_letters_and_small_letters=<html>Warning: you must input the exact name (this difference between capital letters and small letters).</html>
+formato_del_campo_incorrecto=Incorrect format
+error_opening_the_document=Error opening the document
+height=Height
+field=Field
+gradient_fill=Gradient fill
+intervals=Intervals
+percentage=Percentage
+style=Style
+gradient_color=Gradient color
+gradient_fill_symbol=Gradient fill symbol
+buffered=Buffered
+lineal=Lineal
+circular=Circular
+rectangular=Rectangular
+bitmap_and_svg_image_files=Bitmaps and SVG image files
+picture_fill=Picture fill
+scale=Scale
+could_not_open_picture_file=Could not open picture file
+picture_fill_symbol=Picture fill symbol
+text=Text
+formatted=Formatted
+advanced=Advanced
+simple_text_symbol=Simple text symbol
+simple_fill_symbol=Simple fill symbol
+fill_opacity=Fill opacity
+use_outline=Use outline
+outline_opacity=Outline opacity
+failed_installing_symbol_editor=Failed installing symbol editor
+in_the_world=In the world
+in_the_paper=In the paper
+marker_fill_symbol=Marker fill symbol
+apply_visual_correction_to_glyph_for_precise_size_and_position=Apply visual correction to glyph for precise size and positioning
+arrow_decorator=Arrow decorator
+use_decorator=Use decorator
+arrow_sharpness=Arrow sharpness
+number_of_positions=Number of positions
+flip=Flip
+flip_all=Flip all
+flip_first=Flip first
+rotation=Rotation
+rotate_symbol_to_follow_line_angle=Rotate symbol to follow line angle
+keep_symbol_at_fixed_angle_to_page=Keep symbol at fixed angle to page
+no_desc=No description
+line_style=Line style
+mask=Mask
+halo=Halo
+line_fill=Line fill
+line_fill_symbol=Line fill symbol
+description=Description
+merge=Merge
+symbol_levels=Symbol levels
+draw_symbols_in_specified_order=Draw symbols in specified order
+default_view=Default view
+advanced_view=Advanced view
+marker_style=Marker style
+use_outline=Use outline
+select_a_color_scheme=Select a color scheme
+picture_line_symbol=Picture line symbol
+failed_accessing_file=Failed accessing file
+picture_file=Picture file
+selection_picture_file=Selection picture file
+picture_marker_symbol=Picture marker symbol
+style_library=Style library
+new_style=New style
+editing=Editing
+edit_style=Edit style
+tools=Tools
+add_text_area=Add text area
+offset_label=Offset label
+marker_line=Marker line
+marker_line_symbol=Marker line symbol
+undefined_for_StylePreviewer_use=Undefined for StylePreviewer use
+instead=instead
+marker=Marker
+fill=Fill
+behavior=Behavior
+line_properties=Line properties
+join_style=Join style
+join_bevel=Bevel
+join_miter=Miter
+join_round=Round
+end_style=End style
+cap_butt=Butt
+cap_round=Round
+cap_square=Square
+fill_pattern=Fill pattern
+unsupported_format=Unsupported format
+_Metadata=Metadata
+Central_point=Central point
+Final_point=Final point
+Insert_point=Insert point
+Intersection_point=Intersection point
+Medium_point=Middle point
+Nearest_point=Nearest point
+Perpendicular_point=Perpendicular point
+Pixel_point=Pixel-adjusted
+Quadrant_point=Quadrant-adjusted
+Tangent_point=Tangent point

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_en.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/about.htm
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/about.htm	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/about.htm	(revision 38262)
@@ -0,0 +1,46 @@
+<html>
+<body>
+
+<img src="gvsig-logo1-association.png"><br>
+<h2>gvSIG desktop</h2>
+<p>
+A Geographic Information System (GIS) for desktop environments<br>
+<br>
+Version: %(version)<br>
+Build: %(build)<br>
+Java version: %(java.version)<br/>
+&copy; Copyright gvSIG Association. All rights reserved.<br>
+<br>
+For more information, contact:<a href="http://www.gvsig.com/contact-info">http://www.gvsig.com/contact-info</a><br>
+Or visit <a href="http://www.gvsig.org">http://www.gvsig.org</a>
+</p>
+<br>
+<br>
+<br>
+<font face="Arial, Helvetica, sans-serif"> 
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+<br>
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more dlogo.jpgetails.<br>
+<br>
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
+<br>
+
+<p>With our most sincere thanks to:</p>
+<ul>
+	<li><a target="blank" href="http://www.gvsig.org/web/community/agradecimientos/traductores/">Traductores</a></li>
+	<li><a target="blank" href="http://www.gvsig.org/web/community/agradecimientos/testers/">Testers</a></li>
+	<li><a target="blank" href="http://www.gvsig.org/web/community/agradecimientos/otras-colaboraciones/">Otras colaboraciones</a></li>
+</ul>
+      
+
+</font>
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/about.htm
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_cs.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_cs.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_cs.properties	(revision 38262)
@@ -0,0 +1,706 @@
+#Translations for language [cs]
+#Mon Nov 06 09:04:31 CET 2006
+(escala_maxima)=(maxim\u00e1ln\u00ed m\u011b\u0159\u00edtko)
+(escala_minima)=(minim\u00e1ln\u00ed m\u011b\u0159\u00edtko)
+1\:=
+_(Simbolo_unico)=(Unik\u00e1tn\u00ed symboly)
+__proyeccion_actual=Aktu\u00e1ln\u00ed projekce\:
+__redimensionar_texto_escala=Zm\u011bna velikosti textu dle zobrazovac\u00edho m\u011b\u0159\u00edtka
+__seleccion_de_fuente=V\u00fdb\u011br p\u00edsma
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Dol\u016f
+abrir=Otev\u0159\u00edt
+abrir_plantilla=Otev\u0159\u00edt \u0161ablonu
+abrir_proyecto=Otev\u0159\u00edt projekt
+abrir_tooltip=Otev\u0159\u00edt existuj\u00edc\u00ed projekt
+Abrir_una_capa=Otev\u0159\u00edt vrstvu
+Accion_Predefinida=P\u0159eddefinovan\u00e1 akce
+aceptar=Budi\u017e
+Aceptar=Budi\u017e
+acerca_de=O programu...
+activar=Activate
+activar_regla=Aktivace prav\u00edtka
+activos=Aktivn\u00ed
+add_delete_edit_fields=Atribut m\u016f\u017ee b\u00fdt vlo\u017een, smaz\u00e1n nebo p\u0159ejmenov\u00e1n.
+add_layer=P\u0159idat vrstvu
+add_rows=P\u0159idej z\u00e1znam
+adjust_transparency=Nastaven\u00ed pr\u016fhlednosti
+agrupacion=Seskupen\u00ed
+agrupar=Seskupit
+agrupar_capas=Seskupen\u00ed vrstev
+agrupar_graficos=Seskupen\u00ed prvk\u016f
+agrupar_linea=Seskupen\u00ed lini\u00ed s grafick\u00fdmi prvky
+Ajustar_transparencia=Nastavit pr\u016fhlednost
+ajustes_linea_grafica=Nastaven\u00ed lini\u00ed
+Al_leer_la_leyenda=na\u010d\u00edt\u00e1n\u00ed legendy
+alias=Alias
+align_center=Zarovnej na st\u0159ed
+align_down=Zarovnej dol\u016f
+align_left=Zarovnej vlevo
+align_right=Zarovnej vpravo
+align_to_layout_center=Zarovnej na st\u0159ed mapy
+align_to_layout_down=Zarovnej k spodn\u00edmu okraji mapy
+align_to_layout_left=Zarovnej k lev\u00e9mu okraji mapy
+align_to_layout_right=Zarovnej k prav\u00e9mu okraji mapy
+align_to_layout_up=Zarovnej k horn\u00edmu okraji mapy
+align_to_layout_vertical_center=Zarovnej na vektik\u00e1ln\u00ed st\u0159ed mapy
+align_up=Zarovnej nahoru
+align_vertical_center=Zarovnej na vektik\u00e1ln\u00ed st\u0159ed
+alineamiento=Zarovn\u00e1n\u00ed\:
+alinear=Zarovn\u00e1n\u00ed
+alinear_graficos=Zarovnat prvek
+alta=Vysok\u00fd
+alto=V\u00fd\u0161ka
+altura=V\u00fd\u0161ka\:
+Altura_fija_de_texto=Pevn\u00e1 v\u00fd\u0161ka textu
+ambito=Rozsah
+Anadir=P\u0159idat
+Anadir_al_conjunto=P\u0159idat do mno\u017einy
+Anadir_capa=P\u0159idat vrstvu
+Anadir_Capa=P\u0159idat vrstvu
+anadir_tag=P\u010didej tag
+Anadir_todos=P\u0159idat v\u0161e
+ancho=\u0160\u00ed\u0159ka
+ancho_alto=\u0160\u00ed\u0159ka X v\u00fd\u0161ka
+anchura=\u0160\u00ed\u0159ka\:
+Aplicar=Pou\u017e\u00edt
+Archivo=Soubor
+arriba=Nahoru
+ascending_order=Vzestupn\u00e9 po\u0159ad\u00ed
+ascending_order_tooltip=Se\u0159adit podle zvolen\u00e9 polo\u017eky vzestupn\u011b
+Atributo=Atribut
+automatico=Automaticky
+Ayuda=N\u00e1pov\u011bda
+back=P\u0159edchoz\u00ed
+background_color=Barva pozad\u00ed
+baja=Spodn\u00ed
+Bajar_capa=P\u0159esun vrstvy dol\u016f
+bandas=Okraje
+barra=Sloupec\:
+base=base
+base_datos=Datab\u00e1ze
+bmp=BMP soubory
+Bold=Tu\u010dn\u00fd
+borra_seleccion=Vymazat vybran\u00e9
+borrador=Koncept
+borrar=Smazat/Zru\u0161it
+box=box
+brillo=Jas
+brillo_y_contraste=Jas a kontrats
+browse=Vyhledej
+cajetin=Box
+Calcular_intervalos=V\u00fdpo\u010det intervalu
+calidad=Kvalita
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=Zm\u011b\u0148 v\u00fd\u0161ku vybran\u00e9ho elementu na v\u00fd\u0161ku nejvy\u0161\u0161\u00edho elementu.
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=Zm\u011b\u0148 \u0161\u00ed\u0159ku vybran\u00e9ho elementu na \u0161\u00ed\u0159ku nej\u0161i\u0159\u0161\u00edho elementu.
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=Zm\u011b\u0148 velikost vybran\u00e9ho elementu na velikost nejv\u011bt\u0161\u00edho elementu.
+Cambio_Color=Zm\u011bna barvy
+cambio_nombre=Zm\u011bna n\u00e1zvu
+campo=Pole
+Campo=Pole
+campo_altura_texto=V\u00fd\u0161ka textov\u00e9ho pole\:
+Campo_de_clasificacion=Kl\u00ed\u010dov\u00e1 polo\u017eka
+Campo_de_etiquetado=Popisn\u00e9 pole
+Campos=Pole
+cancel=Zru\u0161it
+Cancel=Zru\u0161it
+cancelar=Zru\u0161it
+Cancelar=Zru\u0161it
+Capa=Vrstva
+Capas=Vrstvy
+Capas_del_localizador=Lokalizace vrstev
+Centimetros=Centimetry
+cerrar=Zav\u0159\u00edt
+Cerrar=Zav\u0159\u00edt
+change=
+change_before=P\u0159en\u00e9st do pop\u0159ed\u00ed
+change_behind=Poslad do pozad\u00ed
+change_height=Zm\u011bnit v\u00fd\u0161ku
+change_width=Zm\u011bnit \u0161\u00ed\u0159ku
+circulo=Kru\u017enice
+clave=K\u00f3d
+close=zav\u0159\u00edt
+coincidir_tamanyo=Srovnej velikost
+colocar_a_margenes=Um\u00edstit s referenc\u00ed k okraji
+colocar_alrededor_seleccionados=Um\u00edstit kolem vybran\u00e9 polo\u017eky
+colocar_alrededor_todos=Um\u00edstit kolem v\u0161ech polo\u017eek
+colocar_delante=P\u0159en\u00e9st dop\u0159edu
+colocar_detras=P\u0159en\u00e9st do pozad\u00ed
+color=Barva\:
+Color_final=Koncov\u00e1 barva\:
+Color_inicio=Po\u010d\u00e1te\u010dn\u00ed barva
+color_texto=Barva textu\:
+comentarios=Koment\u00e1\u0159e
+comenzar_edicion=Zahaj editaci
+compleja=
+configurar=Konfigurace
+configurar_localizador=Konfikurace mapy lok\u00e1toru
+Configurar_localizador=Konfigurace lok\u00e1toru
+confirmar_borrar=Prvek bude odstran\u011bn. Jste si jist\u00fd?
+conflicto_de_nombres_de_mapas_al_pegar=Pokou\u0161\u00edte se vlo\u017eit mapu jeji\u017e jm\u00e9no u\u017e v tomto projektu existuje
+conflicto_de_nombres_de_tablas_al_pegar=Pokou\u0161\u00edte se vlo\u017eit tabulku jeji\u017e jm\u00e9no u\u017e v tomto projektu existuje
+conflicto_de_nombres_de_vistas_al_pegar=Pokou\u0161\u00edte se vlo\u017eit pohled jeji\u017e jm\u00e9no u\u017e v tomto projektu existuje
+conflito_de_nombres_de_tablas_al_pegar=konflikt se jm\u00e9nem tabulek p\u0159i vkl\u00e1d\u00e1n\u00ed
+conservar_escala_visualizacion=Nastaven\u00ed zobrazovac\u00edho m\u011b\u0159\u00edtka
+consulta=Query
+Contengan=Obsahuje
+contraste=Contrast
+coor_geograficas=Geografick\u00e9 sou\u0159adnice
+copiar=Kop\u00edrovat
+copy=Kop\u00edrovat
+cortar=P\u0159esu\u0148
+creation_date=Datum vytvo\u0159en\u00ed
+Crucen_con=P\u0159ek\u0159\u00ed\u017een\u00fd s
+cuando_activo=Kdy\u017e je aktivn\u00ed
+cut=Vyst\u0159ihnout
+Dado_un_campo_de_atributos=Zadan\u00fd atribut
+debera_introducir_nombres_para_las_vistas_a_pegar=Mus\u00edte napsat nov\u00e9 n\u00e1zvy pohled\u016f
+debera_introducir_nombres_para_los_mapas_a_pegar=Mus\u00edte napsat nov\u00e9 n\u00e1zvy map
+default_projection=
+default_value=Implicitn\u00ed hodnota
+dehacer=Zp\u011bt
+delete_field=Smazat polo\u017eku
+Derecha=Prav\u00e1 strana
+Derecho=Prav\u00fd
+desagrupar=Odskupit
+desagrupar_capas=Odskupit vrstvy
+desagrupar_graficos=Odskupit prvky
+descending_order=Sestupn\u00e9 po\u0159ad\u00ed
+descending_order_tooltip=Se\u0159adit podle zvolen\u00e9 polo\u017eky sestupn\u011b
+descripcion_de_configuracion_capa_de_anotaciones=<HTML>Nechte implicitn\u00ed hodnoty, kter\u00e9 jsou sd\u00edlen\u00e9 v\u0161emi atributy vrstvy. Zvolte pole, kter\u00e1 obsahuj\u00ed hodnoty pro \u00fapavu popisu.</HTML>
+descripcion_de_crear_capa_de_anotaciones=<HTML>Nov\u00e1 virtu\u00e1ln\u00ed vrstva m\u016f\u017ee b\u00fdt vytvo\u0159ena pomoc\u00ed tohoto n\u00e1stroje na z\u00e1klad\u011b existuj\u00edc\u00ed vrstvy, kter\u00e1 umo\u017e\u0148uje pokro\u010dil\u00e9 popisy. Zm\u011bn\u00ed se zobrazen\u00ed <br> zvolen\u00e9 vrstvy na zobrazen\u00ed hodnot sv\u00fdch polo\u017eek.</HTML>
+desde_arriba=Shora\:
+desde_izquierda=Z leva\:
+desea_borrar_el_documento=Opravdu chcete smazat vybran\u00e9 dokumenty?
+desea_borrar_la_capa=Opravdu chcete smazat vybran\u00e9 vrstvy?
+desea_continuar=Chcete pokra\u010dovat?
+deshacer=Zp\u011bt
+desplaza_los_elementos_seleccionados_a_la_derecha=P\u0159esunout zvolen\u00e9 vrstvy doprava
+desplaza_los_elementos_seleccionados_a_la_izquierda=P\u0159esunout zvolen\u00e9 vrstvy doleva
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=P\u0159esunout zvolen\u00e9 prvky doprost\u0159ed osy X
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=P\u0159esunout zvolen\u00e9 prvky doprost\u0159ed osy Y
+desplaza_los_elementos_seleccionados_hacia_abajo=P\u0159esunout zvolen\u00e9 prvky dospodu
+desplaza_los_elementos_seleccionados_hacia_arriba=P\u0159esunout zvolen\u00e9 prvky nahoru
+Desplazamiento=P\u0159em\u00edst\u011bn\u00ed
+desviacion_tipica=Standardn\u00ed odchylka
+distance_units=Jednotky vzd\u00e1lenosti
+distribuir=Rozm\u00edstit\:
+distribuir_elementos_sobre_todo_el_layout=Uspo\u0159\u00e1dej elementy p\u0159es celou mapu.
+distributes_down=Uspo\u0159\u00e1dej ze spodu
+distributes_horizontal=Uspo\u0159\u00e1dej elementy horizont\u00e1ln\u011b
+distributes_left=Uspo\u0159\u00e1dej zleva
+distributes_right=Uspo\u0159\u00e1dej zprava
+distributes_to_layout_down=Uspo\u0159\u00e1dej ze spodu mapy
+distributes_to_layout_horizontal=Uspo\u0159\u00e1dej mapu horizont\u00e1ln\u011b
+distributes_to_layout_left=Uspo\u0159\u00e1dej mapu z leva
+distributes_to_layout_right=Uspo\u0159\u00e1dej mapu z prava
+distributes_to_layout_up=Uspo\u0159\u00e1dej mapu shora
+distributes_to_layout_vertical=Uspo\u0159\u00e1dej mapu vertik\u00e1ln\u011b
+distributes_up=Uspo\u0159\u00e1dej shora
+distributes_vertical=Uspo\u0159\u00e1dej vertik\u00e1ln\u011b
+distribuye_el_espacio_entre_los_elementos_en_horizontal=Uspo\u0159\u00e1dej horizont\u00e1ln\u011b mezery mezi elementy.
+distribuye_el_espacio_entre_los_elementos_en_vertical=Uspo\u0159\u00e1dej vertik\u00e1ln\u011b mezery mezi elementy.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=Uspo\u0159\u00e1dej vybran\u00e9 elementy rovnom\u011brn\u011b ze spodu nahoru.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=Uspo\u0159\u00e1dej vybran\u00e9 elementy rovnom\u011brn\u011b shora dolu.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=Uspo\u0159\u00e1dej vybran\u00e9 elementy rovnom\u011brn\u011b zprava do leva.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=Uspo\u0159\u00e1dej vybran\u00e9 elementy rovnom\u011brn\u011b zleva do prava.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=Uspo\u0159\u00e1dej rovnom\u011brn\u011b vybran\u00e9 elementy v horizont\u00e1ln\u00edm sm\u011bru.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=Uspo\u0159\u00e1dej rovnom\u011brn\u011b vybran\u00e9 elementy ve vertik\u00e1\u00edln\u00edm sm\u011bru.
+divisiones_izquierda=D\u011blen\u00ed doleva
+documento=
+documentos_existentes=Existuj\u00edc\u00ed dokumenty
+draw_text_only=Vykresl\u00ed jenom text
+driver=Ovlada\u010d
+Dxffiles=DXF soubory
+edicion=Editace
+editable=Editovateln\u00fd
+Editar_leyenda=Upravit styl
+editar_vertices=Edituj vrchol
+el_numero_maximo_de_intervalos_para_este_campo_es=Maxim\u00e1ln\u00ed po\u010det interval\u016f pro tuto polo\u017eku je
+Elegir_Color=Select Barva
+Elegir_Fuente=Vybrat p\u00edsmo
+elemento_ya_existe=Element u\u017e existuje
+Elementos_seleccionados_de_la_capa=Vybran\u00e9 polo\u017eky z vrstvy
+Eliminar=Smazat
+eliminar_capa=Smazat vrstvu
+eliminar_columna=Odstra\u0148 sloupec
+eliminar_extremos=Odstranit hrany
+eliminar_fila=Odstra\u0148 z\u00e1znam
+en_el_mapa=Ve vrstv\u011b\:
+En_metros=V metrech
+En_pixels=V pixelech
+en_unidades=v jednotk\u00e1ch
+Encuadre=Zoom
+Encuadre_Vista=Zobrazit posunova\u010d
+enlace_vivo=Aktivn\u00ed odkaz
+Enlazar_a_fichero_de_texto=Odkaz na textov\u00e9 soubory
+Enlazar_a_ficheros_de_imagen=Odkaz na soubory s obr\u00e1zky
+equal_intervals=Shodn\u00e9 intervaly
+Error_exportando_SLD=Chyba p\u0159i exportu do SLD
+Error_guardando_la_leyenda=Chyba p\u0159i ukl\u00e1d\u00e1n\u00ed legendy
+Error_guardando_la_plantilla=Chyba p\u0159i ukl\u00e1d\u00e1n\u00ed \u0161ablony
+escala=M\u011b\u0159\u00edtko
+Escala=M\u011b\u0159\u00edtko
+escala_desconocida=Nezn\u00e1m\u00e9 m\u011b\u0159\u00edtko
+escala_maxima=Maxim\u00edln\u00ed m\u011b\u0159\u00edtko
+Escala_Maxima=Maxim\u00e1ln\u00ed m\u011b\u0159\u00edtko
+escala_minima=Minim\u00e1ln\u00ed m\u011b\u0159\u00edtko
+Escala_Minima=Minim\u00e1ln\u00ed m\u011b\u0159\u00edtko
+escala_usuario=M\u011b\u0159\u00edtko specifikov\u00e1no u\u017eivatelem
+espaciado_horizontal=Velikost horizont\u00e1ln\u00ed m\u0159\u00ed\u017eky
+espaciado_vertical=Velikost vertik\u00e1ln\u00ed m\u0159\u00ed\u017eky
+espacio=Mezera\:
+estadisticas=Statistika
+este_por_debajo_de_=B\u00fdt pod
+este_por_encima_de=B\u00fdt nad
+Esten_contenidos_en=Obsa\u017een\u00fd v
+Etiqueta=Popis
+Etiquetados=Popisov\u00e1n\u00ed
+etiquetas=Popisky\:
+Etiquetas_estandar=Standardn\u00ed popisky
+Examinar=Proch\u00e1zet
+export=Exportovat
+exportar=Exportovat
+exportar_pdf=Exportovat jako pdf
+exportar_ps=Exportovat jako ps
+extension=Roz\u0161\u00ed\u0159en\u00ed
+Extent=Oblast
+extents_no_coincidentes=Zvolen\u00e1 hranice nesouhlas\u00ed s p\u016fvodn\u00edm obr\u00e1zkem.
+factor_zoom_incorrecto=Chybn\u00e1 \u00farove\u0148 zv\u011bt\u0161en\u00ed.
+fallo_capas=Chyba  p\u0159\u00edstupu k vrstv\u011b.  N\u00e1sleduj\u00edc\u00ed vrstvy budou vymaz\u00e1ny z projektu.
+family=
+fichero=soubor
+Fichero=Soubor
+fichero_existe=Zvolen\u00fd soubor ji\u017e existuje jako vrstva
+fichero_incorrecto=Chybn\u00fd soubor
+fichero_ya_existe_seguro_desea_guardarlo=Soubor u\u017e existuje, chcete pokra\u010dovat?
+field_already_exists=Polo\u017eka ji\u017e existuje
+field_decimal_count=Des\u00edtkov\u00fd po\u010det
+field_default_value=Implicitn\u00ed hodnota
+field_length=D\u00e9lka
+field_manager=Spr\u00e1vce polo\u017eek
+field_name=N\u00e1zev polo\u017eky
+field_type=Typ
+filtro=Filtr
+finish=Konec
+Font=P\u00edsmo
+formato=Form\u00e1t
+Formato_de_numero_erroneo=Neplatn\u00e9 \u010d\u00edslo form\u00e1tu
+formato_incorrecto=Chybn\u00fd form\u00e1t
+fuente=P\u00edsmo
+General=Obecn\u00fd
+georeferenciado=Georeferencovan\u00fd
+gestion_encuadre=Spr\u00e1va z\u00e1znamu pracovn\u00edch oblast\u00ed
+grados=Stupn\u011b
+Grados=Stupn\u011b
+Graficos=Prvky
+grosor_linea=\u0161\u00ed\u0159ka \u010d\u00e1ry\:
+group=Seskupit
+group_graphic_line=Seskupit grafick\u00e9 linie
+grupo=skupina
+guardado=Ulo\u017een do
+guardar=Ulo\u017eit
+Guardar=Ulo\u017eit
+guardar_cambios=Ulo\u017eit zm\u011bny?
+guardar_como=Ulo\u017eit jako...
+guardar_como_plantilla=Ulo\u017eit jako \u0161ablonu
+Guardar_el_zoom_actual=Ulo\u017eit aktu\u00e1ln\u00ed v\u00fd\u0159ez
+Guardar_leyenda=Ulo\u017eit styl
+guardar_proyecto=Ulo\u017eit projekt
+guardar_tooltip=Ulo\u017eit zm\u011bny do projektu
+Habilitar_etiquetado=Povolit popisov\u00e1n\u00ed
+Hiperenlace=Hyperlink
+horizontal=Horizont\u00e1ln\u00ed
+horizontal_space=Horizont\u00e1ln\u00ed mezera
+Identificar_Resultados=Identifikovat v\u00fdsledky
+Igual_que_la_impresora=Stejn\u00e9 jako tisk\u00e1rna
+igual_todos_lados=Stejn\u00fd posun pro v\u0161echny strany
+imagen=Obr\u00e1zek
+Implimir=
+importar=Import
+Imprimir=Tisk
+Indexando=Indexing...
+Indexando_espacialmente=Prostorov\u00e1 indexace vrstvy
+indexar_campos=
+Inferior=Ni\u017e\u0161\u00ed
+info=Informace
+informacion=Informace
+Informacion=Informace
+Inicializando=Initializace
+initial_warning=<html><b>WAROV\u00c1N\u00cd\!</b>V\u00fdvojov\u00e1 verze. M\u016f\u017ee obsahovat z\u00e1va\u017en\u00e9 chyby a zp\u016fsobit po\u0161kozen\u00ed editovan\u00fdch soubor\u016f.<br><br>Pro b\u011b\u017enou pr\u00e1ci je doporu\u010dov\u00e1na posledn\u00ed stabiln\u00ed verze gvSIG.</html>
+insert_row=Vlo\u017e z\u00e1znam
+Insertar=Vlo\u017eit
+insertar_cajetin=Vlo\u017e grid
+insertar_circulo=Vlo\u017eit kru\u017enici
+insertar_columna=Vlo\u017e atribut
+insertar_escala=Vlo\u017eit m\u011b\u0159\u00edtko
+insertar_fila=Vlo\u017e \u0159\u00e1dek
+insertar_imagen=Vlo\u017eit obr\u00e1zek
+insertar_leyenda=Vlo\u017eit legendu
+insertar_linea=Vlo\u017eit linii
+insertar_norte=Vlo\u017eit sever
+insertar_poligono=Vlo\u017eit polygon
+insertar_polilinea=Vlo\u017e l\u00ednie
+insertar_punto=Vlo\u017eit bod
+insertar_rectangulo=Vlo\u017eit obd\u00e9ln\u00edk
+insertar_texto=Vlo\u017eit text
+insertar_vista=Vlo\u017eit pohled
+Intersecten_con=Protnut\u00e9 s
+Intervalo=Interval
+Intervalos=Intervaly
+introduce_nombre=Zadat nov\u00fd n\u00e1zev.
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=Vlo\u017ete n\u00e1zev nov\u00e9 vrstvy pozn\u00e1mek
+introduzca_nuevo_nombre_para_la_vista=Napi\u0161te nov\u00fd n\u00e1zev pohledu
+invalid_value_for_gap=
+invert_selection=
+Italic=Kurz\u00edva
+Izquierda=Vlevo
+Izquierdo=Vlevo
+join=spojit
+jpg=JPEG soubor
+kilometros=Kilometr\u016f
+Kilometros=Kilometr\u016f
+leyenda=Legenda
+Leyenda=Legenda
+leyenda_campo_unido=Pou\u017e\u00edv\u00e1te stejnou polo\u017eku bu\u010f v legend\u011b nebo popisc\u00edch. Pros\u00edm zm\u011b\u0148te \nlegendu p\u0159ed odebr\u00e1n\u00edm spojen\u00ed.
+Leyenda_Por_Defecto=Implicitn\u00ed legenda
+linea=Linie
+linea_grafica=Linie
+lineal_directo=P\u0159\u00edmo line\u00e1rn\u00ed
+link=Propojit
+Link=Odkaz
+localizador=Locator
+locked_element=Uzam\u010den\u00fd element
+locked_element_it_cannot_be_deleted=Uzam\u010den\u00fd element.\nNelze smazat.
+locked_element_it_cannot_be_renamed=Uzam\u010den\u00fd element.\nNelze odstranit.
+m/pixel=metros/pixel
+malla_activada=Aktivovat grid
+manage_fields=Spravovat polo\u017eky
+mantener_intervalo=Zachovat interval
+map_units=Mapov\u00e9 jednotky
+mapa=Mapa
+Mapa=Mapa
+mapas=Mapy
+marco=R\u00e1mec
+marco_vista=Framework pro zobrazen\u00ed
+margenes=Okraje\:
+mas_de_100_simbolos=V\u00edce ne\u017e 100 symbol\u016f obvykle nevn\u00e1\u0161\u00ed do mapy \u017e\u00e1dn\u00e9 informace
+max_length_is=
+maximo=Maximum
+MDIFrame.quiere_salir=Ukon\u010dit gvSIG?
+MDIFrame.salir=Konec
+media=V\u00fdznam
+medir_area=M\u011b\u0159it plochy
+medir_distancias=M\u011b\u0159it vzd\u00e1lenosti
+metadatos=Metadatos
+metros=Metry
+Metros=Metry
+Milimetros=Milimetry
+Millas=M\u00edle
+minimo=Minimum
+modificar=upravit
+modification_date=Datum zm\u011bny
+mostrar_escala_numerica=Sobrazit \u010d\u00edselnou \u0159adu.
+Mostrar_siempre=Zobrazit v\u017edy
+mostrar_unidades=Zobrazen\u00ed jednotek
+move_elements=P\u0159esunout prvky
+Muestra_atributos=Zobrazit atributy vybran\u00fdch vrstev.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Zobraz prvky vrstvy, kter\u00e9 maj\u00ed jedine\u010dnou hodnotu symbolu
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Zobraz prvky vrstvy, kter\u00e9 maj\u00ed rozsah barev podle hodnot atribut\u016f
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Zobraz v\u0161echny prvky vrstvy, kter\u00e9 maj\u00ed stejn\u00fd symbol
+natural_intervals=P\u0159irozen\u00e9 intervaly
+navegacion=Navigace
+navegacion_vista=Navigace v pohledu
+necesita_una_capa_activa=Aktivn\u00ed vrstva je pot\u0159ebn\u00e1
+necesita_una_capa_vectorial_activa=
+new_field=Nov\u00fd atribut
+new_field_properties=Vlastnosti nov\u00e9ho atributu
+next=Dal\u0161\u00ed
+ninguna_impresora_configurada=Nen\u00ed nastavena \u017e\u00e1dn\u00e1 tisk\u00e1rna
+Nivel_de_transparencia=\u00darov\u011b\u00f2 pr\u016fhlednosti
+no=No
+no_activos=Neaktivn\u00ed
+No_de_intervalos=Po\u010det interval\u016f
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=Nen\u00ed mo\u017en\u00e9 vykonat operaci
+No_mostrar=Nezobrazit vrstvu v p\u0159\u00edpad\u011b m\u011b\u0159\u00edtka
+No_mostrar_la_capa_cuando_la_escala=Ezobrazovat vrstvu, kdy\u017e je m\u011b\u0159\u00edtko
+no_se_pegaran_las_tablas=Nebude vlo\u017eena \u017e\u00e1dn\u00e1 tabulka
+no_se_pegaran_las_vistas_del_conflicto=Pohled zp\u016fsobuj\u00edc\u00ed konflikt nebude vlo\u017een
+No_se_pudo_obtener_la_tabla_de_la_capa=Nebylo mo\u017en\u00e9 z\u00edskat z vrstvy
+no_visibles=Nevidiln\u00e9
+nombre=Jm\u00e9no
+Nombre=Jm\u00e9no
+nombre_no_valido=\u0160patn\u00e9 jm\u00e9no
+Nombre_que_se_le_dara_al_zoom=N\u00e1zev pro zoom
+nombre_sesion=N\u00e1zev sezen\u00ed
+none=
+none_selected=Nic nezvoleno
+normal=Normal
+north=Sever
+Nueva_tabla=Nov\u00e1 tabulka
+nuevo=Nov\u00fd
+Nuevo_conjunto=Nov\u00e1 skupina
+nuevo_nombre_para_el_mapa=Zadejte n\u00e1zev nov\u00e9 vrstvy
+nuevo_proyecto=Nov\u00fd projekt
+nuevo_tooltip=Vytvo\u0159it nov\u00fd projekt
+num_bandas=Okrajov\u00e9 hodnoty
+num_columnas=Po\u010det sloupc\u016f
+num_filas=Po\u010det \u0159\u00e1dk\u016f
+Num_intervalos=Po\u010det interval\u016f
+numero_decimales_mostrar=
+numero_incorrecto=Neplatn\u00e1 hodnota
+ok=Budi\u017e
+opacidad=Stupe\u0148 pr\u016fsvitnosti
+operacion_cancelada=Zru\u0161 operaci
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Orientace\:
+origen_de_datos=P\u016fvod dat
+Origen_de_datos=P\u016fvod dat
+Origen_de_Datos=Vznik dat\:
+owner=Vlastn\u00edk
+paste=Paste
+paste_elements=Vlo\u017eit element
+path=Cesta
+pdf=
+pegar=Vlo\u017eit
+pegar_mapas=Vlo\u017eit mapy
+pegar_vistas=Vlo\u017eit podled
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Mo\u017en\u00ed nastavit popisek mapov\u00fdch prvk\u016f hodnotou jednotliv\u00fdch pol\u00ed
+Personalizado=U\u017eivatelsky
+personalizar_margenes=
+Pies=Stopy
+pila_de_comandos=z\u00e1sobn\u00edk p\u0159\u00edkaz\u016f
+pixeles=pixely
+pixels=pixels
+Plain=Pravideln\u00fd
+plantilla=\u0161ablona
+please_insert_new_field_name=Prosim vlo\u017ete nov\u00e9 jm\u00e9no atributu.
+png=PNG soubory
+poligono=Polygon
+polilinea=l\u00ednie
+poner_capas_a=Nastav  vrstvu jako
+por_debajo_de=pod\:
+por_encima_de=nad\:
+Por_favor_active_la_capa=
+posicion_linea=Pozice linie
+precision=P\u0159esnost
+preparar_pagina=P\u0159ipravit str\u00e1nku
+Preparar_pagina=P\u0159ipravit str\u00e1nku
+presentacion=Prezentace
+previsualizacion=Preview
+Previsualizacion=N\u00e1hled
+Previsualizacion_de_simbolo=N\u00e1hled symbol\u016f
+propiedad=Vlastnost
+propiedades=Vlastnosti
+propiedades_cajetin=
+propiedades_capa=Vlastnosti vrstvy
+propiedades_de_la_capa=Vlastnosti vrstvy
+Propiedades_escala_grafica=Vlastnosti m\u011b\u0159\u00edtka
+propiedades_grafico=Nastaven\u00ed grafiky
+propiedades_mapa=Nastaven\u00ed mapy
+propiedades_marco_imagenes=Vlastnosti obrazov\u00e9ho r\u00e1mu
+propiedades_marco_leyenda=Vlastnosti r\u00e1mu legendy
+propiedades_marco_vista=Vlastnosti r\u00e1mu pohledu
+propiedades_raster=Vlastnosti rastru
+propiedades_sesion=Vlastnosti sezen\u00ed
+propiedades_tabla=Vlastnosti tabulky
+Propiedades_texto=Vlastnosti textu
+propiedades_vista=Vlastnosti pohledu
+Proyecciones=Projekce
+ps=
+puerto=Port
+Pulgadas=Palce
+punto=Bod
+quantile_intervals=Interval kvantilu
+quiere_continuar=Chcete pokra\u010dovat?
+Quitar=Odstranit
+Quitar_capa=Odstranit vrstvu
+quitar_enlaces=Odebrat spojen\u00ed
+Quitar_todos=Odstranit v\u0161e
+quitar_uniones=odebrat spojen\u00ed
+rango_de_escalas=Rozsah m\u011b\u0159\u00edtka
+Rango_de_escalas=Velikost m\u011b\u0159\u00edtka
+realce=vylep\u0161en\u00ed
+realmente_desea_guardar=Upravdu si p\u0159ejete ulo\u017eit?
+recargar=Nahraj znovu
+recorte_colas=O\u0159ez fronty
+recorte_vista=Vy\u0159\u00edznout dle pohledu
+rectangulo=Obd\u00e9ln\u00edk
+recuento=p\u0159epo\u010det
+Recuperar_leyenda=Nahr\u00e1t legendu
+Recuperar_y_eliminar_otros_zoom=Obnovit a zru\u0161it p\u0159ibl\u00ed\u017een\u00ed
+refrescar=Obnovit
+rehacer=Znovu
+rellenar_marco_vista=Zaplnit r\u00e1m pohledu
+relleno=Zaplnit\:
+remove_elements=Odstra\u0148 element
+remove_fields=Odstra\u0148 atribut
+remove_row=Odstra\u0148 z\u00e1znam
+remove_rows=Odstra\u0148 z\u00e1znamy
+rename_field=P\u0159ejmenuj atribut
+renombrar=P\u0159ejmenovat
+reproyectar_aviso=Projekce vrstvy se neshoduje s projekc\u00ed pohledu.\nUpozorn\u011bn\u00ed\: N\u011bkter\u00e9 transformace mohou b\u00fdt nep\u0159esn\u00e9.\nPros\u00edm prostudujte dokumentaci
+reproyectar_pregunta=Chcete p\u0159ev\u00e9st projekci?
+resolucion_resultado=Rozli\u0161en\u00ed v\u00fdsledku\:
+resto_valores=Ostatn\u00ed hodnoty
+restore_palette=Obnov paletu
+rotation_field=Atribut oto\u010den\u00ed
+salir=Konec
+salir_tooltip=Konec
+salvar_raster=Ulo\u017eit jako rastr
+Sample=Vzor
+Se_superponen_a=P\u0159es
+Sean_disjuntos_a=rozpojit jako
+Sean_iguales_a=stejn\u00e9 jako
+seleccion=V\u00fdb\u011br
+seleccion_fuente=Vybrat font
+Seleccion_por_capa=V\u00fdb\u011br podle vrstvy
+selecciona_sistema_de_referencia=Vyber prostorov\u00fd referen\u010dn\u00ed syst\u00e9m
+Seleccionar=Vybrat
+seleccionar_capas=Vybrat vrstvu
+seleccionar_capas_raster=
+Seleccionar_de_las_capas_activas_los_elementos_que=Vybrat polo\u017eky z aktivn\u00edch vrstev kter\u00e9 jsou\:
+Seleccionar_del_conjunto=Vybrat ze sady
+Seleccionar_fichero=Vybrat soubor
+seleccionar_por_poligono=
+seleccionar_por_punto=Vybrat po bodech
+seleccionar_por_rectangulo=Vybrat obd\u00e9ln\u00edkem
+seleccionar_todos=Vybrat v\u0161e
+seleccione_campo_enlace=Zvolte propojovac\u00ed polo\u017eku
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=<HTML>Vyber atribut pou\u017e\u00edvan\u00fd pro ulo\u017een\u00ed \u00faklonu textov\u00e9ho popisku</HTML>
+seleccione_el_campo_color_de_la_capa_de_anotaciones=<HTML>Vyberte polo\u017eku pro ulo\u017een\u00ed barvy popisu</HTML>
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=<HTML>Vyberte textov\u00e9 pole, kter\u00e9 by m\u011blo b\u00fdt pou\u017eito k zobrazen\u00ed nev\u00e9 virtu\u00e1ln\u00ed vrstvy.</HTML>
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=<HTML>Zvolte polo\u017eku pro ulo\u017een\u00ed fontu p\u00edsma.</HTML>
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=<HTML>Zvolte polo\u017eku pro ulo\u017een\u00ed velikosti popisu.</HTML>
+seleccione_fecha=Vybrat datum...
+seleccione_tabla_a_enlazar=Zvolte tabulku k propojen\u00ed
+seleccione_tabla_origen=Zvolte p\u016fvodn\u00ed tabulku spojen\u00ed
+selection_color=Vybrat barvu
+selection_up=P\u0159esu\u0148 v\u00fdb\u011br nahoru??? 
+separator=
+Servidor=Server
+Shapefile=Shapefile
+show_this_dialog_next_startup=Zobraz tento dialog p\u0159i dal\u0161\u00edm startu
+si=ano
+siempre=V\u017edy
+simbolo=Symbol
+Simbolo=Symbol
+Simbolo_unico=Jedine\u010dn\u00fd symbol
+Simbologia=Symboly
+simplificar_leyenda=Zjednodu\u0161 legendu
+simplify=Zjednodu\u0161
+sin_titulo=Nepojmenovan\u00fd
+sincronizar_color_borde_relleno=Sjednotit barvu obrysu a v\u00fdpln\u011b\:
+Size=Velikost
+sobre_la_barra=Na sloupci s m\u011b\u0159\u00edtkem
+Solo_para_capas_vectoriales=Jen pro vektory
+start_edition=Zahaj editaci
+statistics=Statistika
+stop_edition=Ukon\u010di editaci
+Style=Styl
+Subir_capa=P\u0159esunout vrstvu v\u00fd\u0161e
+suma=Sou\u010det
+Superior=Vy\u0161\u0161\u00ed
+symbol_selector=
+Tabla=Tabulka
+Tabla_de_Atributos=Tabulka atribut\u016f
+tablas=Tabulky
+Tablas=Tabulky
+tag=tag
+tamano=Velikost\:
+tamano_metros=Velikost v metrech
+tamano_pagina=Velikost str\u00e1nky
+tamano_posicion=Velikost a um\u00edst\u011bn\u00ed
+tamanyo_borde=Velikost okraje
+tamanyo_fuente=Velikost p\u00edsma
+tamanyo_pagina=Velikost str\u00e1nky
+tamPixX=Velikost pixlu X
+tamPixY=Velikost pixlu Y  
+terminar=Ukon\u010di
+terminar_edicion=Ukon\u010di editaci
+texto=Text
+this_table_is_not_self_editable=Tabulka nen\u00ed editovateln\u00e1
+tipo_dato=Datov\u00fd typ
+tipo_de_intervalo=Druh intervalu
+tipo_de_leyenda=Druh legendy
+tipo_fichero_proyecto=Soubor projektu gvSIG(*.gvsproj)
+tipo_linea=Druh obrysu\:
+tipo_relleno=V\u00fdpl\u0148\:
+tipo_simbolo=Druh symbolu\:
+tipos_de_documentos=Druhy dokument\u016f
+titulo=Spr\u00e1vce projektu
+titulo_fframetext=N\u00e1zev textov\u00e9ho pole
+to_annotation=Zm\u011b\u0148 na vrstvu popisk\u016f
+to_palette=Zm\u011b\u0148 na paletu
+tooltip_copiar_al_portapapeles=Zkop\u00edruj do schr\u00e1nky
+tooltip_cortar_al_portapapeles=P\u0159em\u00edsti do schr\u00e1nky
+tooltip_pegar_desde_el_portapapeles=Vlo\u017e ze schr\u00e1nky
+Toquen=dot\u00fdkaj\u00edc\u00ed se s
+transparencia=Pr\u016fhlednost
+Transparencia=Pr\u016fhlednost
+transparencia_pixel=Pr\u016fhlednost po pixlech
+ungroup=Odskupit
+unidades=Jednotky\:
+Unidades=Jednotky\:
+untitled=Nepojmenovan\u00fd
+url=url
+Usar_indice_espacial=Pou\u017e\u00edt prostorov\u00fd index
+usar_marco=Pou\u017e\u00edt r\u00e1mec
+usar_titulo=Pou\u017e\u00edt n\u00e1zev
+usuario=U\u017eivatel
+utilizar_margenes_impresora=Pou\u017e\u00edt okraje tisk\u00e1rny
+vacia=Pr\u00e1zdn\u00fd
+Valor=Hodnota
+Valores=Hodnoty
+Valores_unicos=Jednoduch\u00e9 hodnoty
+varianza=Odchylka
+Ventana=Okno
+ventana_proyecto=Okno projektu
+Ver=Pohled
+ver_error_capa=
+ver_tabla_atributos=Zkontrolujte tabulku atribut\u016f
+ver_tags=
+ver_tooltip=Uk\u00e1zat okno projektu
+vertical=Vertik\u00e1ln\u00ed
+vertical_space=Vertik\u00e1ln\u00ed mezera
+visible=Viditeln\u00fd
+visibles=Viditeln\u00fd
+Vista=Pohled
+vistas=Pohledy
+visualizacion=Zobrazit
+Visualizacion=Zobrazit
+visualizar_cuadricula=Zobrazit grid
+warning=Varov\u00e1n\u00ed
+xmax=maximum X
+xmin=minimum X
+Yardas=Yardy
+ymax=maximum Y
+ymin=minimum Y
+Zoom_a_la_capa=P\u0159ibli\u017e na vrstvu
+Zoom_Acercar=P\u0159ibl\u00ed\u017eit
+Zoom_Alejar=Odd\u00e1lit
+Zoom_Completo=Zobraz v\u0161e
+Zoom_Completo_Vista=Zobrazit r\u00e1m ve full extent
+zoom_in_factor=P\u0159ibl\u00ed\u017eit
+Zoom_Mas=Zoom In
+Zoom_Mas_Vista=Zoom in v r\u00e1mu pohledu
+Zoom_Menos=Odd\u00e1lit
+Zoom_Menos_Vista=Zoom out v r\u00e1mu pohledu
+zoom_out_factor=\u00darove\u0148 zv\u011bt\u0161en\u00ed
+Zoom_pixel=Zoom na rozli\u0161en\u00ed rastru
+Zoom_Previo=P\u0159edchoz\u00ed zoom
+Zoom_Real=1\:1 Zoom
+Zoom_Select=Zoom na v\u00fdb\u011br

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_cs.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/config.xml
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/config.xml	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/config.xml	(revision 38262)
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<plugin-config>
+	<libraries library-dir="lib"/>
+	<resourceBundle name="text"/>
+	<label-set class-name="org.gvsig.app.project.documents.view.gui.DefaultViewPanel">
+		<label id="units" size="75"/>
+		<label id="x" size="120"/>
+		<label id="y" size="120"/>
+		<label id="4" size="110"/>
+		<label id="5" size="110"/>
+		<label id="distancearea" size="30"/>
+		<label id="projection" size="110"/>
+	</label-set>
+	<extensions>
+		<extension class-name="org.gvsig.app.extension.InitialWarningExtension"
+			description="Initial warning message"
+			active="true"
+			priority="1">
+		</extension>
+		<extension class-name="org.gvsig.app.extension.InitializeApplicationExtension"
+			description="Initialize application extension"
+			active="true"
+			priority="99999">
+		</extension>
+		<extension class-name="org.gvsig.app.extension.ProjectExtension"
+			description="Extensi�n encargada de gestionar los proyectos."
+			active="true"
+			priority="10">
+			<menu text="Archivo"
+				position="100"
+				is_separator="true"/>
+			<menu text="Ver"
+				position="200"
+				is_separator="true"/>
+
+			<menu text="Vista"
+				position="300"
+				is_separator="true"/>
+			<menu text="Capa"
+				position="350"
+				is_separator="true"/>
+				
+			<menu text="geometry"
+				position="370"
+				is_separator="true"/>
+
+			<menu text="tools"
+				position="700"
+				is_separator="true"/>
+			<menu text="Ventana"
+				position="800"
+				is_separator="true"/>
+			<menu text="Ayuda"
+				position="900"
+				is_separator="true"/>
+
+			<menu text="Archivo/nuevo_proyecto"
+				key="n"
+				tooltip="nuevo_tooltip"
+				action-command="NUEVO" icon="project-new"
+				position="10010"/>
+			<menu text="Archivo/abrir_proyecto"
+				key="a"
+				tooltip="abrir_tooltip"
+				action-command="ABRIR" icon="project-open"
+				position="10020"/>
+			<menu text="Archivo/guardar_proyecto"
+				key="g"
+				tooltip="guardar_tooltip"
+				action-command="GUARDAR" icon="project-save"
+				position="10030"/>
+			<menu text="Archivo/guardar_como"
+				tooltip="guardar_tooltip"
+				action-command="GUARDAR_COMO" icon="project-save-as"
+				position="10040"
+				last="true"/>
+			<menu text="Archivo/salir"
+				tooltip="salir_tooltip"
+				key="x"
+				action-command="SALIR" icon="application-exit"
+				position="10099"
+				/>
+			<tool-bar name="gvSIG" position="1">
+				<action-tool icon="project-new" tooltip="nuevo_tooltip"
+					action-command="NUEVO" position="1"/>
+				<action-tool icon="project-open" tooltip="abrir_tooltip"
+					action-command="ABRIR" position="2"/>
+				<action-tool icon="project-save" tooltip="guardar_tooltip"
+					action-command="GUARDAR" position="3"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.ViewProjectWindow"
+			description="Extensi�n encargada de abrir la ventana de gesti�n del proyecto."
+			active="true">
+			<menu text="Ver/titulo"
+				key="p"
+				tooltip="ver_tooltip"
+				position="20010" 
+				action-command="SHOW"/>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.AddLayer"
+			description="Extensi�n encargada de abrir las diferentes capas."
+			active="true"
+			priority="20">
+			<menu text="Vista/Anadir_Capa" position="30010" key="o" icon="layer-add"/>
+			<tool-bar name="View" position="30010">
+				<action-tool icon="layer-add" tooltip="Anadir_Capa" position="1"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.BasicSymbologyExtension"
+			description="Enables the  symbology."
+			active="true"
+			priority="20">
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.ZoomPrev"
+			description="Extensi�n encargada de gestionar los zooms previos al actual."
+			active="true">
+			<menu text="Vista/navegacion"
+				position="30020"
+				is_separator="true"/>
+			<menu text="Vista/navegacion/Zoom_Previo"  position="3002010"  icon="view-zoom-back"/>
+			<tool-bar name="View_Tools_Zooms" position ="3">
+				<action-tool icon="view-zoom-back" action-command="ZOOM_PREV" tooltip="Zoom_Previo" position="1"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.InfoToolExtension"
+			description="Extensi�n encargada de gestionar la herramienta de info."
+			active="true"
+			priority="29">
+			<menu text="Vista/consulta"
+				position="30030"
+				is_separator="true"/>
+			<menu text="Vista/consulta/informacion" position="3003010" action-command="INFO" icon="view-query-information"/>
+			<tool-bar name="View_Tools_Query" position="5">
+				<selectable-tool icon="view-query-information" action-command="INFO"  tooltip="informacion" position="1"/>
+			</tool-bar>
+		</extension>
+		
+		
+		<extension class-name="org.gvsig.app.extension.MetadataPropertiesExtension"
+			description="Extensi�n encargada de mostrar los metadatos de la capa seleccionada."
+			active="true">
+		</extension>
+		
+
+		<extension class-name="org.gvsig.app.extension.ViewControls"
+			description="Extensi�n encargada de gestionar la vista."
+			active="true"
+			priority="30">
+			<combo-scale name="scale"
+				label="1:"
+				elements="1000;2000;5000;10000;25000;50000;100000;200000;500000;1000000;2000000;5000000"
+  				value="10000"
+  				action-command="CHANGE_SCALE" />
+  			<menu text="Vista/navegacion/Zoom_Mas" position="3002020" action-command="ZOOM_IN" icon="view-zoom-in"/>
+			<menu text="Vista/navegacion/Zoom_Menos" position="3002030" action-command="ZOOM_OUT" icon="view-zoom-out"/>
+			<menu text="Vista/navegacion/Zoom_Completo" position="3002040" action-command="FULL" icon="view-zoom-map-contents"/>
+			<menu text="Vista/navegacion/Zoom_Acercar" position="3002050" action-command="ACTION_ZOOM_IN" tooltip="Zoom_Acercar" icon="view-zoom-center-in"/>
+			<menu text="Vista/navegacion/Zoom_Alejar" position="3002060" action-command="ACTION_ZOOM_OUT" tooltip="Zoom_Alejar" icon="view-zoom-center-out"/>
+			<menu text="Vista/navegacion/Desplazamiento" position="3002070" action-command="PAN" icon="view-pan"/>
+			<menu text="Vista/navegacion/Encuadre" position="3002080" action-command="ENCUADRE" icon="view-zoom-manager"/>
+			
+			<menu text="Vista/poner_capas_a"
+				position="30040"
+				is_separator="true"/>
+			<menu text="Vista/poner_capas_a/visibles" position="3004010" action-command="CAPAS_VISIBLES"/>
+			<menu text="Vista/poner_capas_a/no_visibles" position="3004020" action-command="CAPAS_NOVISIBLES"/>
+			<menu text="Vista/poner_capas_a/activos" position="3004030" action-command="CAPAS_ACTIVAS"/>
+			<menu text="Vista/poner_capas_a/no_activos" position="3004040" action-command="CAPAS_NOACTIVAS"/>
+
+			<menu text="Vista/configurar_localizador" position="30050" action-command="CONFIG_LOCATOR"/>
+			<tool-bar name="View_Tools_Zooms" position="3">
+				<selectable-tool is-default="true" icon="view-zoom-in" action-command="ZOOM_IN" tooltip="Zoom_Mas" position="2"/>
+				<selectable-tool icon="view-zoom-out" action-command="ZOOM_OUT"  tooltip="Zoom_Menos" position="3"/>
+				<action-tool icon="view-zoom-map-contents" action-command="FULL" tooltip="Zoom_Completo" position="4"/>
+				<action-tool icon="view-zoom-center-in" action-command="ACTION_ZOOM_IN" tooltip="Zoom_Acercar" position="5"/>
+				<action-tool icon="view-zoom-center-out" action-command="ACTION_ZOOM_OUT" tooltip="Zoom_Alejar" position="6"/>
+			</tool-bar>
+			<tool-bar name="View_Tools" position ="4">
+				<selectable-tool icon="view-pan" action-command="PAN"  tooltip="Desplazamiento"/>
+				<action-tool icon="view-zoom-manager" action-command="ENCUADRE" tooltip="gestion_encuadre"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.MeasureExtension"
+			description="Extensi�n encargada de gestionar las operaciones de medir sobre la vista."
+			active="true"
+			priority="30">
+			<menu text="Vista/consulta"
+				position="30060"
+				is_separator="true"/>
+			<menu text="Vista/consulta/medir_distancias" position="3006010" action-command="MEDICION" icon="view-query-distance"/>
+			<menu text="Vista/consulta/medir_area" position="3006020" action-command="AREA" icon="view-query-area"/>
+			<tool-bar name="View_Tools_Query" position="5">
+				<selectable-tool icon="view-query-distance" action-command="MEDICION"  tooltip="medir_distancias" position="2"/>
+				<selectable-tool icon="view-query-area" action-command="AREA"  tooltip="medir_area" position="6"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.LinkControls"
+			description="Extensi�n encargada de gestionar el hiperlink."
+			active="true">
+			<menu text="Vista/consulta/Hiperenlace" position="3006030" action-command="LINK" icon="view-query-link"/>
+			<tool-bar name="View_Tools_Query" position="5">
+				<selectable-tool icon="view-query-link" action-command="LINK"  tooltip="Hiperenlace" position="7"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.ViewSelectionControls"
+			description="Extensi�n encargada de gestionar la vista."
+			active="true"
+			priority="30">
+			<menu text="Vista/seleccion"
+				position="30070"
+				is_separator="true"/>
+			<menu text="Vista/seleccion/seleccionar_por_punto" position="3007010" action-command="SELPOINT" icon="view-select-geometry"/>
+			<menu text="Vista/seleccion/seleccionar_por_rectangulo" position="3007020" action-command="SELRECT" icon="view-select-by-rectangle"/>
+			<menu text="Vista/seleccion/seleccionar_por_poligono" position="3007030" action-command="SELPOL" icon="view-select-by-polygon"/>
+			<menu text="Vista/seleccion/separator" position="3007040" action-command="separator" is_separator="true"/>
+			<tool-bar name="Tools_Select" position="6">
+				<selectable-tool icon="view-select-geometry" action-command="SELPOINT"  tooltip="seleccionar_por_punto" position="1"/>
+				<selectable-tool icon="view-select-by-rectangle" action-command="SELRECT"  tooltip="seleccionar_por_rectangulo" position="2"/>
+				<selectable-tool icon="view-select-by-polygon" action-command="SELPOL"  tooltip="seleccionar_por_poligono" position="3"/>
+			</tool-bar>
+		</extension>
+		<extension class-name="org.gvsig.app.extension.ViewSelectionByTheme"
+            description="Extensi�n encargada de la selecci�n por tema."
+            active="true"
+            priority="30">
+            <menu text="Vista/seleccion/Seleccion_por_capa" action-command="SELECTIONBYSHAPE"/>
+        </extension>
+        <extension class-name="org.gvsig.app.extension.ViewInvertSelection"
+            description="Extensi�n encargada de hacer la selecci�n inversa."
+            active="true"
+            priority="30">
+            <menu text="Vista/seleccion/separator" position="3007050" action-command="separator" is_separator="true"/>
+            <menu text="Vista/seleccion/invert_selection" position="3007060" action-command="INVERT_SELECTION" icon="view-select-invert"/>
+            <tool-bar name="Tools_Select" position="6">
+                <action-tool icon="view-select-invert" action-command="INVERT_SELECTION"  tooltip="invert_selection" position="4"/>
+            </tool-bar>
+        </extension>
+		<extension class-name="org.gvsig.app.extension.ViewPropertiesExtension"
+			description="Extensi�n encargada de gestionar el di�logo de propiedades de la vista."
+			active="true">
+			<menu text="Vista/propiedades" position="30080" action-command="PROPERTIES"/>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.ZoomToSelectExtension"
+			description="Extensi�n encargada de gestionar los eventos realizados sobre una capa."
+			active="true">
+			<menu text="Vista/navegacion/Zoom_Select" position="3002090" action-command="ZOOM_SELECT" icon="view-zoom-to-seleccion"/>
+			<tool-bar name="View_Tools_Zooms" position="3">
+				<action-tool icon="view-zoom-to-seleccion" action-command="ZOOM_SELECT"  tooltip="Zoom_Select" position="7"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.ClearSelectionExtension"
+			description="Extensi�n encargada de limpiar la selecci�n."
+			active="true">
+			<menu text="Capa/clear_selection" position="35010" action-command="DEL_SELECTION" icon="view-clear-selection"/>
+			<tool-bar name="Tools_Select" position="6">
+				<action-tool icon="view-clear-selection" action-command="DEL_SELECTION"  tooltip="clear_selection" position="4"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.FiltroExtension"
+			description="Extensi�n encargada de abrir el di�logo para filtrar una vista."
+			active="true">
+			<menu text="Capa/filtro" position="40074" icon="table-filter" action-command="FILTRO"/>
+			<tool-bar name="Herramientas" position="12">
+				<action-tool icon="table-filter" action-command="FILTRO" tooltip="filtro" position="7"/>
+			</tool-bar>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.dispose.DisposableManagementExtension"
+			description="Extensi�n con informaci�n sobre disposables."
+			active="true"
+			priority="1000">
+			<menu text="tools/Development"
+				position="70090" 
+				is_separator="true"/>
+			<menu text="tools/Development/Disposables"
+				position="7009010" 
+				is_separator="true"/>
+			<menu text="tools/Development/Disposables/Mostrar pendientes" position="700901010"  key="m" action-command="show"/>
+			<menu text="tools/Development/Disposables/Librerar todos" position="700901020" key="l" action-command="releaseAll"/>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.ShowDevelInfoExtension"
+			description="Presenta informacion relevante para debug."
+			active="true"
+			priority="30">
+			<menu text="tools/Development/Show persistence factories" position="7009020" action-command="ShowPersistenceFactories"/>
+			<menu text="tools/Development/Show icon theme information" position="7009023" action-command="ShowIconThemeInformation"/>
+			<menu text="tools/Development/Show actions information" position="7009026" action-command="ShowActionsInformation"/>
+		</extension>
+
+
+		<extension class-name="org.gvsig.app.extension.PaletteViewInfoExtension"
+			description="Extensi�n encargada transformar la vista activa en palette."
+			active="true">
+			<menu text="Ventana/to_palette" position="80010" action-command="PALETTE"/>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.RestoreViewInfoExtension"
+			description="Extensi�n encargada transformar la vista palette en su original."
+			active="true">
+			<menu text="Ventana/restore_palette" position="80020" action-command="RESTORE"/>
+		</extension>
+
+		<extension class-name="org.gvsig.app.extension.About"
+			description="Extensi�n encargada de abrir una ventana con la informaci�n relativa al programa."
+			active="true"
+			priority="90090">
+			<menu text="Ayuda/acerca_de" />
+		</extension>
+
+	</extensions>
+	<icon src="gvsig-logo-icon" text="gvSIG"/>
+</plugin-config>

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/config.xml
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_fr.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_fr.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_fr.properties	(revision 38262)
@@ -0,0 +1,706 @@
+#Translations for language [fr]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(\u00e9chelle maximum)
+(escala_minima)=(\u00e9chelle maximum)
+1\:=
+_(Simbolo_unico)=(Symbole unique)
+__proyeccion_actual=Projection actuelle\:
+__redimensionar_texto_escala=Redimensionner le texte suivant l'\u00e9chelle de la vue
+__seleccion_de_fuente=S\u00e9lection d'une fonte
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Descendre
+abrir=Ouvrir
+abrir_plantilla=Ouvrir police
+abrir_proyecto=Ouvrir un projet
+abrir_tooltip=Ouvrir un projet existant
+Abrir_una_capa=Ouvrir une couche
+Accion_Predefinida=Action pr\u00e9d\u00e9finie
+aceptar=Accepter
+Aceptar=Accepter
+acerca_de=A propos de...
+activar=Activate
+activar_regla=Afficher la r\u00e8gle
+activos=Toutes actives
+add_delete_edit_fields=
+add_layer=Ajouter une couche
+add_rows=
+adjust_transparency=Ajuster la transparence
+agrupacion=
+agrupar=Grouper
+agrupar_capas=Grouper les couches
+agrupar_graficos=Grouper les graphiques
+agrupar_linea=Grouper les lignes graphiques
+Ajustar_transparencia=Ajuster la transparence
+ajustes_linea_grafica=Ajuster la ligne graphique
+Al_leer_la_leyenda=A la lecture de la l\u00e9gende
+alias=Alias
+align_center=
+align_down=
+align_left=
+align_right=
+align_to_layout_center=
+align_to_layout_down=
+align_to_layout_left=
+align_to_layout_right=
+align_to_layout_up=
+align_to_layout_vertical_center=
+align_up=
+align_vertical_center=
+alineamiento=Alignement
+alinear=Aligner
+alinear_graficos=Aligner les graphiques
+alta=Hauteur
+alto=Hauteur
+altura=Hauteur
+Altura_fija_de_texto=Fixe la hauteur du texte
+ambito=Cadre
+Anadir=Ajouter
+Anadir_al_conjunto=Ajouter \u00e0 la s\u00e9lection
+Anadir_capa=Ajouter une couche g\u00e9ographique
+Anadir_Capa=Ajouter une couche g\u00e9ographique
+anadir_tag=
+Anadir_todos=Tout ajouter
+ancho=Largeur
+ancho_alto=Largeur X hauteur
+anchura=Largeur\:
+Aplicar=Appliquer
+Archivo=Fichier
+arriba=Monter
+ascending_order=Ordre ascendant
+ascending_order_tooltip=Classe le champs s\u00e9lectionn\u00e9 par ordre ascendant
+Atributo=Attribut
+automatico=Automatique
+Ayuda=Aide
+back=Pr\u00e9c\u00e9dent
+background_color=Colour d'arri\u00e8re plan
+baja=Basse
+Bajar_capa=Descendre la couche
+bandas=Bandes
+barra=Barre
+base=Base
+base_datos=Base de donn\u00e9es
+bmp=Fichiers BMP
+Bold=Gras
+borra_seleccion=Effacer une s\u00e9lection
+borrador=Brouillon
+borrar=Supprimer
+box=rectangle
+brillo=Luminosit\u00e9
+brillo_y_contraste=Luminosit\u00e9 et contrate
+browse=
+cajetin=
+Calcular_intervalos=Calculer les intervalles
+calidad=Qualit\u00e9
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=
+Cambio_Color=Changer la couleur
+cambio_nombre=Changement de nom
+campo=Champ
+Campo=Champ
+campo_altura_texto=Taille du champ textuel\:
+Campo_de_clasificacion=Champ de classification
+Campo_de_etiquetado=Etiqueter \u00e0 partir d'un champ
+Campos=Champs
+cancel=Annuler
+Cancel=Annuler
+cancelar=Annuler
+Cancelar=Annuler
+Capa=Couche
+Capas=Couches g\u00e9ographiques
+Capas_del_localizador=Couches de localisation
+Centimetros=Centim\u00e8tres
+cerrar=Fermer
+Cerrar=Fermer
+change=
+change_before=
+change_behind=
+change_height=
+change_width=
+circulo=Cercle
+clave=Clef
+close=Fermer
+coincidir_tamanyo=
+colocar_a_margenes=Positionner par rapport aux marges.
+colocar_alrededor_seleccionados=Positionner autour des graphiques s\u00e9lectionn\u00e9s.
+colocar_alrededor_todos=Positionner autour de tous les graphiques.
+colocar_delante=Avant
+colocar_detras=Apr\u00e8s
+color=Couleur \:
+Color_final=Couleur d'arriv\u00e9e \:
+Color_inicio=Couleur de d\u00e9part
+color_texto=Couleur du texte\:
+comentarios=Commentaires
+comenzar_edicion=
+compleja=
+configurar=Configurer
+configurar_localizador=Configurer la vue d'ensemble
+Configurar_localizador=Configurer la vue d'ensemble...
+confirmar_borrar=Confirmer la suppression ?
+conflicto_de_nombres_de_mapas_al_pegar=
+conflicto_de_nombres_de_tablas_al_pegar=
+conflicto_de_nombres_de_vistas_al_pegar=
+conflito_de_nombres_de_tablas_al_pegar=
+conservar_escala_visualizacion=Conserver l'\u00e9chelle de la vue
+consulta=Requ\u00eate
+Contengan=Contiennent
+contraste=Contraste
+coor_geograficas=Coordonn\u00e9es g\u00e9ographiques
+copiar=
+copy=Copier
+cortar=
+creation_date=Date de cr\u00e9ation
+Crucen_con=Croisent avec
+cuando_activo=Quand active
+cut=Couper
+Dado_un_campo_de_atributos=Champs d'attributs donn\u00e9
+debera_introducir_nombres_para_las_vistas_a_pegar=
+debera_introducir_nombres_para_los_mapas_a_pegar=
+default_projection=
+default_value=
+dehacer=d\u00e9faire
+delete_field=Supprimer une colonne
+Derecha=Droite
+Derecho=Droit
+desagrupar=Dissocier
+desagrupar_capas=
+desagrupar_graficos=Dissocier les graphiques
+descending_order=Ordre descendant
+descending_order_tooltip=Classe le champs s\u00e9lectionn\u00e9 par ordre descendant
+descripcion_de_configuracion_capa_de_anotaciones=
+descripcion_de_crear_capa_de_anotaciones=
+desde_arriba=Depuis le haut\:
+desde_izquierda=Depuis la gauche\:
+desea_borrar_el_documento=
+desea_borrar_la_capa=
+desea_continuar=
+deshacer=d\u00e9faire
+desplaza_los_elementos_seleccionados_a_la_derecha=
+desplaza_los_elementos_seleccionados_a_la_izquierda=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=
+desplaza_los_elementos_seleccionados_hacia_abajo=
+desplaza_los_elementos_seleccionados_hacia_arriba=
+Desplazamiento=D\u00e9placer
+desviacion_tipica=Ecart type
+distance_units=Unit\u00e9s de distance
+distribuir=Distribuer \:
+distribuir_elementos_sobre_todo_el_layout=
+distributes_down=
+distributes_horizontal=
+distributes_left=
+distributes_right=
+distributes_to_layout_down=
+distributes_to_layout_horizontal=
+distributes_to_layout_left=Distribuye izquierda del layout
+distributes_to_layout_right=
+distributes_to_layout_up=
+distributes_to_layout_vertical=
+distributes_up=
+distributes_vertical=
+distribuye_el_espacio_entre_los_elementos_en_horizontal=
+distribuye_el_espacio_entre_los_elementos_en_vertical=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=
+divisiones_izquierda=Divisions \u00e0 partir de la gauche
+documento=
+documentos_existentes=Documents existants
+draw_text_only=
+driver=Driver
+Dxffiles=Fichiers DXF
+edicion=\u00e9dition
+editable=
+Editar_leyenda=Editer la l\u00e9gende
+editar_vertices=\u00e9diter les sommets
+el_numero_maximo_de_intervalos_para_este_campo_es=Le nombre maximum d'intervalles pour ce champ est
+Elegir_Color=Selectionner la couleur
+Elegir_Fuente=Choisir la fonte
+elemento_ya_existe=
+Elementos_seleccionados_de_la_capa=Entit\u00e9s s\u00e9lectionn\u00e9es de la couches
+Eliminar=Supprimer
+eliminar_capa=Supprimer une couche
+eliminar_columna=
+eliminar_extremos=Eliminer les extr\u00eames
+eliminar_fila=
+en_el_mapa=Dans la carte\:
+En_metros=En m\u00e8tres
+En_pixels=En pixels
+en_unidades=
+Encuadre=Zooms
+Encuadre_Vista=D\u00e9placer
+enlace_vivo=Lien dynamique
+Enlazar_a_fichero_de_texto=Lier \u00e0 un fichier texte
+Enlazar_a_ficheros_de_imagen=Lier \u00e0 un fichier image
+equal_intervals=Intervalles \u00e9gaux
+Error_exportando_SLD=
+Error_guardando_la_leyenda=Erreur en sauvegardant la l\u00e9gende
+Error_guardando_la_plantilla=
+escala=Echelle
+Escala=Echelle
+escala_desconocida=
+escala_maxima=Echelle maximum
+Escala_Maxima=Echelle maximum
+escala_minima=echelle minimum
+Escala_Minima=Echelle minimum
+escala_usuario=Echelle d\u00e9finie par l'utilisateur
+espaciado_horizontal=Pas horizontal de la grille
+espaciado_vertical=Pas vertical de la grille
+espacio=Espace\:
+estadisticas=Statistiques
+este_por_debajo_de_=Soit en dessous de
+este_por_encima_de=Soit au dessus de
+Esten_contenidos_en=Sont contenus dans
+Etiqueta=Etiquette
+Etiquetados=Etiquettages
+etiquetas=Etiquettes\:
+Etiquetas_estandar=Etiquettes standard
+Examinar=Parcourir
+export=Exporter
+exportar=Exporter
+exportar_pdf=Exporter en pdf
+exportar_ps=Exportar a ps
+extension=Extension
+Extent=Extension
+extents_no_coincidentes=Les dimmensions de l'image selectionn\u00e9e ne co\u00efncident pas avec celles de l'image d'origine.
+factor_zoom_incorrecto=
+fallo_capas=Erreurs d'acc\u00e8s aux couches. Les couches suivantes seront supprim\u00e9es du projet.
+family=
+fichero=
+Fichero=Fichier
+fichero_existe=Le fichier selectionn\u00e9 existe d\u00e9j\u00e0
+fichero_incorrecto=Fichier incorrect
+fichero_ya_existe_seguro_desea_guardarlo=
+field_already_exists=
+field_decimal_count=
+field_default_value=
+field_length=
+field_manager=
+field_name=
+field_type=
+filtro=Filtre
+finish=Finaliser
+Font=Fonte
+formato=Format
+Formato_de_numero_erroneo=
+formato_incorrecto=Format incorrect
+fuente=Fonte
+General=G\u00e9n\u00e9ral
+georeferenciado=
+gestion_encuadre=Gestionnaire de positionnement
+grados=Degr\u00e9es\:
+Grados=Degr\u00e9es
+Graficos=Graphiques
+grosor_linea=Largeur de la ligne
+group=Grouper
+group_graphic_line=
+grupo=
+guardado=Enregister sous
+guardar=Enregistrer
+Guardar=Enregistrer
+guardar_cambios=Enregistrer les changements ?
+guardar_como=Enregistrer comme...
+guardar_como_plantilla=Garder comme police
+Guardar_el_zoom_actual=Enregistrer le zoom actif
+Guardar_leyenda=Enregistrer une l\u00e9gende
+guardar_proyecto=Enregistrer un projet
+guardar_tooltip=Enregistrer le projet
+Habilitar_etiquetado=Etiqueter
+Hiperenlace=Hyperlien
+horizontal=Horizontal
+horizontal_space=
+Identificar_Resultados=Identifier les r\u00e9sultats
+Igual_que_la_impresora=Identique que l'impression
+igual_todos_lados=Equal displacement for all sides.
+imagen=Image
+Implimir=
+importar=Importer
+Imprimir=Imprimer
+Indexando=Indexation...
+Indexando_espacialmente=Indexation spatiale de la couche g\u00e9ographique
+indexar_campos=
+Inferior=Inf\u00e9rieur
+info=Information
+informacion=Propri\u00e9t\u00e9s de l'entit\u00e9 cliqu\u00e9e
+Informacion=
+Inicializando=Initialisation
+initial_warning=
+insert_row=Ins\u00e9rer une ligne
+Insertar=Ins\u00e9rer
+insertar_cajetin=insertar cajetin
+insertar_circulo=Ins\u00e9rer un cercle
+insertar_columna=
+insertar_escala=Ins\u00e9rer une \u00e9chelle
+insertar_fila=
+insertar_imagen=Ins\u00e9rer une image
+insertar_leyenda=Ins\u00e9rer une l\u00e9gende
+insertar_linea=Ins\u00e9rer une ligne
+insertar_norte=Ins\u00e9rer  nord
+insertar_poligono=Ins\u00e9rer un polygone
+insertar_polilinea=Ins\u00e9rer une polyligne
+insertar_punto=Ins\u00e9rer un point
+insertar_rectangulo=Ins\u00e9rer un rectangle
+insertar_texto=Ins\u00e9rer du texte
+insertar_vista=Ins\u00e9rer une vue
+Intersecten_con=S\u2019intersectent avec
+Intervalo=Intervalle
+Intervalos=Intervalles
+introduce_nombre=Nouveau type
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=
+introduzca_nuevo_nombre_para_la_vista=
+invalid_value_for_gap=
+invert_selection=
+Italic=Italique
+Izquierda=Gauche
+Izquierdo=Gauche
+join=Joindre
+jpg=Fichiers JPEG
+kilometros=Kilom\u00e8tres
+Kilometros=Kilom\u00e8tres
+leyenda=L\u00e9gende
+Leyenda=L\u00e9gende
+leyenda_campo_unido=Un champs d'une table en jointure est utilis\u00e9  dans la l\u00e9gende (et /ou l'\u00e9tiquetage). Changez la l\u00e9gende avant d'enlever la jointure svp.
+Leyenda_Por_Defecto=L\u00e9gende par d\u00e9faut
+linea=Ligne
+linea_grafica=Ligne graphique
+lineal_directo=Lin\u00e9aire direct
+link=Lien
+Link=Lien
+localizador=Localisateur
+locked_element=
+locked_element_it_cannot_be_deleted=
+locked_element_it_cannot_be_renamed=
+m/pixel=metros/pixel
+malla_activada=Activer la grille
+manage_fields=
+mantener_intervalo=Maintenir l'intervalle
+map_units=Unit\u00e9s de la carte
+mapa=carte
+Mapa=Carte
+mapas=Mises en page
+marco=Cadre
+marco_vista=Espace de travail de la vue
+margenes=Marges\:
+mas_de_100_simbolos=Plus de 100  symboles n'apportent plus d'information dans un plan
+max_length_is=
+maximo=Maximum
+MDIFrame.quiere_salir=Voulez-vous vraiment quitter gvSIG?
+MDIFrame.salir=Quitter
+media=Moyenne
+medir_area=Mesurer une surface
+medir_distancias=Mesurer les distances
+metadatos=Metadatos
+metros=M\u00e8tres
+Metros=M\u00e8tres
+Milimetros=Millim\u00e8tres
+Millas=Miles
+minimo=Minimum
+modificar=
+modification_date=Date de modification
+mostrar_escala_numerica=
+Mostrar_siempre=Tout afficher
+mostrar_unidades=Montrer unit\u00e9s
+move_elements=
+Muestra_atributos=Afficher les attributs de la couche s\u00e9lectionn\u00e9e.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Afficher les \u00e9l\u00e9ments de la couche en utilisant un symbole pour chaque valeur unique
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Afficher les \u00e9l\u00e9ments de la couche en utilisant une gamme de couleurs en fonction de la valeur d'un champs d'attributs d\u00e9termin\u00e9
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Afficher tous les \u00e9l\u00e9ments d'une couche en utilisant le m\u00eame symbole
+natural_intervals=Intervalles naturels
+navegacion=Navigation
+navegacion_vista=Navigation vue
+necesita_una_capa_activa=N\u00e9cessite une couche g\u00e9ographique active
+necesita_una_capa_vectorial_activa=N\u00e9cessite une couche g\u00e9ographique vectorielle active
+new_field=Nouvelle colonne
+new_field_properties=
+next=Suivant
+ninguna_impresora_configurada=Aucune imprimante configur\u00e9e
+Nivel_de_transparencia=Niveau de transparence
+no=Non
+no_activos=Toutes inactives
+No_de_intervalos=Nombre d'intervalles
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=
+No_mostrar=Ne pas afficher la couche lorsque l'\u00e9chelle est
+No_mostrar_la_capa_cuando_la_escala=Ne pas afficher la couche lorsque l'\u00e9chelle
+no_se_pegaran_las_tablas=
+no_se_pegaran_las_vistas_del_conflicto=
+No_se_pudo_obtener_la_tabla_de_la_capa=Impossible d'obtenir la table de la couche g\u00e9ographiqueS
+no_visibles=Toutes invisibles
+nombre=Nom
+Nombre=Nom
+nombre_no_valido=
+Nombre_que_se_le_dara_al_zoom=Nom pour le zoom
+nombre_sesion=Nom du projet
+none=
+none_selected=Aucune selection
+normal=Normal
+north=Nord
+Nueva_tabla=Nouvelle table
+nuevo=Nouveau
+Nuevo_conjunto=Nouvelle s\u00e9lection
+nuevo_nombre_para_el_mapa=
+nuevo_proyecto=Nouveau projet
+nuevo_tooltip=Cr\u00e9er un nouveau projet
+num_bandas=Nombre de bandes
+num_columnas=Nombre de colonnes
+num_filas=Nombres de lignes
+Num_intervalos=
+numero_decimales_mostrar=
+numero_incorrecto=
+ok=Accepter
+opacidad=Opacit\u00e9
+operacion_cancelada=
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Orientation\:
+origen_de_datos=Origine des donn\u00e9es
+Origen_de_datos=Origine des donn\u00e9es
+Origen_de_Datos=Origine des donn\u00e9es\:
+owner=Propri\u00e9taire
+paste=Copier
+paste_elements=
+path=Chemin
+pdf=
+pegar=
+pegar_mapas=
+pegar_vistas=
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Permet d'\u00e9tiquetter les \u00e9l\u00e9ments de la carte avec la valeur d'un champs d\u00e9termin\u00e9
+Personalizado=Personnalisation
+personalizar_margenes=
+Pies=Pieds
+pila_de_comandos=historique des commandes
+pixeles=pixels
+pixels=pixels
+Plain=Normal
+plantilla=
+please_insert_new_field_name=
+png=Fichiers PNG
+poligono=Polygone
+polilinea=polyligne
+poner_capas_a=Ajouter les couches ...
+por_debajo_de=en dessous de\:
+por_encima_de=au del\u00e0 de\:
+Por_favor_active_la_capa=Veuillez activer la couche
+posicion_linea=Position de la ligne
+precision=
+preparar_pagina=Pr\u00e9parer la page
+Preparar_pagina=Pr\u00e9parer la page
+presentacion=Pr\u00e9sentation
+previsualizacion=Pr\u00e9visualisation.
+Previsualizacion=Pr\u00e9visualisation
+Previsualizacion_de_simbolo=Pr\u00e9visualisation du symbole
+propiedad=
+propiedades=Propri\u00e9t\u00e9s
+propiedades_cajetin=Propri\u00e9t\u00e9s du cadre
+propiedades_capa=Propri\u00e9t\u00e9s de la couche
+propiedades_de_la_capa=Propri\u00e9t\u00e9s de la couche\n
+Propiedades_escala_grafica=Propri\u00e9t\u00e9s de la barre d'\u00e9chelle
+propiedades_grafico=Propri\u00e9t\u00e9s du graphique
+propiedades_mapa=Propri\u00e9t\u00e9s de la carte
+propiedades_marco_imagenes=Propri\u00e9t\u00e9s du bloc image
+propiedades_marco_leyenda=Propri\u00e9t\u00e9s du bloc de l\u00e9gende
+propiedades_marco_vista=Propri\u00e9t\u00e9s du bloc de vue
+propiedades_raster=Propri\u00e9t\u00e9s du raster
+propiedades_sesion=Propri\u00e9t\u00e9s du project
+propiedades_tabla=Propri\u00e9t\u00e9s de la table
+Propiedades_texto=Propri\u00e9t\u00e9s du texte
+propiedades_vista=Propri\u00e9t\u00e9s de la vue
+Proyecciones=
+ps=
+puerto=Port
+Pulgadas=Pouces
+punto=Point
+quantile_intervals=Intervalles quantiles
+quiere_continuar=S\u00fbr de vouloir continuer?
+Quitar=Quitter
+Quitar_capa=Supprimer une couche
+quitar_enlaces=Enlever liens
+Quitar_todos=Tout supprimer
+quitar_uniones=Enlever unions
+rango_de_escalas=Niveau d'\u00e9chelle
+Rango_de_escalas=Classes d'\u00e9chelles
+realce=R\u00e9heussement
+realmente_desea_guardar=Voulez-vous sauvegarder ?
+recargar=
+recorte_colas=Couper les r\u00e9sidus
+recorte_vista=Couper la vue
+rectangulo=Rectangle
+recuento=Recomptage
+Recuperar_leyenda=Charger une l\u00e9gende
+Recuperar_y_eliminar_otros_zoom=R\u00e9cuperer et \u00e9liminer les autres zooms
+refrescar=Rafra\u00eechir
+rehacer=refaire
+rellenar_marco_vista=Remplir le cadre de la vue
+relleno=Remplir \:
+remove_elements=
+remove_fields=
+remove_row=Supprimer une ligne
+remove_rows=
+rename_field=
+renombrar=Renomer
+reproyectar_aviso=Le syst\u00e8me de projection de la couche est diff\u00e9rent de la vue.\nAVISO\: \=Des probl\u00e8mes peuvent \u00eatre rencontr\u00e9s avec certaines projections. Lisez la documentation
+reproyectar_pregunta=Souhaitez-vous reprojeter ?
+resolucion_resultado=R\u00e9solution du r\u00e9sultat\:
+resto_valores=Reste des valeurs
+restore_palette=
+rotation_field=
+salir=Quitter
+salir_tooltip=Quitter
+salvar_raster=Enregistrer le raster g\u00e9or\u00e9f\u00e9renc\u00e9.
+Sample=Exemple
+Se_superponen_a=Se superposent \u00e0
+Sean_disjuntos_a=sont disjoints de
+Sean_iguales_a=sont identiques \u00e0
+seleccion=S\u00e9lection
+seleccion_fuente=S\u00e9lection d'une fonte
+Seleccion_por_capa=S\u00e9lection par couche
+selecciona_sistema_de_referencia=
+Seleccionar=S\u00e9lectionner
+seleccionar_capas=S\u00e9lectionner des couches
+seleccionar_capas_raster=
+Seleccionar_de_las_capas_activas_los_elementos_que=S\u00e9lectionner dans la couche active les entit\u00e9s qui\:
+Seleccionar_del_conjunto=Mettre ce texte sur plusieurs lignes
+Seleccionar_fichero=S\u00e9lectionner un fichier
+seleccionar_por_poligono=
+seleccionar_por_punto=S\u00e9lection
+seleccionar_por_rectangulo=S\u00e9lection \u00e0 partir d'un rectangle
+seleccionar_todos=Tout s\u00e9lectionner
+seleccione_campo_enlace=S\u00e9lectionner le champs \u00e0 relier
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=
+seleccione_el_campo_color_de_la_capa_de_anotaciones=
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=
+seleccione_fecha=S\u00e9lection d'une date...
+seleccione_tabla_a_enlazar=S\u00e9lectionner la table a relier
+seleccione_tabla_origen=S\u00e9lectionner la  origine de la jointure
+selection_color=Couleur de s\u00e9lection
+selection_up=
+separator=
+Servidor=Serveur
+Shapefile=Shapefile
+show_this_dialog_next_startup=
+si=
+siempre=Toujours
+simbolo=
+Simbolo=Symbole
+Simbolo_unico=Symbole unique
+Simbologia=Symbologie
+simplificar_leyenda=
+simplify=
+sin_titulo=Sans titre
+sincronizar_color_borde_relleno=Synchroniser la couleur de contour avec le fond \:
+Size=Taille
+sobre_la_barra=Sur la barre
+Solo_para_capas_vectoriales=Seulement pour les couches vectorielles
+start_edition=Commencer l'\u00e9dition
+statistics=Statistiques
+stop_edition=Terminer l'\u00e9dition
+Style=Style
+Subir_capa=Monter une couche
+suma=Somme
+Superior=Sup\u00e9rieure
+symbol_selector=
+Tabla=Table
+Tabla_de_Atributos=Table d'attributs
+tablas=Tables
+Tablas=Tables
+tag=tag
+tamano=Taille\:
+tamano_metros=Taille en m\u00e8tres
+tamano_pagina=Taille de la page\:
+tamano_posicion=Taille et position
+tamanyo_borde=Taille du bord
+tamanyo_fuente=Taille de la source
+tamanyo_pagina=
+tamPixX=
+tamPixY=
+terminar=
+terminar_edicion=
+texto=Texte
+this_table_is_not_self_editable=
+tipo_dato=Type de donn\u00e9e
+tipo_de_intervalo=Type d'intervalle
+tipo_de_leyenda=Type de l\u00e9gende
+tipo_fichero_proyecto=Fichier de projet gvSIG (*.gvsproj)
+tipo_linea=Type de Ligne\:
+tipo_relleno=Remplir\:
+tipo_simbolo=Type de symbole\:
+tipos_de_documentos=Type de documents
+titulo=Gestionnaire de projet
+titulo_fframetext=Titre du champs texte
+to_annotation=Transformer la couche en etiquettes
+to_palette=Changer la palette
+tooltip_copiar_al_portapapeles=
+tooltip_cortar_al_portapapeles=
+tooltip_pegar_desde_el_portapapeles=
+Toquen=touchent
+transparencia=Transparence
+Transparencia=Transparence
+transparencia_pixel=Transparence des pixels
+ungroup=Dissocier
+unidades=Unit\u00e9s\:
+Unidades=Unit\u00e9s\:
+untitled=Sans titre
+url=
+Usar_indice_espacial=Utiliser indice spatial
+usar_marco=Utiliser le cadre
+usar_titulo=Utiliser titre
+usuario=Utilisateur
+utilizar_margenes_impresora=Utiliser les marges de l'imprimante.
+vacia=Vide
+Valor=Valeur
+Valores=Valeurs
+Valores_unicos=Valeurs uniques
+varianza=Variance
+Ventana=Fen\u00eatre
+ventana_proyecto=Fen\u00eatre de projet
+Ver=Afficher
+ver_error_capa=
+ver_tabla_atributos=Voir la table des attributs
+ver_tags=
+ver_tooltip=Afficher la fen\u00eatre de projet
+vertical=Vertical
+vertical_space=
+visible=Visible
+visibles=Toutes visibles
+Vista=Vue
+vistas=Vues
+visualizacion=Vues
+Visualizacion=Visualiser
+visualizar_cuadricula=Afficher la grille
+warning=
+xmax=X minimum
+xmin=X minimum
+Yardas=Yards
+ymax=Y minimum
+ymin=Y minimum
+Zoom_a_la_capa=Zoom \u00e0 la couche
+Zoom_Acercar=Zoom rapprocher
+Zoom_Alejar=Zoom \u00e9loigner
+Zoom_Completo=Vue g\u00e9n\u00e9rale
+Zoom_Completo_Vista=Zoom complet dans le cadre
+zoom_in_factor=
+Zoom_Mas=Zoom avant.
+Zoom_Mas_Vista=Zoom arri\u00e8re dans le cadre
+Zoom_Menos=Zoom avant
+Zoom_Menos_Vista=Zoom avant dans le cadre
+zoom_out_factor=
+Zoom_pixel=Zoom a la r\u00e9solution du raster
+Zoom_Previo=Zoom pr\u00e9c\u00e9dent
+Zoom_Real=Zoom 1\:1
+Zoom_Select=Zoom \u00e0 la s\u00e9lection

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_fr.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/scolab.html
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/scolab.html	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/scolab.html	(revision 38262)
@@ -0,0 +1,12 @@
+<html>
+<body>
+
+<img src="scolab-logo.png"><br>
+
+<h2>Software Colaborativo</h2>
+<br>
+
+<p>EN CONSTRUCCION</p>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/scolab.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_eu.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_eu.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_eu.properties	(revision 38262)
@@ -0,0 +1,706 @@
+#Translations for language [eu]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(eskala handiena)
+(escala_minima)=(eskala txikiena)
+1\:=
+_(Simbolo_unico)=(Ikur bakarra)
+__proyeccion_actual=Egungo proiekzioa\:
+__redimensionar_texto_escala=Testua bistaren eskalara egokitu.
+__seleccion_de_fuente=Letra-tipoa aukeratu
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Behera
+abrir=Ireki
+abrir_plantilla=Ireki txantiloia
+abrir_proyecto=Proiektua ireki
+abrir_tooltip=Aurreko proiektu bat irekitzen du
+Abrir_una_capa=
+Accion_Predefinida=Aurretik zehaztutako ekintza
+aceptar=Ados
+Aceptar=Ados
+acerca_de=Honi buruz\:
+activar=Activate
+activar_regla=Erregela aktibatu
+activos=Aktiboak
+add_delete_edit_fields=
+add_layer=Gehitu geruza
+add_rows=
+adjust_transparency=Doitu gardentasuna
+agrupacion=
+agrupar=Multzokatu
+agrupar_capas=Multzokatu geruzak
+agrupar_graficos=Multzokatu grafikoak
+agrupar_linea=Lerro grafikoa grafikoekin multzokatu.
+Ajustar_transparencia=Doitu gardentasuna
+ajustes_linea_grafica=Lerro grafikoaren doitzeak
+Al_leer_la_leyenda=Legenda irakurtzean
+alias=Ezizena
+align_center=
+align_down=
+align_left=
+align_right=
+align_to_layout_center=
+align_to_layout_down=
+align_to_layout_left=
+align_to_layout_right=
+align_to_layout_up=
+align_to_layout_vertical_center=
+align_up=
+align_vertical_center=
+alineamiento=Lerrokadura
+alinear=Lerrokatu
+alinear_graficos=Grafikoak lerrokatu
+alta=Goi
+alto=Goi
+altura=Altura\:
+Altura_fija_de_texto=Testuaren altura finkoa
+ambito=Esparrua
+Anadir=Gehitu
+Anadir_al_conjunto=Gehitu multzoari
+Anadir_capa=Gehitu geruza
+Anadir_Capa=Gehitu geruza
+anadir_tag=
+Anadir_todos=Gehitu guztiak
+ancho=Zabalera
+ancho_alto=Zabalera altuera
+anchura=Zabalera\:
+Aplicar=Aplikatu
+Archivo=Fitxategia
+arriba=Gora
+ascending_order=Goranzko hurrenkera
+ascending_order_tooltip=Ordenatu hautatutako eremua goranzko hurrenkeran
+Atributo=Atributua
+automatico=Automatikoa
+Ayuda=Laguntza
+back=Aurrekoa
+background_color=Atzeko kolorea
+baja=Behe
+Bajar_capa=Jaitsi geruza
+bandas=Bandak
+barra=Barra\:
+base=base
+base_datos=Datu-baseak
+bmp=BMP motako fitxategiak
+Bold=
+borra_seleccion=Ezabatu aukeraketa
+borrador=Zirriborroa
+borrar=Ezabatu
+box=
+brillo=Distira
+brillo_y_contraste=Distira eta kontrastea
+browse=Aztertu
+cajetin=
+Calcular_intervalos=Kalkulatu bitarteak
+calidad=Kalitatea
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=
+Cambio_Color=Kolore aldaketa
+cambio_nombre=Izen aldaketa
+campo=Eremua
+Campo=Eremua
+campo_altura_texto=Testuaren altura eremua\:
+Campo_de_clasificacion=Sailkapen eremua
+Campo_de_etiquetado=Etiketatze eremua
+Campos=Eremuak
+cancel=Utzi
+Cancel=Utzi
+cancelar=Utzi
+Cancelar=Utzi
+Capa=Geruza
+Capas=Geruzak
+Capas_del_localizador=Bilagailuaren geruzak
+Centimetros=Zentimetroak
+cerrar=Itxi
+Cerrar=Itxi
+change=
+change_before=
+change_behind=
+change_height=
+change_width=
+circulo=Zirkulua
+clave=Gakoa
+close=Itxi
+coincidir_tamanyo=
+colocar_a_margenes=Jarri marjinak kontuan hartuta.
+colocar_alrededor_seleccionados=Jarri hautatutako grafikoen inguruan.
+colocar_alrededor_todos=Jarri grafiko guztien inguruan.
+colocar_delante=Jarri aurrean
+colocar_detras=Jarri atzean
+color=Kolorea\:
+Color_final=Amaierako kolorea\:
+Color_inicio=Hasierako kolorea
+color_texto=Testuaren kolorea\:
+comentarios=Iruzkinak
+comenzar_edicion=
+compleja=
+configurar=Konfiguratu
+configurar_localizador=Konfiguratu bilagailua
+Configurar_localizador=Konfiguratu bilagailua...
+confirmar_borrar=Ziur al zaude osagaia ezabatu nahi duzula?
+conflicto_de_nombres_de_mapas_al_pegar=
+conflicto_de_nombres_de_tablas_al_pegar=
+conflicto_de_nombres_de_vistas_al_pegar=
+conflito_de_nombres_de_tablas_al_pegar=
+conservar_escala_visualizacion=Gorde bistaratze eskala
+consulta=Kontsulta
+Contengan=Honakoak dituztenak
+contraste=Kontrastea
+coor_geograficas=Koordenatu geografikoak
+copiar=
+copy=Kopiatu
+cortar=
+creation_date=Sortze data
+Crucen_con=Hauekin gurutzatzen direnak
+cuando_activo=Aktibo dagoenean
+cut=Ebaki
+Dado_un_campo_de_atributos=Atributu eremua emanda dago
+debera_introducir_nombres_para_las_vistas_a_pegar=
+debera_introducir_nombres_para_los_mapas_a_pegar=
+default_projection=
+default_value=
+dehacer=Desegin
+delete_field=Ezabatu eremua
+Derecha=Eskuina
+Derecho=Eskuina
+desagrupar=Desegin multzoak
+desagrupar_capas=
+desagrupar_graficos=Desegin grafikoen multzoak
+descending_order=Beheranzko hurrenkera
+descending_order_tooltip=Ordenatu hautatutako eremua beheranzko hurrenkeran
+descripcion_de_configuracion_capa_de_anotaciones=
+descripcion_de_crear_capa_de_anotaciones=
+desde_arriba=Goitik\:
+desde_izquierda=Ezkerretik\:
+desea_borrar_el_documento=
+desea_borrar_la_capa=
+desea_continuar=
+deshacer=Desegin
+desplaza_los_elementos_seleccionados_a_la_derecha=
+desplaza_los_elementos_seleccionados_a_la_izquierda=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=
+desplaza_los_elementos_seleccionados_hacia_abajo=
+desplaza_los_elementos_seleccionados_hacia_arriba=
+Desplazamiento=Lekualdaketa
+desviacion_tipica=Ohiko desbideratzea
+distance_units=Neurri unitateak
+distribuir=Banatu\:
+distribuir_elementos_sobre_todo_el_layout=
+distributes_down=
+distributes_horizontal=
+distributes_left=
+distributes_right=
+distributes_to_layout_down=
+distributes_to_layout_horizontal=
+distributes_to_layout_left=Distribuye izquierda del layout
+distributes_to_layout_right=
+distributes_to_layout_up=
+distributes_to_layout_vertical=
+distributes_up=
+distributes_vertical=
+distribuye_el_espacio_entre_los_elementos_en_horizontal=
+distribuye_el_espacio_entre_los_elementos_en_vertical=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=
+divisiones_izquierda=Zatiketak ezkerrean
+documento=
+documentos_existentes=Aurretik dauden dokumentuak
+draw_text_only=
+driver=Driver
+Dxffiles=.DFX fitxategiak
+edicion=Edizioa
+editable=Editagarria
+Editar_leyenda=Editatu legenda
+editar_vertices=Editatu erpinak
+el_numero_maximo_de_intervalos_para_este_campo_es=Eremu honek izan dezakeen tarte kopuru handiena hau da
+Elegir_Color=Hautatu kolorea
+Elegir_Fuente=Hautatu letra-tipoa
+elemento_ya_existe=
+Elementos_seleccionados_de_la_capa=Geruzatik hautatu diren osagaiak
+Eliminar=Ezabatu
+eliminar_capa=Ezabatu geruza
+eliminar_columna=
+eliminar_extremos=Ezabatu muturrak
+eliminar_fila=
+en_el_mapa=Mapan\:
+En_metros=Metrotan
+En_pixels=Pixeletan
+en_unidades=
+Encuadre=Enkoadraketa
+Encuadre_Vista=Bistaren gaineko enkoadraketa
+enlace_vivo=Lotura bizia
+Enlazar_a_fichero_de_texto=Testu fitxategietara estekatu
+Enlazar_a_ficheros_de_imagen=Irudi fitxategietara estekatu
+equal_intervals=Tarte berdinak
+Error_exportando_SLD=
+Error_guardando_la_leyenda=Errorea legenda gordetzean
+Error_guardando_la_plantilla=
+escala=Eskala
+Escala=Eskala
+escala_desconocida=
+escala_maxima=Eskala handiena
+Escala_Maxima=Eskala handiena
+escala_minima=Eskala txikiena
+Escala_Minima=Eskala txikiena
+escala_usuario=Erabiltzaileak zehaztutako eskala
+espaciado_horizontal=Sarearen tarte horizontala
+espaciado_vertical=Sarearen tarte bertikala
+espacio=Espazioa\:
+estadisticas=Estatistikak
+este_por_debajo_de_=Honen azpitik egotea\:
+este_por_encima_de=Honen gainetik egotea\:
+Esten_contenidos_en=Hemen daudenak
+Etiqueta=Etiketa
+Etiquetados=Etiketatuak
+etiquetas=Etiketak\:
+Etiquetas_estandar=Etiketa estandarrak
+Examinar=Aztertu
+export=Esportatu
+exportar=Esportatu
+exportar_pdf=Esportatu pdf batera
+exportar_ps=Exportar a ps
+extension=Luzapena
+Extent=Extent
+extents_no_coincidentes=Hedadurak ez datoz bat
+factor_zoom_incorrecto=
+fallo_capas=Hutsegitea geruzetara iristean. Hurrengo geruzak proiektutik ezabatuko dira
+family=
+fichero=
+Fichero=Fitxategia
+fichero_existe=Fitxategia badago
+fichero_incorrecto=Fitxategia ez da zuzena
+fichero_ya_existe_seguro_desea_guardarlo=
+field_already_exists=
+field_decimal_count=
+field_default_value=
+field_length=
+field_manager=
+field_name=
+field_type=
+filtro=Iragazkia
+finish=Bukatu
+Font=Letra-tipoa
+formato=Formatua
+Formato_de_numero_erroneo=
+formato_incorrecto=Formatoa ez da zuzena
+fuente=Letra-tipoa
+General=Orokorra
+georeferenciado=
+gestion_encuadre=Enkoadraketen kudeaketa
+grados=Graduak\:
+Grados=Graduak
+Graficos=Grafikoak
+grosor_linea=Lerroaren lodiera\:
+group=Multzokatu
+group_graphic_line=
+grupo=
+guardado=Hemen gorde da\:
+guardar=Gorde
+Guardar=Gorde
+guardar_cambios=Aldaketak gorde nahi dituzu?
+guardar_como=Gorde honela\:
+guardar_como_plantilla=Gorde txantiloi moduan
+Guardar_el_zoom_actual=Gorde zooma
+Guardar_leyenda=Gorde legenda
+guardar_proyecto=Gorde proiektua
+guardar_tooltip=Gorde proiektuaren aldaketak
+Habilitar_etiquetado=Gaitu etiketak
+Hiperenlace=Hiperesteka
+horizontal=Horizontala
+horizontal_space=
+Identificar_Resultados=Identifikatu emaitzak
+Igual_que_la_impresora=Inprimagailuaren neurrira
+igual_todos_lados=Alde guztietatik berdin mugitzea.
+imagen=Irudia
+Implimir=
+importar=Inportatu
+Imprimir=Inprimatu
+Indexando=Indexatzen...
+Indexando_espacialmente=Geruza espazioan indexatzen ari da
+indexar_campos=
+Inferior=Behean
+info=Informazioa
+informacion=Informazioa
+Informacion=Informazioa
+Inicializando=Hasten
+initial_warning=
+insert_row=Txertatu ilara
+Insertar=Txertatu
+insertar_cajetin=Txertatu inskripzio-laukia
+insertar_circulo=Txertatu zirkulua
+insertar_columna=
+insertar_escala=Txertatu eskala
+insertar_fila=
+insertar_imagen=Txertatu irudia
+insertar_leyenda=Txertatu legenda
+insertar_linea=Txertatu lerroa
+insertar_norte=Iparraldea txertatu
+insertar_poligono=Txertatu poligonoa
+insertar_polilinea=Txertatu polilinea
+insertar_punto=Txertatu puntua
+insertar_rectangulo=Txertatu laukizuzena
+insertar_texto=Txertatu testua
+insertar_vista=Txertatu bista
+Intersecten_con=Hauekin ebakitzen direnak
+Intervalo=Tartea
+Intervalos=Tarteak
+introduce_nombre=Sartu izen berria
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=
+introduzca_nuevo_nombre_para_la_vista=
+invalid_value_for_gap=
+invert_selection=
+Italic=
+Izquierda=Ezkerra
+Izquierdo=Ezkerra
+join=Lotu
+jpg=JPEG fitxategiak
+kilometros=Kilometroak
+Kilometros=Kilometroak
+leyenda=Legenda
+Leyenda=Legenda
+leyenda_campo_unido=Legendan (eta/edo etiketan)loturaren eremu bat erabiltzen ari zara. Mesedez, aldatu legenda lotunea kendu aurretik.
+Leyenda_Por_Defecto=Legenda lehenetsia
+linea=Lerroa
+linea_grafica=Lerro grafikoa
+lineal_directo=Zuzeneko lineala
+link=Lotura
+Link=Lotura
+localizador=Bilagailua
+locked_element=
+locked_element_it_cannot_be_deleted=
+locked_element_it_cannot_be_renamed=
+m/pixel=metros/pixel
+malla_activada=Sarea aktibatuta
+manage_fields=
+mantener_intervalo=Tartea mantendu
+map_units=Maparen unitateak
+mapa=
+Mapa=Mapa
+mapas=Mapak
+marco=Markoa
+marco_vista=Bista-eremua
+margenes=Marjinak
+mas_de_100_simbolos=100 sinbolo baino gehiagok ez diote planoari informaziorik eransten.
+max_length_is=
+maximo=Gehienez
+MDIFrame.quiere_salir=Ziur zaude irten nahi duzula?
+MDIFrame.salir=Irten
+media=Batez beste
+medir_area=Azalera neurtu
+medir_distancias=Distantziak neurtu
+metadatos=Metadatos
+metros=Metroak
+Metros=Metroak
+Milimetros=Milimetroak
+Millas=Miliak
+minimo=Gutxienez
+modificar=
+modification_date=Aldatu zen azken eguna
+mostrar_escala_numerica=
+Mostrar_siempre=Erakutsi beti
+mostrar_unidades=Bistaratu unitateak
+move_elements=
+Muestra_atributos=Hautatutako geruzen atributuak erakusten ditu.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Geruzaren osagaiak balio bakoitzerako ikur bat erabiliz erakusten ditu
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Geruzaren elementuak atributu eremu jakin bateko koloreak erabiliz erakusten ditu
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Geruza baten osagai guztiak ikur berdina erabiliz erakusten ditu
+natural_intervals=Tarte naturalak
+navegacion=Nabigazioa
+navegacion_vista=Nabigazio Ikuspegia
+necesita_una_capa_activa=Geruza bat aktibo egon behar da
+necesita_una_capa_vectorial_activa=Bektore-geruza bat aktibo egon behar da
+new_field=Eremu berria
+new_field_properties=
+next=Hurrengoa
+ninguna_impresora_configurada=Ez dago konfiguratutako inprimagailurik
+Nivel_de_transparencia=Gardentasun maila
+no=Ez
+no_activos=Ez daude aktibo
+No_de_intervalos=Tarte kop.
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=
+No_mostrar=Ez erakutsi geruza eskala horrelakoa bada
+No_mostrar_la_capa_cuando_la_escala=Ez erakutsi geruza eskala horrelakoa bada\:
+no_se_pegaran_las_tablas=
+no_se_pegaran_las_vistas_del_conflicto=
+No_se_pudo_obtener_la_tabla_de_la_capa=Ezin izan da geruzaren taula eskuratu
+no_visibles=Ez dago ikusgai
+nombre=Izena
+Nombre=Izena
+nombre_no_valido=
+Nombre_que_se_le_dara_al_zoom=Zoomari emango zaion izena
+nombre_sesion=Saioaren izena
+none=
+none_selected=Ez da bat ere ez hautatu
+normal=Normala
+north=Iparraldea
+Nueva_tabla=Taula berria
+nuevo=Berria
+Nuevo_conjunto=Multzo berria
+nuevo_nombre_para_el_mapa=
+nuevo_proyecto=Proiektu berria
+nuevo_tooltip=Beste proiektu bat sortu
+num_bandas=Banda kopurua
+num_columnas=Zutabe kopurua
+num_filas=Lerro kopurua
+Num_intervalos=
+numero_decimales_mostrar=
+numero_incorrecto=Zenbakia ez da zuzena
+ok=Ados
+opacidad=Opakotasuna
+operacion_cancelada=
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Orientazioa\:
+origen_de_datos=Datu-iturburua
+Origen_de_datos=Datu-iturburua
+Origen_de_Datos=Datu-iturburua\:
+owner=Jabea
+paste=Itsatsi
+paste_elements=
+path=Bidea
+pdf=
+pegar=
+pegar_mapas=
+pegar_vistas=
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Mapako elementuak eremu jakin baten balioarekin etiketatzea ahalbidetzen du
+Personalizado=Pertsonalizatua
+personalizar_margenes=
+Pies=Oinak
+pila_de_comandos=Komando-pila
+pixeles=pixelak
+pixels=pixels
+Plain=
+plantilla=
+please_insert_new_field_name=
+png=png fitxategiak
+poligono=Poligonoa
+polilinea=polilinea
+poner_capas_a=Jarri geruzak hemen\:
+por_debajo_de=Honen azpitik\:
+por_encima_de=Honen gainetik\:
+Por_favor_active_la_capa=Mesedez, aktibatu geruza
+posicion_linea=Lerroaren kokalekua
+precision=
+preparar_pagina=Prestatu orria
+Preparar_pagina=Prestatu orria
+presentacion=Aurkezpena
+previsualizacion=Aurrebista
+Previsualizacion=Aurrebista
+Previsualizacion_de_simbolo=Ikurraren aurrebista
+propiedad=
+propiedades=Ezaugarriak
+propiedades_cajetin=Inskripzio-laukiaren ezaugarriak
+propiedades_capa=Geruzaren ezaugarriak
+propiedades_de_la_capa=Geruzaren ezaugarriak
+Propiedades_escala_grafica=Eskala grafikoaren ezaugarriak
+propiedades_grafico=Grafikoaren ezaugarriak
+propiedades_mapa=Maparen ezaugarriak
+propiedades_marco_imagenes=Irudi-markoaren ezaugarriak
+propiedades_marco_leyenda=Legenda-markoaren ezaugarriak
+propiedades_marco_vista=Bista-markoaren ezaugarriak
+propiedades_raster=Raster-aren ezaugarriak
+propiedades_sesion=Saioaren ezaugarriak
+propiedades_tabla=Taularen ezaugarriak
+Propiedades_texto=Testuaren ezaugarriak
+propiedades_vista=Bistaren ezaugarriak
+Proyecciones=
+ps=
+puerto=Ataka
+Pulgadas=Hazbeteak
+punto=Puntua
+quantile_intervals=Tarte koantilak
+quiere_continuar=Ziur zaude irten nahi duzula?
+Quitar=Kendu
+Quitar_capa=Kendu geruza
+quitar_enlaces=Kendu lotuneak
+Quitar_todos=Kendu denak
+quitar_uniones=Kendu loturak
+rango_de_escalas=Eskala-maila
+Rango_de_escalas=Eskala-maila
+realce=Irtengunea
+realmente_desea_guardar=Ziur zaude gorde nahi duzula?
+recargar=
+recorte_colas=Ilarak ebaki
+recorte_vista=Bistarako murrizketa
+rectangulo=Laukizuzena
+recuento=Zenbaketa
+Recuperar_leyenda=Berreskuratu legenda
+Recuperar_y_eliminar_otros_zoom=Beste zoom batzuk berreskuratu eta ezabatu
+refrescar=Eguneratu
+rehacer=Berregin
+rellenar_marco_vista=Bete bista-eremua
+relleno=Betegarria\:
+remove_elements=
+remove_fields=
+remove_row=Ezabatu lerroa
+remove_rows=
+rename_field=
+renombrar=Berriro izendatu
+reproyectar_aviso=Geruzaren proiekzioa ez da bistaren proiekzioaren berdina. OHARRA\: Zehaztugabea izan daiteke aldaketa batzuekin. Mesedez, irakurri dokumentazioa.
+reproyectar_pregunta=Berriro proiektatu nahi duzu?
+resolucion_resultado=Emaitzaren ebazpena\:
+resto_valores=Gainerako balioak
+restore_palette=
+rotation_field=
+salir=Irten
+salir_tooltip=Irten
+salvar_raster=Gorde raster geoerreferentziatuan.
+Sample=Adibidea
+Se_superponen_a=Honakoei gainjartzen zaizkienak
+Sean_disjuntos_a=honen disjuntu direnak
+Sean_iguales_a=honen berdinak direnak
+seleccion=Hautaketa
+seleccion_fuente=Letra-tipoa aukeratu
+Seleccion_por_capa=Hautatu geruzaka
+selecciona_sistema_de_referencia=
+Seleccionar=Hautatu
+seleccionar_capas=Hautatu geruzak
+seleccionar_capas_raster=
+Seleccionar_de_las_capas_activas_los_elementos_que=Geruza aktiboetatik baldintza hauek betetzen dituzten osagaiak hautatu\:
+Seleccionar_del_conjunto=Multzotik hautatu
+Seleccionar_fichero=Hautatu fitxategia
+seleccionar_por_poligono=
+seleccionar_por_punto=Puntuka hautatu
+seleccionar_por_rectangulo=Laukizuzenka hautatu
+seleccionar_todos=Hautatu guztiak
+seleccione_campo_enlace=Hautatu lotzeko erabiliko den eremua
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=
+seleccione_el_campo_color_de_la_capa_de_anotaciones=
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=
+seleccione_fecha=Hautatu data bat...
+seleccione_tabla_a_enlazar=Hautatu lotu beharreko taula
+seleccione_tabla_origen=Hautatu join-aren sorburu-taula
+selection_color=Hautaketaren kolorea
+selection_up=
+separator=
+Servidor=Zerbitzaria
+Shapefile=Shapefile
+show_this_dialog_next_startup=
+si=
+siempre=Beti
+simbolo=
+Simbolo=Ikurra
+Simbolo_unico=Ikur bakarra
+Simbologia=Sinbologia
+simplificar_leyenda=
+simplify=
+sin_titulo=Titulurik gabe
+sincronizar_color_borde_relleno=Ertzaren kolorea eta betegarriarena sinkronizatu\:
+Size=
+sobre_la_barra=Barran
+Solo_para_capas_vectoriales=Bektore-geruzetarako bakarrik
+start_edition=Hasi edizioa
+statistics=Estatistikak
+stop_edition=Amaitu edizioa
+Style=Estiloa
+Subir_capa=Igo geruza
+suma=Batura
+Superior=Goian
+symbol_selector=
+Tabla=Taula
+Tabla_de_Atributos=Atributuen taula
+tablas=Taulak
+Tablas=Taulak
+tag=tag
+tamano=Tamaina\:
+tamano_metros=Tamaina metrotan
+tamano_pagina=Orrialde-tamaina\:
+tamano_posicion=tamaina/kokalekua
+tamanyo_borde=Ertzaren tamaina
+tamanyo_fuente=Iturri-tamaina
+tamanyo_pagina=
+tamPixX=
+tamPixY=
+terminar=
+terminar_edicion=
+texto=Testua
+this_table_is_not_self_editable=
+tipo_dato=Datu mota
+tipo_de_intervalo=Tarte mota
+tipo_de_leyenda=Legenda-mota
+tipo_fichero_proyecto=gvSIG (*.gvsproj) proiektu fitxategia
+tipo_linea=Lerro mota\:
+tipo_relleno=Betegarri-mota\:
+tipo_simbolo=Ikur-mota\:
+tipos_de_documentos=Agiri-motak
+titulo=Proiektuen kudeatzailea
+titulo_fframetext=Testu eremuaren titulua
+to_annotation=Bihurtu oharpen-geruza
+to_palette=Aldatu paletara
+tooltip_copiar_al_portapapeles=
+tooltip_cortar_al_portapapeles=
+tooltip_pegar_desde_el_portapapeles=
+Toquen=hauek ukitzen dituztenak
+transparencia=Gardentasuna
+Transparencia=Gardentasuna
+transparencia_pixel=Gardentasuna pixel bakoitzeko
+ungroup=Desegin multzoak
+unidades=Unitateak\:
+Unidades=Unitateak\:
+untitled=Titulurik gabe
+url=
+Usar_indice_espacial=Espazio-indizea erabili
+usar_marco=Erabili markoa
+usar_titulo=Erabili titulua
+usuario=Erabiltzailea
+utilizar_margenes_impresora=Erabili inprimagailuaren marjinak.
+vacia=Hutsik
+Valor=Balioa
+Valores=Balioak
+Valores_unicos=Balio bakarrak
+varianza=Bariantza
+Ventana=Leihoa
+ventana_proyecto=Proiektuaren leihoa
+Ver=Ikusi
+ver_error_capa=
+ver_tabla_atributos=Ikusi atributuen taula
+ver_tags=
+ver_tooltip=Proiektuaren leihoa erakusten du
+vertical=Bertikala
+vertical_space=
+visible=Ikusgai
+visibles=Ikusgai
+Vista=Bista
+vistas=Bista
+visualizacion=Bistaratzea
+Visualizacion=Bistaratzea
+visualizar_cuadricula=Bistaratu sarea
+warning=Oharra
+xmax=xmax
+xmin=xmin
+Yardas=Yardak
+ymax=ymax
+ymin=ymin
+Zoom_a_la_capa=Zooma geruzari
+Zoom_Acercar=Hurbiltzeko zooma
+Zoom_Alejar=Urruntzeko zooma
+Zoom_Completo=Zooma osorik
+Zoom_Completo_Vista=Zooma osorik bistaren gainean
+zoom_in_factor=
+Zoom_Mas=Zoom handiagoa
+Zoom_Mas_Vista=Zoom handiagoa bistaren gainean
+Zoom_Menos=Zoom txikiagoa
+Zoom_Menos_Vista=Zoom txikiagoa bistaren gainean
+zoom_out_factor=
+Zoom_pixel=Pixelaren zooma
+Zoom_Previo=Aurretiko zooma
+Zoom_Real=1\:1 zooma
+Zoom_Select=Zooma hautatutakoari

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_eu.properties
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/iver.html
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/iver.html	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/iver.html	(revision 38262)
@@ -0,0 +1,12 @@
+<html>
+<body>
+
+<img src="iver-logo.png"><br>
+
+<h2>IVER</h2>
+<br>
+
+<p>EN CONSTRUCCION</p>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/iver.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_it.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_it.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_it.properties	(revision 38262)
@@ -0,0 +1,706 @@
+#Translations for language [it]
+#Tue Nov 07 12:30:01 CET 2006
+(escala_maxima)=(scala massima)
+(escala_minima)=(scala minima)
+1\:=
+_(Simbolo_unico)=(Simbolo unico)
+__proyeccion_actual=Proiezione attuale\:
+__redimensionar_texto_escala=Ridimensiona il testo alla scala della vista
+__seleccion_de_fuente=Seleziona carattere
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Basso
+abrir=Apri
+abrir_plantilla=Apri Tavola
+abrir_proyecto=Apri Progetto
+abrir_tooltip=Apri Progetto esistente
+Abrir_una_capa=Apri Layer
+Accion_Predefinida=Azione predefinita
+aceptar=Accetta
+Aceptar=Accetta
+acerca_de=Cerca...
+activar=Attiva
+activar_regla=Attiva regola
+activos=Attivi
+add_delete_edit_fields=I campi possono essere aggiunti, cancellati o rinominati.
+add_layer=Aggiungi Layer
+add_rows=Aggiungi righe
+adjust_transparency=Regola transparenza
+agrupacion=Raggruppamento
+agrupar=Raggruppa
+agrupar_capas=Raggruppa layers
+agrupar_graficos=Raggruppa grafici
+agrupar_linea=Raggruppa riquadro di contorno con i grafici 
+Ajustar_transparencia=Regola trasparenza
+ajustes_linea_grafica=Regola spessore linea
+Al_leer_la_leyenda=Leggendo la legenda
+alias=Alias
+align_center=Allinea al centro
+align_down=Allinea in basso
+align_left=Allinea a sinistra
+align_right=Allinea a destra
+align_to_layout_center=Allinea al centro del layout
+align_to_layout_down=Allinea in basso nel layout
+align_to_layout_left=Allinea a sinistra del layout
+align_to_layout_right=Allinea a destra del layout
+align_to_layout_up=Allinea in alto nel layout
+align_to_layout_vertical_center=Allinea al centro del layout verticalmente
+align_up=Allinea in alto
+align_vertical_center=Allinea al centro della verticale
+alineamiento=Allineamento
+alinear=Allinea
+alinear_graficos=Allinea grafici
+alta=Alta
+alto=Alto
+altura=Altezza\:
+Altura_fija_de_texto=Altezza fissa del testo
+ambito=Ambito
+Anadir=Aggiungi
+Anadir_al_conjunto=Aggiungi all'insieme
+Anadir_capa=Aggiungi layer
+Anadir_Capa=Aggiungi layer
+anadir_tag=Aggiungi tag
+Anadir_todos=Aggiungi tutto
+ancho=Larghezza\:
+ancho_alto=Larghezza X Altezza
+anchura=Larghezza\:
+Aplicar=Applica
+Archivo=File
+arriba=Alto
+ascending_order=Ordine crescente
+ascending_order_tooltip=Ordina il campo selezionato in ordine crescente
+Atributo=Attributo
+automatico=Automatico
+Ayuda=Aiuto
+back=Precedente
+background_color=Colore sfondo
+baja=Basso
+Bajar_capa=Abbassa layer
+bandas=Bande
+barra=Barra\:
+base=base
+base_datos=DataBases
+bmp=BMP files
+Bold=Grasseto
+borra_seleccion=Annulla/Elimina selezione
+borrador=Bozza
+borrar=Rimuovi
+box=Riquadro
+brillo=Luminosit\u00e1
+brillo_y_contraste=Luminosit\u00e0 e Contrasto
+browse=Sfoglia
+cajetin=Riquadro
+Calcular_intervalos=Calcola intervalli
+calidad=Qualit\u00e1
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=Adatta altezza degli elementi selezionati al pi\u00f9 alto.
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=Adatta larghezza degli elementi selezionati al pi\u00f9 largo.
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=Adatta la dimensione degli elementi selezionati al maggiore.
+Cambio_Color=Cambio di colore
+cambio_nombre=Cambio di nome
+campo=Campo
+Campo=Campo
+campo_altura_texto=Campo di altezza del testo\:
+Campo_de_clasificacion=Campo di classificazione
+Campo_de_etiquetado=Campo di etichetta
+Campos=Campi
+cancel=Cancella
+Cancel=Cancella
+cancelar=Cancella
+Cancelar=Cancella
+Capa=Layer
+Capas=Layers
+Capas_del_localizador=Layers del localizzatore
+Centimetros=Centimetri
+cerrar=Chiudi
+Cerrar=Chiudi
+change=Modifica
+change_before=Porta avanti
+change_behind=Porta indietro
+change_height=Modifica altezza
+change_width=Modifica larghezza
+circulo=Cerchio
+clave=Password
+close=Chiudi
+coincidir_tamanyo=Adatta dimensione
+colocar_a_margenes=Colloca al margine
+colocar_alrededor_seleccionados=Colloca intorno a quanto selezionato
+colocar_alrededor_todos=Colloca intorno a tutto
+colocar_delante=Colloca davanti
+colocar_detras=Colloca dietro
+color=Colore\:
+Color_final=Colore finale\:
+Color_inicio=Colore iniziale
+color_texto=Colore testo\:
+comentarios=Commenti
+comenzar_edicion=Inizia modifica
+compleja=
+configurar=Configura
+configurar_localizador=Configura localizzatore
+Configurar_localizador=Configura localizzatore ...
+confirmar_borrar=Gli elementi saranno rimossi. Sei sicuro?
+conflicto_de_nombres_de_mapas_al_pegar=Si sta tentando di incollare mappe i cui nomi sono gi\u00e0 presenti nel progetto corrente.
+conflicto_de_nombres_de_tablas_al_pegar=Si sta tentando di incollare tabelle i cui nomi sono gi\u00e0 presenti nel progetto corrente.
+conflicto_de_nombres_de_vistas_al_pegar=Si sta tentando di incollare Viste i cui nomi sono gi\u00e0 presenti nel progetto corrente.
+conflito_de_nombres_de_tablas_al_pegar=Conflitto nei nomi delle tabelle durante la copia.
+conservar_escala_visualizacion=Mantieni scala di visualizzazione
+consulta=Consulta
+Contengan=Contengono
+contraste=Contrasto
+coor_geograficas=Coordinate geografiche
+copiar=Copia
+copy=Copia
+cortar=Taglia
+creation_date=Data creazione
+Crucen_con=Si incrociano con
+cuando_activo=Quando attivo
+cut=Taglia
+Dado_un_campo_de_atributos=Dato un campo di attributi
+debera_introducir_nombres_para_las_vistas_a_pegar=E' necessario inserire nuovi nomi per le viste.
+debera_introducir_nombres_para_los_mapas_a_pegar=E' necessario inserire nuovi nomi per le mappe.
+default_projection=Proiezione predefinita
+default_value=Valore predefinito
+dehacer=Annulla
+delete_field=Elimina campo
+Derecha=Destra
+Derecho=Destro
+desagrupar=Separa
+desagrupar_capas=Separa layers
+desagrupar_graficos=Separa grafici
+descending_order=Ordine decrescente
+descending_order_tooltip=Ordina il campo selezionato in ordine decrescente
+descripcion_de_configuracion_capa_de_anotaciones=<HTML>Per utilizzare valori comuni per tutti i campi del layer lasciare i valori di default. Per personalizzare l'aspetto delle etichette selezionare i campi che contengono i valori corrispondenti.</HTML>
+descripcion_de_crear_capa_de_anotaciones=<HTML>Con questo strumento \u00e8 possibile creare un layer virtuale basato su un layer esistente che permetta di realizzare un'etichettatura avanzata. Modifica la visualizzazione del layer mostrando il valore di uno dei suoi campi.</HTML>
+desde_arriba=Dall'alto\:
+desde_izquierda=Da sinistra\:
+desea_borrar_el_documento=Eliminare i domumenti selezionati?
+desea_borrar_la_capa=Eliminare i layers attivi?
+desea_continuar=Continuare?
+deshacer=Annulla
+desplaza_los_elementos_seleccionados_a_la_derecha=Sposta gli elementi selezionati a destra.
+desplaza_los_elementos_seleccionados_a_la_izquierda=Sposta gli elementi selezionati a sinistra.
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=Sposta gli elementi selezionati al centro dell'asse X.
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=Sposta gli elementi selezionati al centro dell'asse Y.
+desplaza_los_elementos_seleccionados_hacia_abajo=Sposta gli elementi selezionati in basso.
+desplaza_los_elementos_seleccionados_hacia_arriba=Sposta gli elementi selezionati in alto.
+Desplazamiento=Spostamento
+desviacion_tipica=Deviazione standard
+distance_units=Unit\u00e1 di misura
+distribuir=Distribuisci\:
+distribuir_elementos_sobre_todo_el_layout=Disponi elementi sull'intero layout
+distributes_down=Disponi dal basso
+distributes_horizontal=Disponi orizzontalmente
+distributes_left=Disponi a sinistra
+distributes_right=Disponi a destra
+distributes_to_layout_down=Disponi dalla parte inferiore del layout
+distributes_to_layout_horizontal=Disponi orizzontalmente nel layout
+distributes_to_layout_left=Distibuisci a sinistra nel layout
+distributes_to_layout_right=Disponi dalla destra del layout
+distributes_to_layout_up=Disponi dalla parte superiore del layout
+distributes_to_layout_vertical=Disponi verticalmente nel layout
+distributes_up=Disponi dall'alto
+distributes_vertical=Disponi verticalmente
+distribuye_el_espacio_entre_los_elementos_en_horizontal=Equidistanzia in orizzontale.
+distribuye_el_espacio_entre_los_elementos_en_vertical=Equidistanzia in verticale.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=Distribuisci uniformemente gli elementi selezionati dal basso verso l'alto.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=Distribuisci uniformemente gli elementi selezionati dall'alto verso il basso.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=Distribuisci uniformemente gli elementi selezionati da destra a sinistra.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=Distribuisci uniformemente gli elementi selezionati da sinistra a destra.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=Distribuisci uniformemente gli elementi selezionati in orizzontale.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=Distribuisci uniformemente gli elementi selezionati in verticale.
+divisiones_izquierda=Separazioni a sinistra
+documento=
+documentos_existentes=Documento esistente
+draw_text_only=Disegna il solo testo
+driver=Driver
+Dxffiles=DXF Files
+edicion=Modifica
+editable=Modificabile
+Editar_leyenda=Modifica legenda
+editar_vertices=Modifica vertici
+el_numero_maximo_de_intervalos_para_este_campo_es=Il numero massimo di intervalli per questo campo \u00e8
+Elegir_Color=Seleziona Colore
+Elegir_Fuente=Seleziona Font
+elemento_ya_existe=L'elemento esiste gi\u00e0
+Elementos_seleccionados_de_la_capa=Gli elementi selezionati nel presente layer
+Eliminar=Elimina
+eliminar_capa=Elimina layer
+eliminar_columna=Elimina colonna
+eliminar_extremos=Elimina gli estremi
+eliminar_fila=Elimina riga
+en_el_mapa=Nella mappa\:
+En_metros=In metri
+En_pixels=In pixels
+en_unidades=in unit\u00e0
+Encuadre=Zoom
+Encuadre_Vista=Zoom vista
+enlace_vivo=Collegamento attivo
+Enlazar_a_fichero_de_texto=Collegamento a documento di testo
+Enlazar_a_ficheros_de_imagen=Collegamento a files d'immagine
+equal_intervals=Intevalli uguali
+Error_exportando_SLD=Errore d'esportazione SLD
+Error_guardando_la_leyenda=Errore nel salvare la legenda
+Error_guardando_la_plantilla=Errore nel salvare la tavola
+escala=Scala
+Escala=Scala
+escala_desconocida=Scala sconosciuta
+escala_maxima=Scala massima
+Escala_Maxima=Scala massima
+escala_minima=Scala minima
+Escala_Minima=Scala minima
+escala_usuario=Scala specificata dall'utente
+espaciado_horizontal=Spazitura orizzontale
+espaciado_vertical=Spaziatura verticale
+espacio=Spazio\:
+estadisticas=Statistiche
+este_por_debajo_de_=Al di sotto di
+este_por_encima_de=Al di sopra di
+Esten_contenidos_en=Sono contenuti in
+Etiqueta=Etichetta
+Etiquetados=Etichettati
+etiquetas=Etichette\:
+Etiquetas_estandar=Etichette standard
+Examinar=Cerca...
+export=Esporta
+exportar=Esporta
+exportar_pdf=Esporta come pdf
+exportar_ps=Exporta come ps
+extension=Estensione
+Extent=Estensione
+extents_no_coincidentes=L'estensione della immagine selezionata non coincide con la immagine di origine.
+factor_zoom_incorrecto=Fattore di zoom errato
+fallo_capas=Errore nell'accedere al layer. I layers seguenti saranno eliminati dal progetto
+family=
+fichero=file
+Fichero=File
+fichero_existe=Il file selezionato esiste gi\u00e1 come banda del layer
+fichero_incorrecto=File non corretto
+fichero_ya_existe_seguro_desea_guardarlo=Il file esiste gi\u00e0, continuare?
+field_already_exists=Il campo esiste gi\u00e0
+field_decimal_count=Precisione decimale
+field_default_value=Valore predefinito
+field_length=Lunghezza
+field_manager=Editor dei campi
+field_name=Nome del campo
+field_type=Tipo
+filtro=Filtro
+finish=Termina
+Font=Font
+formato=Formato
+Formato_de_numero_erroneo=Formato del numero errato
+formato_incorrecto=Formato non corretto
+fuente=Font
+General=Generale
+georeferenciado=Georeferenziando
+gestion_encuadre=Gestione zoom
+grados=Gradi\:
+Grados=Gradi
+Graficos=Grafici
+grosor_linea=Spessore linea\:
+group=Raggruppa
+group_graphic_line=Raggruppa bordi grafici
+grupo=Gruppo
+guardado=Salvato
+guardar=Salva
+Guardar=Salvare
+guardar_cambios=Salvare le modifiche
+guardar_como=Salva come...
+guardar_como_plantilla=Salva come tavola
+Guardar_el_zoom_actual=Salva lo zoom attuale
+Guardar_leyenda=Salva legenda
+guardar_proyecto=Salva progetto
+guardar_tooltip=Salva progetto
+Habilitar_etiquetado=Attiva etichetta
+Hiperenlace=Collegamento
+horizontal=Orizzontale
+horizontal_space=Spazio orizzontale
+Identificar_Resultados=Identifica risultati
+Igual_que_la_impresora=Uguale alla stampante
+igual_todos_lados=Uguale per tutti i lati
+imagen=Immagine
+Implimir=
+importar=Importa
+Imprimir=Stampa
+Indexando=Indicizzando...
+Indexando_espacialmente=Indicizzazione spaziale del layer
+indexar_campos=Indicizzare campi
+Inferior=Inferiore
+info=Informazione
+informacion=Informazione
+Informacion=Informazione
+Inicializando=Inizializzando
+initial_warning=<html><b>ATTENZIONE\!</b><br>Versione in via di sviluppo. Pu\u00f2 contenere errori significativi e provocare la corruzione dei file modificati.<br><br>Si consiglia l'uso di una versione stabile di gvSIG per il lavoro quotidiano.</html>
+insert_row=Inserisci riga
+Insertar=Inserisci
+insertar_cajetin=Inserisci griglia
+insertar_circulo=Inserisci Cerchio
+insertar_columna=Inserisci colonna
+insertar_escala=Inserisci Scala
+insertar_fila=Inserisci riga
+insertar_imagen=Inserisci Immagine
+insertar_leyenda=Inserisci Legenda
+insertar_linea=Inserisci Linea
+insertar_norte=Inserire Nord
+insertar_poligono=Inserisci Poligono
+insertar_polilinea=Inserisci polilinea
+insertar_punto=Inserisci Punto
+insertar_rectangulo=Inserisci Rettangolo
+insertar_texto=Inserisci Testo
+insertar_vista=Inserisci Vista
+Intersecten_con=Intersecano con
+Intervalo=Intervallo
+Intervalos=Intervalli
+introduce_nombre=Inserisci nome
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=Inserire il nome del nuovo layer di annotazioni
+introduzca_nuevo_nombre_para_la_vista=Inserire il nuovo nome della vista
+invalid_value_for_gap=
+invert_selection=Inverti selezione
+Italic=Corsivo
+Izquierda=Sinistra
+Izquierdo=Sinistro
+join=Unisci
+jpg=JPEG files
+kilometros=Chilometri
+Kilometros=Chilometri
+leyenda=Legenda
+Leyenda=Legenda
+leyenda_campo_unido=Si sta utilizzando un campo dell'unione nella legenda (e/o etichettato). Cambia le legenda prima di togliere l'unione.
+Leyenda_Por_Defecto=Legenda standard
+linea=Linea
+linea_grafica=Bordo grafico
+lineal_directo=Lineare diretto
+link=Collegamento
+Link=Collegamento
+localizador=Localizzatore
+locked_element=Elemento bloccato
+locked_element_it_cannot_be_deleted=Elemento bloccato.\nNon pu\u00f2 essere eliminato.
+locked_element_it_cannot_be_renamed=Elemento bloccato.\nNon pu\u00f2 essere rimosso.
+m/pixel=metri/pixel
+malla_activada=Rete attivata
+manage_fields=Modifica struttura della tabella
+mantener_intervalo=Mantieni intervallo
+map_units=Unit\u00e1 di mappa
+mapa=Mappa
+Mapa=Mappa
+mapas=Mappe
+marco=Bordo
+marco_vista=Bordo vista
+margenes=Margini\:
+mas_de_100_simbolos=Pi\u00fa di 100 simboli non apportano informazioni al piano
+max_length_is=La lunghezza massima \u00e8
+maximo=Massimo
+MDIFrame.quiere_salir=Sei sicuro di voler uscire?
+MDIFrame.salir=Uscire
+media=Media
+medir_area=Misura area
+medir_distancias=Misura distanze
+metadatos=Metadati
+metros=Metri
+Metros=Metri
+Milimetros=Millimetri
+Millas=Miglia
+minimo=Minimo
+modificar=Modifica
+modification_date=Modifica dati
+mostrar_escala_numerica=Mostra scala numerica
+Mostrar_siempre=Mostra sempre
+mostrar_unidades=Mostra unit\u00e1
+move_elements=Sposta elementi
+Muestra_atributos=Mostra gli attributi dei layers selezionati
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Mostra gli elementi del layer usando un simbolo per ogni valore unico
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Mostra gli elementi del layer usando una gamma di colori in funzione del valore di un determinato campo di attributi
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Mostra tutti gli elementi di un layer usando lo stesso simbolo
+natural_intervals=Intervalli naturali
+navegacion=Navigazione
+navegacion_vista=Vista navigazione
+necesita_una_capa_activa=Necessario un layer attivo
+necesita_una_capa_vectorial_activa=Necessario un layer vettoriale attivo
+new_field=Nuovo campo
+new_field_properties=Propriet\u00e0 del nuovo campo
+next=Successivo
+ninguna_impresora_configurada=Nessuna stampante individuata
+Nivel_de_transparencia=Livello di trasparenza
+no=No
+no_activos=Non attivi
+No_de_intervalos=No intervalli
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=Impossibile terminare l'operazione
+No_mostrar=Non mostrare
+No_mostrar_la_capa_cuando_la_escala=Non mostrare il layer quando la scala
+no_se_pegaran_las_tablas=Non verr\u00e0 incollata alcuna tabella
+no_se_pegaran_las_vistas_del_conflicto=Le viste in conflitto nonsaranno incollate
+No_se_pudo_obtener_la_tabla_de_la_capa=Impossibile ottenere la tabella dal layer
+no_visibles=Non visibili
+nombre=Nome
+Nombre=Nome
+nombre_no_valido=Nome non valido
+Nombre_que_se_le_dara_al_zoom=Nome per lo zoom
+nombre_sesion=Nome sessione
+none=
+none_selected=Nessuna selezione
+normal=Normale
+north=Nord
+Nueva_tabla=Nuova tabella
+nuevo=Nuovo
+Nuevo_conjunto=Nuovo insieme
+nuevo_nombre_para_el_mapa=Scrivere il nuovo nome per il layer
+nuevo_proyecto=Nuovo progetto
+nuevo_tooltip=Crea nuovo progetto
+num_bandas=Numero delle bande
+num_columnas=Numero di colonne
+num_filas=Numero di righe
+Num_intervalos=Numero di intervalli
+numero_decimales_mostrar=Numero decimali
+numero_incorrecto=Numero non corretto
+ok=Accetta
+opacidad=Opacit\u00e1
+operacion_cancelada=Operazione cancellata
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Orientamento\:
+origen_de_datos=Origine dei dati
+Origen_de_datos=Origine dei dati
+Origen_de_Datos=Origine dei Dati\:
+owner=Proprietario
+paste=Incolla
+paste_elements=Inolla elementi
+path=Percorso
+pdf=
+pegar=Incolla
+pegar_mapas=Incolla mappe
+pegar_vistas=Incolla viste
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Permette di etichettare gli elementi della mappa con il valore di un determinato campo
+Personalizado=Personalizzato
+personalizar_margenes=Personalizza margini
+Pies=Piedi
+pila_de_comandos=Lista dei comandi
+pixeles=Pixels
+pixels=Pixels
+Plain=Normale
+plantilla=Tavola
+please_insert_new_field_name=Inserire nuovo nome del campo
+png=PNG files
+poligono=Poligono
+polilinea=Polilinea
+poner_capas_a=Poini Layers come...
+por_debajo_de=dal basso\:
+por_encima_de=dall'alto\:
+Por_favor_active_la_capa=Attivare il layer
+posicion_linea=Posiziona della linea
+precision=Precisione
+preparar_pagina=Imposta pagina
+Preparar_pagina=Imposta pagina
+presentacion=Presentazione definitiva
+previsualizacion=Anteprima
+Previsualizacion=Anteprima
+Previsualizacion_de_simbolo=Anteprima simbolo
+propiedad=Propriet\u00e0
+propiedades=Propriet\u00e1
+propiedades_cajetin=Propriet\u00e0 riquadro
+propiedades_capa=Propriet\u00e0 del layer
+propiedades_de_la_capa=Propriet\u00e0 del layer
+Propiedades_escala_grafica=Propriet\u00e1 della scala
+propiedades_grafico=Propriet\u00e1 del grafico
+propiedades_mapa=Propriet\u00e1 della mappa
+propiedades_marco_imagenes=Propriet\u00e1 del bordo dell'Immagine
+propiedades_marco_leyenda=Propriet\u00e1 del bordo della legenda
+propiedades_marco_vista=Propriet\u00e1 del bordo della vista
+propiedades_raster=Propriet\u00e1 del raster
+propiedades_sesion=Propriet\u00e1 di sessione
+propiedades_tabla=Propriet\u00e1 tabella
+Propiedades_texto=Propriet\u00e1 del testo
+propiedades_vista=Propriet\u00e1 della vista
+Proyecciones=Proiezioni
+ps=
+puerto=Porta
+Pulgadas=Pollici
+punto=Punto
+quantile_intervals=Intervalli quantili
+quiere_continuar=Sei sicuro di voler continuare?
+Quitar=Rimuovi
+Quitar_capa=Elimina layer
+quitar_enlaces=Elimina collegamenti
+Quitar_todos=Elimina tutto
+quitar_uniones=Elimina unioni
+rango_de_escalas=Classe delle scale
+Rango_de_escalas=Classe delle scale
+realce=Ottimizzazione
+realmente_desea_guardar=Si vuole salvare realmente?
+recargar=Ricarica
+recorte_colas=Ritaglio degli estremi
+recorte_vista=Ritaglio della vista
+rectangulo=Rettangolo
+recuento=Riconto
+Recuperar_leyenda=Recupera legenda
+Recuperar_y_eliminar_otros_zoom=Recupera ed elimina gli altri zoom
+refrescar=Aggiorna
+rehacer=Ripeti
+rellenar_marco_vista=Riempi il bordo della vista
+relleno=Riempi\:
+remove_elements=Rimuovi elementi
+remove_fields=Rimuovi campi
+remove_row=Rimuovi riga
+remove_rows=Rimuovi righe
+rename_field=Rinomina campo
+renombrar=Rinomina
+reproyectar_aviso=La proiezione del Layer non s' la stessa della Vista.\nAVVISO\: Puo' essere incorretto in alcune trasformazioni.\nLeggere la documentazione.
+reproyectar_pregunta=Riproiettare?
+resolucion_resultado=Qualit\u00e1 di stampa\:
+resto_valores=Resto dei valori
+restore_palette=Ripristina layout di visualizzazione
+rotation_field=Campo di rotazione
+salir=Esci
+salir_tooltip=Esci
+salvar_raster=Salva raster
+Sample=Esempio
+Se_superponen_a=Si sovrappongono a
+Sean_disjuntos_a=Sono diversi da
+Sean_iguales_a=Sono uguali a
+seleccion=Selezione
+seleccion_fuente=Seleziona carattere
+Seleccion_por_capa=Selezione per layer
+selecciona_sistema_de_referencia=Seleziona sistema di riferimento
+Seleccionar=Seleziona
+seleccionar_capas=Seleziona layers
+seleccionar_capas_raster=Seleziona layer raster
+Seleccionar_de_las_capas_activas_los_elementos_que=Selezionare dai layers attivi gli elementi che\:
+Seleccionar_del_conjunto=Seleziona dall'insieme
+Seleccionar_fichero=Seleziona file
+seleccionar_por_poligono=Seleziona con poligono
+seleccionar_por_punto=Seleziona con punto
+seleccionar_por_rectangulo=Seleziona con rettangolo
+seleccionar_todos=Seleziona tutto
+seleccione_campo_enlace=Seleziona il campo da collegare
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=<HTML>Selezionare il campo contenente il valore d'inclinazione per la rappresentazione delle eichette</HTML>
+seleccione_el_campo_color_de_la_capa_de_anotaciones=<HTML>Selezionare il campo contenente il valore di colore per la rappresentazione delle eichette</HTML>
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=<HTML>Selezionare il campo contenente il testo per la rappresentazione delle eichette</HTML>
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=<HTML>Selezionare il campo contenente il font per la rappresentazione delle eichette</HTML>
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=<HTML>Selezionare il campo contenente il valore di dimensione del testo per la rappresentazione delle eichette</HTML>
+seleccione_fecha=Seleziona data
+seleccione_tabla_a_enlazar=Seleziona la tabella da collegare
+seleccione_tabla_origen=Seleziona la tabella di origine della unione
+selection_color=Seleziona colore
+selection_up=Sposta selezione in alto
+separator=Separatore
+Servidor=Server
+Shapefile=Shapefile
+show_this_dialog_next_startup=Mostra questa finestra al prossimo avvio
+si=si
+siempre=Sempre
+simbolo=Simbolo
+Simbolo=Simbolo
+Simbolo_unico=Simbolo unico
+Simbologia=Simbologia
+simplificar_leyenda=Semplifica legenda
+simplify=Semplifica
+sin_titulo=Senza titolo
+sincronizar_color_borde_relleno=Sincronizza il colore del bordo pieno\:
+Size=Dimensiona
+sobre_la_barra=Sopra la barra
+Solo_para_capas_vectoriales=Solo per layers vettoriali
+start_edition=Inizia Editing
+statistics=Statistica
+stop_edition=Termina Editing
+Style=Stile
+Subir_capa=Layer s\u00fa
+suma=Somma
+Superior=Superiore
+symbol_selector=
+Tabla=Tabella
+Tabla_de_Atributos=Tabella degli attributi
+tablas=Tabelle
+Tablas=Tabelle
+tag=Tag
+tamano=Dimensione\:
+tamano_metros=Dimensione in metri
+tamano_pagina=Dimensione della pagina
+tamano_posicion=Dimensione e posizione
+tamanyo_borde=Dimensione del margine
+tamanyo_fuente=Dimensione del font
+tamanyo_pagina=Dimensioni della pagina
+tamPixX=Dimensione pixel X
+tamPixY=Dimensione pixel Y
+terminar=Termina
+terminar_edicion=Termina Editing
+texto=Testo
+this_table_is_not_self_editable=Tabella non modificabile
+tipo_dato=Tipo di Dato
+tipo_de_intervalo=Tipo intervallo
+tipo_de_leyenda=Tipo legenda
+tipo_fichero_proyecto=tipo di file di progetto(*.gvsproj)
+tipo_linea=Tipo di linea\:
+tipo_relleno=Tipo di riempimento\:
+tipo_simbolo=Tipo di simbolo\:
+tipos_de_documentos=Tipo di documento
+titulo=Gestore di progetto
+titulo_fframetext=Titolo del campo di testo
+to_annotation=Trasforma in layer annotazioni
+to_palette=Modifica layout visualizzazione
+tooltip_copiar_al_portapapeles=Copia nella clipboard
+tooltip_cortar_al_portapapeles=Taglia nella clipboard
+tooltip_pegar_desde_el_portapapeles=Incolla dalla clipboard
+Toquen=Toccano
+transparencia=Transparenza
+Transparencia=Transparenza
+transparencia_pixel=Trasparenza per pixel
+ungroup=Separa
+unidades=Unit\u00e1\:
+Unidades=Unita'
+untitled=Senza titolo
+url=url
+Usar_indice_espacial=Usa indice spaziale
+usar_marco=Usa margine
+usar_titulo=Usa titolo
+usuario=Utente
+utilizar_margenes_impresora=Utilizza i margini della stampante.
+vacia=Vuota
+Valor=Valore
+Valores=Valori
+Valores_unicos=Valori unici
+varianza=Varianza
+Ventana=Finestra
+ventana_proyecto=Finestra di progetto
+Ver=Mostra
+ver_error_capa=
+ver_tabla_atributos=Mostra tabella degli attributi
+ver_tags=Mostra tags
+ver_tooltip=Mostra la finestra di progetto
+vertical=Verticale
+vertical_space=Spazio verticale
+visible=Visibile
+visibles=Visibili
+Vista=Vista
+vistas=Viste
+visualizacion=Visualizza
+Visualizacion=Visualizza
+visualizar_cuadricula=Visualizza maglia
+warning=Attenzione
+xmax=X massima
+xmin=X minima
+Yardas=Yarde
+ymax=Y massima
+ymin=Y minima
+Zoom_a_la_capa=Zoom al layer
+Zoom_Acercar=Zoom\: avvicina
+Zoom_Alejar=Zoom\: allontana
+Zoom_Completo=Zoom completo
+Zoom_Completo_Vista=Zoom completo della vista
+zoom_in_factor=Fattore di Zoom-in
+Zoom_Mas=Aumenta zoom
+Zoom_Mas_Vista=Aumenta zoom Vista
+Zoom_Menos=Disminuisci zoom
+Zoom_Menos_Vista=Disminuisci zoom vista
+zoom_out_factor=Fattore di Zoom-out
+Zoom_pixel=Zoom a la risoluzione del raster
+Zoom_Previo=Zoom precedente
+Zoom_Real=Zoom 1\:1
+Zoom_Select=Zoom selezionato

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_it.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/disid-logo.jpeg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/disid-logo.jpeg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text.properties	(revision 38262)
@@ -0,0 +1,1077 @@
+#Translations for language [es]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(escala m\u00e1xima)
+(escala_minima)=(escala m\u00ednima)
+1\:=1
+_(Simbolo_unico)=(S\u00edmbolo \u00fanico)
+__proyeccion_actual=Proyecci\u00f3n actual\:
+__redimensionar_texto_escala=Redimensionar el texto a escala con la vista.
+__seleccion_de_fuente=Selecci\u00f3n de fuente
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Abajo
+abrir=Abrir
+abrir_gestor_de_orig_db=Abrir gestor de origen base de datos
+abrir_plantilla=Abrir plantilla
+abrir_proyecto=Abrir proyecto
+abrir_tooltip=Abre un proyecto existente
+Abrir_una_capa=Abrir una capa
+Accion_Predefinida=Acci\u00f3n predefinida
+aceptar=Aceptar
+Aceptar=Aceptar
+acerca_de=Acerca de...
+activar=Activar
+activar_regla=Activar regla
+activos=Activos
+add_connection=A�adir conexi�n
+add_delete_edit_fields=Puede a\u00f1adir, borrar o renombrar los campos
+add_layer=A\u00f1adir capa
+add_rows=A\u00f1adir filas
+adjust_transparency=Ajustar transparencia
+agrupacion=Agrupaci\u00f3n
+agrupar=Agrupar
+agrupar_capas=Agrupar capas
+agrupar_graficos=Agrupar gr\u00e1ficos
+agrupar_linea=Agrupar l\u00ednea gr\u00e1fica con gr\u00e1ficos
+Ajustar_transparencia=Ajustar transparencia
+ajustes_linea_grafica=Ajustes de l\u00ednea gr\u00e1fica
+Al_leer_la_leyenda=Al leer la leyenda
+alias=Alias
+align_center=Alinear centro
+align_down=Alinear bajo
+align_left=Alinear izquierda
+align_right=Alinear derecha
+align_to_layout_center=Alinear centro del layout
+align_to_layout_down=Alinear bajo del layout
+align_to_layout_left=Alinear izquierda del layout
+align_to_layout_right=Alinear derecha del layout
+align_to_layout_up=Alinear arriba del layout
+align_to_layout_vertical_center=Alinear centro del layout verticalmente
+align_up=Alinear arriba
+align_vertical_center=Alinear centro de la vertical
+alineamiento=Alineamiento\:
+alinear=Alinear
+alinear_graficos=Alinear gr\u00e1ficos
+all=Todos
+alta=Alta
+alto=Alto
+altura=Altura\:
+Altura_fija_de_texto=Altura fija de texto
+ambito=\u00c1mbito
+Anadir=A\u00f1adir
+Anadir_al_conjunto=A\u00f1adir al conjunto
+Anadir_capa=A\u00f1adir capa
+Anadir_Capa=A\u00f1adir capa
+anadir_tag=A\u00f1adir etiqueta
+Anadir_todos=A\u00f1adir todos
+ancho=Ancho
+ancho_alto=Ancho x Alto
+anchura=Anchura\:
+Aplicar=Aplicar
+Archivo=Archivo
+arriba=Arriba
+ascending_order=Orden ascendente
+ascending_order_tooltip=Ordena por el campo seleccionado en orden ascendente
+Atributo=Atributo
+automatico=Autom\u00e1tico
+Ayuda=Ayuda
+back=Anterior
+background_color=Color de fondo
+baja=Baja
+Bajar_capa=Bajar capa
+bandas=Bandas
+barra=Barra\:
+base=base
+base_datos=Base de datos
+bmp=Ficheros de tipo bmp
+Bold=Negrita
+borra_seleccion=Borra selecci\u00f3n
+borrador=Borrador
+borrar=Borrar
+box=Cajet\u00edn
+brillo=Brillo
+brillo_y_contraste=Brillo y Contraste
+browse=Examinar
+cajetin=Cajet\u00edn
+Calcular_intervalos=Calcular intervalos
+calidad=Calidad
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=Cambiar el alto de los elementos seleccionados hasta coincidir con el m\u00e1s alto.
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=Cambiar el ancho de los elementos seleccionados hasta coincidir con el m\u00e1s ancho.
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=Cambiar el tama\u00f1o de los elementos seleccionados hasta coincidir con el m\u00e1s grande.
+Cambio_Color=Cambio color
+cambio_nombre=Cambio de nombre
+campo=Campo
+Campo=Campo
+campo_altura_texto=Campo de altura de texto\:
+Campo_de_clasificacion=Campo de clasificaci\u00f3n
+Campo_de_etiquetado=Campo de etiquetado
+Campos=Campos
+cancel=Cancelar
+Cancel=Cancelar
+cancelar=Cancelar
+Cancelar=Cancelar
+Capa=Capa
+Capas=Capas
+Capas_del_localizador=Capas del localizador
+Centimetros=Cent\u00edmetros
+cerrar=Cerrar
+Cerrar=Cerrar
+change=Cambiar
+change_before=Posicionar delante
+change_behind=Posicionar detr\u00e1s
+change_height=Cambiar altura
+change_width=Cambiar anchura
+choose_connection=Elija conexi�n
+choose_color=Seleccionar color
+choose_table=Elija tabla
+circulo=C\u00edrculo
+clave=Clave
+close=Cerrar
+coincidir_tamanyo=Coincidir tama\u00f1o
+colocar_a_margenes=Colocar con referencia a margenes.
+colocar_alrededor_seleccionados=Colocar alrededor de los gr\u00e1ficos seleccionados.
+colocar_alrededor_todos=Colocar alrededor de todos los gr\u00e1ficos.
+colocar_delante=Colocar delante
+colocar_detras=Colocar detr\u00e1s
+color=Color\:
+Color_final=Color final\:
+Color_inicio=Color de inicio
+color_texto=Color del texto\:
+comentarios=Comentarios
+comenzar_edicion=Comenzar edici\u00c3\u00b3n
+compleja=Compleja
+conectar_db=Est� intentando conectar a la base de datos cuyos par�metros son
+configurar=Configurar
+configurar_localizador=Configurar localizador
+Configurar_localizador=Configurar localizador ...
+confirm_remove=�Est� seguro que quiere eliminarlo?
+confirmar_borrar=\u00bfSeguro que desea borrar el elemento?
+conflicto_de_nombres_de_mapas_al_pegar=Se est\u00e1 intentando pegar mapas cuyos nombres ya existen en el proyecto actual
+conflicto_de_nombres_de_tablas_al_pegar=Se est\u00e1 intentando pegar tablas cuyos nombres ya existen en el proyecto actual
+conflicto_de_nombres_de_vistas_al_pegar=Se est\u00e1 intentando pegar vistas cuyos nombres ya existen en el proyecto actual
+conflito_de_nombres_de_tablas_al_pegar=Conflicto de nombres de tablas al pegar
+connect=Conectar
+connected=Conectado
+connection_error=Error de conexi�n
+connection_name=Nombre de la conexi\u00f3n
+connection_parameters=Par�metros de la conexi�n
+connection_params=Par�metros de la conexi�n
+conservar_escala_visualizacion=Conservar escala de visualizaci\u00f3n
+consulta=Consulta
+Contengan=Contengan
+contraste=Contraste
+coor_geograficas=Coordenadas geogr\u00e1ficas
+copiar=Copiar
+copy=Copiar
+cortar=Cortar
+creation_date=Fecha de creaci\u00f3n
+Crucen_con=Crucen con
+cuando_activo=Cuando activo
+cut=Cortar
+Dado_un_campo_de_atributos=Dado un campo de atributos
+database_name=Nombre de BD
+datum=Datum
+debera_introducir_nombres_para_las_vistas_a_pegar=Deber\u00e1 introducir nombres nuevos para las vistas
+debera_introducir_nombres_para_los_mapas_a_pegar=Deber\u00e1 introducir nombres nuevos para los mapas
+default_projection=Proyecci\u00f3n por defecto
+default_value=Valor por defecto
+dehacer=Deshacer
+delete_field=Borrar campo
+Derecha=Derecha
+Derecho=Derecho
+desagrupar=Desagrupar
+desagrupar_capas=Desagrupar capas
+desagrupar_graficos=Desagrupar gr\u00e1ficos
+descending_order=Orden descendente
+descending_order_tooltip=Ordena por el campo seleccionado en orden descendente
+descripcion_de_configuracion_capa_de_anotaciones=<HTML>Si desea utilizar valores comunes a todos los atributos de la capa deje los valores por defecto. Si desea personalizar como se muestran la etiquetas seleccione los campos que almacenan los valores.</HTML>
+descripcion_de_crear_capa_de_anotaciones=<HTML>Con esta herramienta puede crear una capa virtual basada en una capa ya existente que le permita realizar un etiquetado avanzado. Cambia la visualizaci\u00c3\u00b3n de la capa seleccionada mostrando el valor<br> de uno de sus campos.</HTML>
+desde_arriba=Desde arriba\:
+desde_izquierda=Desde la izquierda\:
+desea_borrar_el_documento=\u00bfEst\u00e1 seguro de que desea borrar los documentos seleccionados?
+desea_borrar_la_capa=\u00bfEst\u00e1 seguro de que desea borrar las capas activas?
+desea_continuar=\u00bfDesea continuar?
+deshacer=Deshacer
+desplaza_los_elementos_seleccionados_a_la_derecha=Desplaza los elementos seleccionados a la derecha.
+desplaza_los_elementos_seleccionados_a_la_izquierda=Desplaza los elementos seleccionados a la izquierda.
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=Desplaza los elementos seleccionados al centro por el eje X.
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=Desplaza los elementos seleccionados al centro por el eje Y.
+desplaza_los_elementos_seleccionados_hacia_abajo=Desplaza los elementos seleccionados hacia abajo.
+desplaza_los_elementos_seleccionados_hacia_arriba=Desplaza los elementos seleccionados hacia arriba.
+Desplazamiento=Desplazamiento
+desviacion_tipica=Desviaci\u00f3n t\u00edpica
+disconnect=Desconectar
+distance_units=Unidades de medida
+distribuir=Distribuir\:
+distribuir_elementos_sobre_todo_el_layout=Distribuir los elementos sobre todo el Layout.
+distributes_down=Distribuye desde abajo
+distributes_horizontal=Distribuye horizontalmente
+distributes_left=Distribuye a la izquierda
+distributes_right=Distribuye a la derecha
+distributes_to_layout_down=Distribuye desde abajo del layout
+distributes_to_layout_horizontal=Distribuye layout horizontalmente
+distributes_to_layout_left=Distribuye izquierda del layout
+distributes_to_layout_right=Distribuye derecha del layout
+distributes_to_layout_up=Distribuye desde arriba del Layout
+distributes_to_layout_vertical=Distribuye layout verticalmente
+distributes_up=Distribuye desde arriba
+distributes_vertical=Distribuye verticalmente
+distribuye_el_espacio_entre_los_elementos_en_horizontal=Distribuye el espacio entre los elementos en horizontal.
+distribuye_el_espacio_entre_los_elementos_en_vertical=Distribuye el espacio entre los elementos en vertical.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=Distribuye los elementos seleccionados de forma equidistante de abajo hacia arriba.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=Distribuye los elementos seleccionados de forma equidistante de arriba hacia abajo.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=Distribuye los elementos seleccionados de forma equidistante de derecha a izquierda.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=Distribuye los elementos seleccionados de forma equidistante de izquierda a derecha.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=Distribuye los elementos seleccionados de forma equidistante y horizontal.
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=Distribuye los elementos seleccionados de forma equidistante y vertical.
+divisiones_izquierda=Divisiones a la izquierda
+documento=Documento
+documentos_existentes=Documentos existentes
+dont_find_the_file=No puedo encontrar el archivo
+do_you_want_to_locate_the_file=\u00bfDesea localizar el archivo?
+draw_text_only=Dibujar s\u00f3lo el texto
+driver=Driver
+driver_error=Error en los drivers.
+Dxffiles=Ficheros .DXF
+edicion=Edici\u00f3n
+edit_settings=Modificar
+editable=Editable
+Editar_leyenda=Editar leyenda
+editar_vertices=Editar V\u00e9rtices
+el_numero_maximo_de_intervalos_para_este_campo_es=El n\u00famero m\u00e1ximo de intervalos para este campo es
+Elegir_Color=Elegir color
+Elegir_Fuente=Elegir fuente
+elemento_ya_existe=El elemento ya existe
+Elementos_seleccionados_de_la_capa=Elementos seleccionados de la capa
+Eliminar=Eliminar
+eliminar_capa=Eliminar capa
+eliminar_columna=Eliminar columna
+eliminar_extremos=Eliminar extremos
+eliminar_fila=Eliminar fila
+en_el_mapa=En el mapa\:
+En_metros=En metros
+En_pixels=En pixels
+en_unidades=en unidades
+Encuadre=Encuadre
+Encuadre_Vista=Encuadre sobre la vista
+enlace_vivo=Enlace vivo
+Enlazar_a_fichero_de_texto=Enlazar a ficheros de texto
+Enlazar_a_ficheros_de_imagen=Enlazar a ficheros de imagen
+Enlazar_a_documento_PDF=Enlazar a documento PDF
+Enlazar_a_imagen_SVG=Enlazar a imagen SVG
+equal_intervals=Intervalos iguales
+Error_exportando_SLD=Error exportando SLD
+Error_guardando_la_leyenda=Error guardando la leyenda
+Error_guardando_la_plantilla=Error guardando la plantilla
+error_saving_table=Error guardando la tabla
+escala=Escala
+Escala=Escala
+escala_desconocida=Escala desconocida
+escala_maxima=Escala m\u00e1xima
+Escala_Maxima=Escala m\u00e1xima
+escala_minima=Escala m\u00ednima
+Escala_Minima=Escala m\u00ednima
+escala_usuario=Escala especificada por el usuario
+espaciado_horizontal=Espaciado horizontal de la malla
+espaciado_vertical=Espaciado vertical de la malla
+espacio=Espacio\:
+estadisticas=Estad\u00edsticas
+este_por_debajo_de_=Est\u00e9 por debajo de
+este_por_encima_de=Est\u00e9 por encima de
+Esten_contenidos_en=Est\u00e9n contenidos en
+Etiqueta=Etiqueta
+Etiquetados=Etiquetados
+etiquetas=Etiquetas\:
+Etiquetas_estandar=Etiquetas est\u00e1ndar
+Examinar=Examinar
+export=Exportar
+exportar=Exportar
+exportar_pdf=Exportar a pdf
+exportar_ps=Exportar a ps
+expresion_error=Error en la expresi�n
+extension=Extensi\u00f3n
+Extent=Extensi\u00f3n
+extents_no_coincidentes=Extensiones no coincidentes
+factor_zoom_incorrecto=Factor de zoom incorrecto.
+fallo_capas=Fallo accediendo a las capas. Las siguientes capas van a ser eliminadas del proyecto
+family=Familia
+fichero=Archivo
+Fichero=Archivo
+fichero_existe=Fichero existe
+fichero_incorrecto=Fichero incorrecto
+fichero_ya_existe_seguro_desea_guardarlo=El fichero ya existe, \u00bfdesea continuar?
+field_already_exists=El campo ya existe
+field_decimal_count=Precisi\u00f3n decimal
+field_default_value=Valor por defecto
+field_length=Tama\u00f1o
+field_manager=Editor de campos
+field_name=Nombre del campo
+field_type=Tipo
+filtro=Filtro
+finish=Finalizar
+Font=Fuente
+formato=Formato
+Formato_de_numero_erroneo=Formato de n\u00famero incorrecto
+formato_incorrecto=Formato incorrecto
+fuente=Fuente
+General=General
+geo_field=Campo geom�trico
+geo_field_not_available=Hubo un problema al obtener campos con geometr�as v�lidos
+geo_field_error=Error con los campos geom�tricos
+geodb_connections=Conexiones a BD espaciales
+geoloc=Geolocalizar
+georeferenciado=Georeferenciado
+gestion_encuadre=Gesti\u00f3n de Encuadres
+gestor_db=Gestor de conexiones a BD espaciales
+get_view=Capturar vista
+grados=Grados\:
+Grados=Grados
+Graficos=Gr\u00e1ficos
+grosor_linea=Grosor de l\u00ednea\:
+group=Agrupar
+group_graphic_line=Agrupar l\u00ednea gr\u00e1fica
+grupo=grupo
+guardado=Guardado en
+guardar=Guardar
+Guardar=Guardar
+guardar_cambios=\u00bfQuiere guardar los cambios?
+guardar_como=Guardar como...
+guardar_como_plantilla=Guardar como plantilla
+Guardar_el_zoom_actual=Guardar el zoom
+Guardar_leyenda=Guardar leyenda
+guardar_proyecto=Guardar proyecto
+guardar_tooltip=Guarda los cambios del proyecto
+Habilitar_etiquetado=Habilitar etiquetado
+Hiperenlace=Hiperenlace
+horizontal=Horizontal
+horizontal_space=Espacio horizontal
+host=M\u00e1quina
+id_error=Error con ID
+id_field=Campo con ID
+id_not_available=ID no disponible
+Identificar_Resultados=Identificar resultados
+Igual_que_la_impresora=Igual que la impresora
+igual_todos_lados=Desplazamiento igual por todos lados.
+imagen=Imagen
+Implimir=Imprimir
+importar=Importar
+Imprimir=Imprimir
+Indexando=Indexando...
+Indexando_espacialmente=Indexando espacialmente la capa
+indexar_campos=Indexar campos
+Inferior=Inferior
+info=Informaci\u00f3n
+informacion=Informaci\u00f3n
+Informacion=Informaci\u00f3n
+Inicializando=Inicializando
+initial_warning=<html><b>\u00a1ATENCI\u00d3N\!</b><br>Versi\u00f3n en desarrollo. Puede contener errores importantes e incluso provocar da\u00f1os en los ficheros editados.<br><br>Si desea trabajar de forma normal con gvSIG, le recomendamos que utilice la \u00faltima versi\u00f3n estable.</html>
+input_output_error=Error de entrada/salida.
+insert_row=Insertar fila
+Insertar=Insertar
+insertar_cajetin=Insertar cajet\u00edn
+insertar_circulo=Insertar c\u00edrculo
+insertar_columna=Insertar columna
+insertar_escala=Insertar escala
+insertar_fila=Insertar fila
+insertar_imagen=Insertar imagen
+insertar_leyenda=Insertar leyenda
+insertar_linea=Insertar l\u00ednea
+insertar_norte=Insertar norte
+insertar_poligono=Insertar Pol\u00edgono
+insertar_polilinea=Insertar polil\u00ednea
+insertar_punto=Insertar punto
+insertar_rectangulo=Insertar rect\u00e1ngulo
+insertar_texto=Insertar texto
+insertar_vista=Insertar vista
+Intersecten_con=Intersecten con
+Intervalo=Intervalo
+Intervalos=Intervalos
+introduce_nombre=Introduce el nuevo nombre
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=Introduzca el nombre para la nueva capa de anotaciones
+introduzca_nuevo_nombre_para_la_vista=Introduzca el nuevo nombre para la vista
+invalid_value_for_gap=Valor inv\u00c3\u00a1lido para el intervalo
+invert_selection=Invertir selecci\u00f3n
+Italic=Cursiva
+Izquierda=Izquierda
+Izquierdo=Izquierdo
+join=Unir
+jpg=Ficheros JPEG
+keep_the_order_of_values=Mantener ordenados los valores.
+kilometros=Kil\u00f3metros
+Kilometros=Kil\u00f3metros
+leyenda=Leyenda
+Leyenda=Leyenda
+leyenda_campo_unido=Se est\u00e1 utilizando un campo de la uni\u00f3n en la leyenda (y/o etiquetado). Cambie la leyenda antes de quitar la uni\u00f3n, por favor.
+Leyenda_Por_Defecto=Leyenda por defecto
+linea=L\u00ednea
+linea_grafica=L\u00ednea gr\u00e1fica
+lineal_directo=Lineal directo
+link=Enlace
+Link=Enlace
+localizador=Localizador
+Localizador=Localizador
+locked_element=Elemento bloqueado
+locked_element_it_cannot_be_deleted=Elemento bloqueado.\nNo puede ser borrado.
+locked_element_it_cannot_be_renamed=Elemento bloqueado.\nNo puede ser renombrado.
+m/pixel=metros/pixel
+malla_activada=Malla activada
+manage_fields=Modificar estructura de tabla
+mantener_intervalo=Mantener intervalo
+map_units=Unidades de mapa
+mapa=Mapa
+Mapa=Mapa
+mapas=Mapas
+marco=Marco
+marco_vista=Marco de la vista
+margenes=M\u00e1rgenes\:
+mas_de_100_simbolos=M\u00e1s 100 de s\u00edmbolos no suelen aportar informaci\u00f3n en un plano.
+max_length_is=La longitud m\u00e1xima es
+maximo=M\u00e1ximo
+MDIFrame.quiere_salir=\u00bfEst\u00e1 seguro de que quiere salir?
+MDIFrame.salir=Salir
+media=Media
+medir_area=Medir \u00e1rea
+medir_distancias=Medir distancias
+metadatos=Metadatos
+metros=Metros
+Metros=Metros
+Milimetros=Mil\u00edmetros
+Millas=Millas
+minimo=M\u00ednimo
+modificar=modificar
+modification_date=\u00daltima fecha de modificaci\u00f3n
+mostrar_escala_numerica=Mostrar escala num\u00e9rica
+Mostrar_siempre=Mostrar siempre
+mostrar_unidades=Mostrar unidades
+move_elements=Desplazar elementos
+Muestra_atributos=Muestra los atributos de las capas seleccionadas.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Muestra los elementos de la capa usando un s\u00edmbolo por cada valor \u00fanico
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Muestra los elementos de la capa usando una gama de colores en funci\u00f3n del valor de un determinado campo de atributos
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Muestra todos los elementos de una capa usando el mismo s\u00edmbolo
+natural_intervals=Intervalos naturales
+navegacion=Navegaci\u00f3n
+navegacion_vista=Navegaci\u00f3n vista
+necesita_una_capa_activa=Necesita una capa activa
+necesita_una_capa_vectorial_activa=Necesita una capa vectorial activa
+new_field=Nuevo campo
+new_field_properties=Propiedades del campo nuevo
+next=Siguiente
+ninguna_capa_seleccionada=Ninguna capa seleccionada
+ninguna_impresora_configurada=Ninguna impresora configurada
+Nivel_de_transparencia=Nivel de transparencia
+no=No
+no_activos=No activos
+No_de_intervalos=N\u00ba de intervalos
+no_es_posible_aplicar_leyenda_vacia=No es posible aplicar la leyenda vac\u00eda.
+no_hay_campo_seleccionado=No hay ning�n campo de clasificaci�n seleccionado
+No_ha_sido_posible_realizar_la_operacion=No ha sido posible realizar la operaci\u00f3n
+no_hay_campo_seleccionado=No hay ning\u00fan campo de clasificaci\u00f3n seleccionado
+No_mostrar=No mostrar la capa cuando la escala
+No_mostrar_la_capa_cuando_la_escala=No mostrar la capa cuando la escala
+no_se_pegaran_las_tablas=No se pegar\u00e1 ninguna tabla
+no_se_pegaran_las_vistas_del_conflicto=No se pegar\u00e1n las vistas con conflicto
+No_se_pudo_obtener_la_tabla_de_la_capa=No se pudo obtener la tabla de la capa
+no_visibles=No visibles
+nombre=Nombre
+Nombre=Nombre
+nombre_no_valido=Nombre no v\u00e1lido
+Nombre_que_se_le_dara_al_zoom=Nombre que se le dar\u00e1 al zoom
+nombre_sesion=Nombre de la sesi\u00f3n
+none=None
+none2=Ninguno
+none_selected=Ninguno seleccionado
+normal=Normal
+north=Norte
+not_GVL_save_question=El formato que ha seleccionado no es propio de gvSIG, se puede utilizar para compartir leyendas con otros programas.\nSi, posteriormente, desea importar de nuevo esta leyenda a gvSIG, le recomendamos que utilice el formato GVL\n o de lo contrario podr�a perder alguna de las caracter�sticas de la leyenda original.
+Nueva_tabla=Nueva tabla
+nuevo=Nuevo
+Nuevo_conjunto=Nuevo conjunto
+nuevo_nombre_para_el_mapa=Introduzca el nuevo nombre para la capa
+nuevo_proyecto=Nuevo proyecto
+nuevo_tooltip=Crea un nuevo proyecto
+num_bandas=N\u00famero de bandas
+num_columnas=N\u00famero de columnas
+num_filas=N\u00famero de filas
+Num_intervalos=N\u00famero de intervalos
+numero_decimales_mostrar=N\u00famero decimales
+numero_incorrecto=N\u00famero incorrecto
+ok=Aceptar
+opacidad=Opacidad
+operacion_cancelada=Operaci\u00f3n cancelada
+options.layout.paper_properties.landscaped=Apaisado
+options.layout.paper_properties.paper_direction=Orientaci\u00f3n del papel
+options.layout.paper_properties.portrait=Normal
+options.layout.paper_properties.title=Propiedades y tama\u00f1o del papel
+options.view.default_map_overview_back_color=Color de fondo del localizador por defecto
+options.view.default_selection_color=Color de la selecci\u00f3n por defecto
+options.view.default_view_back_color=Color de fondo de la vista por defecto
+options.view.invisible_new_layers=A\u00f1adir nuevas capas en modo invisible
+options.view.keep_scale_on_resizing=Mantener escala al redimensionar
+orientacion=Orientaci\u00f3n\:
+origen_de_datos=Origen de datos
+Origen_de_datos=Origen de datos
+Origen_de_Datos=Origen de datos\:
+owner=Propietario
+parse_expresion_error=Error al evaluar la expresi�n.
+paste=Pegar
+paste_elements=Pegar elementos
+path=Ruta
+pdf=Pdf
+pegar=Pegar
+pegar_mapas=Pegar mapas
+pegar_vistas=Pegar vistas
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Permite etiquetar los elementos del mapa con el valor de un determinado campo
+Personalizado=Personalizado
+personalizar_margenes=Personalizar m\u00e1rgenes
+Pies=Pies
+pila_de_comandos=Pila de comandos
+pixeles=p\u00edxeles
+pixels=p\u00edxeles
+Plain=Normal
+plantilla=plantilla
+please_insert_new_field_name=Por favor inserte nuevo nombre de campo.
+png=Ficheros png
+poligono=Pol\u00edgono
+polilinea=polil\u00ednea
+poner_capas_a=Poner capas a ...
+por_debajo_de=por debajo de\:
+por_encima_de=por encima de\:
+Por_favor_active_la_capa=Por favor active la capa
+port=Puerto
+posicion_linea=Posici\u00f3n de la l\u00ednea
+precision=Precisi\u00f3n
+preparar_pagina=Preparar p\u00e1gina
+Preparar_pagina=Preparar p\u00e1gina
+presentacion=Presentaci\u00f3n
+previsualizacion=Previsualizaci\u00f3n
+Previsualizacion=Previsualizaci\u00f3n
+Previsualizacion_de_simbolo=Previsualizaci\u00f3n de s\u00edmbolo
+projection=Proyecci\u00f3n
+propiedad=Propiedad
+propiedades=Propiedades
+propiedades_cajetin=Propiedades del cajet\u00edn
+propiedades_capa=Propiedades de la capa
+propiedades_de_la_capa=Propiedades de la capa
+Propiedades_escala_grafica=Propiedades de la escala
+propiedades_grafico=Propiedades del gr\u00e1fico
+propiedades_mapa=Propiedades del mapa
+propiedades_marco_imagenes=Propiedades del marco de im\u00e1genes
+propiedades_marco_leyenda=Propiedades del marco de la leyenda
+propiedades_marco_localizador=Propiedades del marco del localizador
+propiedades_marco_vista=Propiedades del marco de la vista
+propiedades_raster=Propiedades del r\u00e1ster
+propiedades_sesion=Propiedades de la sesi\u00f3n
+propiedades_tabla=Propiedades de la tabla
+Propiedades_texto=Propiedades del texto
+propiedades_vista=Propiedades de la vista
+Proyecciones=Proyecciones
+ps=Ps
+puerto=Puerto
+Pulgadas=Pulgadas
+punto=Punto
+quantile_intervals=Intervalos cuantiles
+quiere_continuar=\u00bfEst\u00e1 seguro de que quiere continuar?
+Quitar=Quitar
+Quitar_capa=Quitar capa
+quitar_enlaces=Quitar enlaces
+Quitar_todos=Quitar todos
+quitar_uniones=Quitar uniones
+rango_de_escalas=Rango de escalas
+Rango_de_escalas=Rango de escalas
+realce=Realce
+realmente_desea_guardar=\u00bfRealmente desea guardar?
+recargar=Recargar
+recorte_colas=Recorte de colas
+recorte_vista=Recorte a vista
+rectangulo=Rect\u00e1ngulo
+recuento=Recuento
+Recuperar_leyenda=Recuperar leyenda
+Recuperar_y_eliminar_otros_zoom=Recuperar y eliminar otros zooms
+reference_system=Sistema de Referencia
+refrescar=Refrescar
+rehacer=Rehacer
+rellenar_marco_vista=Rellenar marco de la vista
+relleno=Relleno\:
+remove_elements=Borrar elementos
+remove_fields=Borrar campos
+remove_row=Elimina fila
+remove_rows=Elimina filas
+rename_field=Renombrar Campo
+renombrar=Renombrar
+reproyectar_aviso=La proyecci\u00f3n de la capa no es igual que la de la vista.\nAVISO\: Puede ser inexacto con algunas transformaciones.\nPor favor, lea la documentaci\u00f3n.
+reproyectar_pregunta=\u00bfDesea reproyectar?
+resolucion_resultado=Resoluci\u00f3n del resultado\:
+resto_valores=Resto de valores
+restore_palette=Restaurar paleta
+rotation_field=Campo de rotaci\u00f3n
+salir=Salir
+salir_tooltip=Salir
+salvar_raster=Salvar a raster georreferenciado.
+Sample=Ejemplo
+schema=Esquema
+Se_superponen_a=Se superponen a
+Sean_disjuntos_a=sean disjuntos a
+Sean_iguales_a=sean iguales a
+seleccion=Selecci\u00f3n
+seleccion_fuente=Selecci\u00f3n de fuente
+Seleccion_por_capa=Selecci\u00f3n por capa
+selecciona_sistema_de_referencia=Selecciona sistema de referencia
+Seleccionar=Seleccionar
+seleccionar_capas=Seleccionar capas
+seleccionar_capas_raster=Seleccionar capas r\u00e1ster
+Seleccionar_de_las_capas_activas_los_elementos_que=Seleccionar de las capas activas los elementos que\:
+Seleccionar_del_conjunto=Seleccionar del conjunto
+Seleccionar_fichero=Seleccionar fichero
+seleccionar_por_poligono=Seleccionar por pol\u00edgono
+seleccionar_por_punto=Seleccionar por punto
+seleccionar_por_rectangulo=Seleccionar por rect\u00e1ngulo
+seleccionar_todos=Seleccionar todos
+seleccione_campo_enlace=Seleccione el campo por el que enlazar
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=<HTML>Seleccione el campo donde se almacenar\u00e1 el \u00e1ngulo con el que se mostrar\u00e1 el texto de la etiqueta</HTML>
+seleccione_el_campo_color_de_la_capa_de_anotaciones=<HTML>Selecione el campo donde se almacenar\u00e1 el color con el que se mostrar\u00e1 la etiqueta</HTML>
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=<HTML>Seleccione el campo de texto que desea que se utilice para mostrar en la nueva capa virtual.</HTML>
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=<HTML>Selecione el campo donde se almacenar\u00e1 la fuente con el que se mostrar\u00e1 de la etiqueta</HTML>
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=<HTML>Selecione el campo donde se almacenar\u00e1 el alto con el que se mostrar\u00e1 la etiqueta</HTML>
+seleccione_fecha=Seleccione una fecha...
+seleccione_tabla_a_enlazar=Seleccione la tabla a enlazar
+seleccione_tabla_origen=Seleccione la tabla origen de la join
+selection_color=Color de la selecci\u00f3n
+selection_up=Mover arriba la selecci\u00f3n
+semantic_expresion_error=Error sem�ntico en la expresi�n.
+separator=Separador
+server_url=Url del servidor
+Servidor=Servidor
+Shapefile=Shapefile
+Show_grid=Mostrar cuadr�cula
+show_this_dialog_next_startup=Mostrar este di\u00e1logo la pr\u00f3xima vez
+si=s\u00ed
+siempre=Siempre
+simbolo=S\u00edmbolo
+Simbolo=S\u00edmbolo
+Simbolo_unico=S\u00edmbolo \u00fanico
+Simbologia=Simbolog\u00eda
+simplificar_leyenda=Simplificar leyenda
+simplify=Simplificar
+sin_titulo=Sin t\u00edtulo
+sincronizar_color_borde_relleno=Sincronizar el color del borde con el del relleno\:
+Size=Tama\u00f1o
+sobre_la_barra=Sobre la barra
+Solo_para_capas_vectoriales=S\u00f3lo para capas vectoriales
+sorter=Ordenado
+start_edition=Comenzar edici\u00f3n
+statistics=Estad\u00edsticas
+sorter=Ordenado
+specify_table_settings=Especificaci�n de la capa
+sql_restriction=Restricci�n SQL
+stop_edition=Terminar edici\u00f3n
+Style=Estilo
+Subir_capa=Subir capa
+suma=Suma
+Superior=Superior
+symbol_selector=Selector de simbolog\u00eda
+Tabla=Tabla
+Tabla_de_Atributos=Tabla de atributos
+tablas=Tablas
+Tablas=Tablas
+table_fields=Columnas de la tabla
+tag=tag
+tamano=Tama\u00f1o\:
+tamano_metros=Tama\u00f1o en metros
+tamano_pagina=Tama\u00f1o de p\u00e1gina\:
+tamano_posicion=tama\u00f1o/posici\u00f3n
+tamanyo_borde=Tama\u00f1o del borde
+tamanyo_fuente=Tama\u00f1o de fuente
+tamanyo_pagina=Tama\u00f1o de p\u00e1gina
+tamPixX=Tama\u00f1o pixel X
+tamPixY=Tama\u00f1o pixel Y
+terminar=Terminar
+terminar_edicion=Terminar edici\u00f3n
+texto=Texto
+this_table_is_not_self_editable=La tabla no tiene permiso de escritura.
+tipo_dato=Tipo dato
+tipo_de_intervalo=Tipo de intervalo
+tipo_de_leyenda=Tipo de leyenda
+tipo_fichero_proyecto=Fichero de proyecto gvSIG (*.gvsproj)
+tipo_linea=Tipo de L\u00ednea\:
+tipo_relleno=Tipo de Relleno\:
+tipo_simbolo=Tipo de s\u00edmbolo\:
+tipos_de_documentos=Tipos de documentos
+titulo=Gestor de proyectos
+titulo_fframetext=T\u00edtulo del campo de texto
+to_annotation=Transformar a capa de anotaciones
+to_palette=Cambiar a paleta
+tooltip_copiar_al_portapapeles=Copiar al portapapeles
+tooltip_cortar_al_portapapeles=Cortar al cortapapeles
+tooltip_pegar_desde_el_portapapeles=Pegar desde el cortapapeles
+Toquen=toquen
+transparencia=Transparencia
+Transparencia=Transparencia
+transparencia_pixel=Transparencia por pixel
+ungroup=Desagrupar
+unidades=Unidades\:
+Unidades=Unidades\:
+untitled=Sin t\u00edtulo
+url=url
+Usar_indice_espacial=Usar \u00edndice espacial
+usar_marco=Usar marco
+usar_titulo=Usar t\u00edtulo
+user=Usuario
+usuario=Usuario
+utilizar_margenes_impresora=Utilizar m\u00e1rgenes de la impresora.
+vacia=Vac\u00eda
+Valor=Valor
+Valores=Valores
+Valores_unicos=Valores \u00fanicos
+varianza=Varianza
+Ventana=Ventana
+ventana_proyecto=Ventana de proyecto
+Ver=Ver
+ver_error_capa=Ver errores
+ver_tabla_atributos=Ver Tabla de atributos
+ver_tags=Ver
+ver_tooltip=Muestra la ventana de proyecto
+vertical=Vertical
+vertical_space=Espacio vertical
+visible=Visible
+visibles=Visibles
+Vista=Vista
+vistas=Vistas
+visualizacion=Visualizaci\u00f3n
+Visualizacion=Visualizaci\u00f3n
+visualizar_cuadricula=Visualizar malla
+warning=Aviso
+working_area=Zona de inter�s
+xmax=xmax
+xmin=xmin
+Yardas=Yardas
+ymax=ymax
+ymin=ymin
+zone=Huso
+Zoom_a_la_capa=Zoom a la capa
+Zoom_Acercar=Zoom acercar
+Zoom_Alejar=Zoom alejar
+Zoom_Completo=Zoom completo
+Zoom_Completo_Vista=Zoom completo sobre la vista
+zoom_in_factor=Factor zoom m\u00e1s
+Zoom_Mas=Zoom m\u00e1s
+Zoom_Mas_Vista=Zoom m\u00e1s sobre la vista
+Zoom_Menos=Zoom menos
+Zoom_Menos_Vista=Zoom menos sobre la vista
+zoom_out_factor=Factor zoom menos
+Zoom_pixel=Zoom a la resoluci\u00f3n del r\u00e1ster
+Zoom_Previo=Zoom previo
+Zoom_Real=Zoom 1\:1
+Zoom_Select=Zoom a lo seleccionado
+
+categories=Categor�as
+cannot_apply_to_a_non_polygon_layer=No puede aplicarse a una capa no poligonal
+looks_like_too_low_value_for_this_field_may_cause_system_to_run_slow=Parece un valor para el punto demasiado bajo, puede causar que el sistema responda muy lentamente.
+in_layer=en capa
+could_not_setup_legend=No se pudo establecer la leyenda
+labeling_field=Campo de etiquetado
+dot_size=Tama�o de punto
+dot_value=Valor del punto
+outline_color=Color del borde
+densities=Densidades
+high=Alta
+medium=Media
+low=Baja
+Defines_a_dot_density_symbol_based_on_a_field_value=Define una leyenda de densidad de puntos basada en el valor de un determinado campo.
+dot_density=Densidad de puntos
+features=Objetos
+preview=Previsualizaci�n
+quantities=Cantidades
+choose_symbol=Seleccionar s�mbolo
+legend=Leyenda
+label_text_in_the_TOC=Etiqueta que aparecer� en el TOC
+exception_cloning_legend=Excepci�n clonando leyenda.
+character_marker=Marcador de car�cter
+character_marker_symbol=S�mbolo de Marcador de car�cter
+marker_fill=Relleno con marcadores
+choose_marker=Seleccionar marcador
+outline=Borde
+grid=Malla
+Grid_settings=Propiedades malla
+random=Aleatorio
+fill_properties=Propiedades de relleno
+offset=Desplazamiento
+separation=Separaci�n
+simple_fill=Relleno simple
+simple_fill_symbol=S�mbolo de Relleno simple
+fill_color=Color de relleno
+outline_width=Ancho del borde
+trying_to_add_a_non_TypeSymbolEditor_panel=Intentando a�adir un panel que no es de tipo TypeSymbolEditor.
+two_panels_with_the_same_name=Dos paneles con el mismo nombre.
+symbol_property_editor=Editor de propiedades de s�mbolo
+properties=Propiedades
+layers=Capas
+type=Tipo
+units=Unidades
+layer=Layer
+preview_not_available=Vista previa no disponible
+point_symbols=S�mbolos de marcador
+line_symbols=S�mbolos de l�neas
+polygon_symbols=S�mbolos de pol�gono
+shape_type_not_yet_supported=Tipo de shape no soportado todav�a.
+symbol_library=Biblioteca de s�mbolos
+could_not_find_symbol_directory=No se pudo encontral el directorio de la biblioteca s�mbolos
+options=Opciones
+new=Nuevo
+reset=Reiniciar
+save=Guardar
+size=Tama�o
+angle=�ngulo
+width=Ancho
+save_error=Error guardando
+marker_fill=Relleno de marcadores
+marker_fill_symbol=S�mbolo de Relleno de marcadores
+simple_line=S�mbolo de L�nea simple
+simple_marker=Marcador simple
+x_offset=Desplazamiento en X
+y_offset=Desplazamiento en Y
+simple_marker_symbol=S�mbolo de marcador simple
+enter_description=Introduzca una descripci�n
+syntax_error=Error de sintaxis
+error=Error
+label_expression_help=
+expression=Expresi�n
+label_expression_editor=Editor de expresiones de etiqueta
+method=M�todo
+class=Clase
+classes=Clases
+text_string=Texto
+text_symbol=S�mbolo de texto
+font_color=Color de fuente
+enable_labeling=Habilitar etiquetado
+visualization=Visualizaci�n
+label_styles=Estilos de etiqueta
+placement=Colocaci�n
+edit_expression=Editar expresi�n
+SQL_query=Sentencia SQL
+remane_class=Renombrar clase
+delete_class=Eliminar clase
+add_class=A�adir clase
+label_features_in_this_class=Etiquetar entidades dentro de esta clase
+labeling=Etiquetado
+shape_type_error=Tipo de shape err�neo.
+enter_new_name=Introduzca el nuevo nombre
+placement_properties=Propiedades de colocaci�n
+point_settings=Configuraci�n de punto
+line_settings=Configuraci�n de l�nea
+polygon_settings=Configuraci�n de pol�gono
+position=Posici�n
+orientation=Orientaci�n
+parallel=Paralela
+following_line=Siguiendo la l�nea
+perpedicular=Perpendicular
+duplicate_labels=Etiquetas repetidas
+place_one_label_per_feature_part=Situar una etiqueta por cada parte de la entidad
+place_one_label_per_feature=Situar �nicamente una etiqueta por entidad
+remove_duplicate_labels=Eliminar etiquetas repetidas
+label_features_in_the_same_way=Etiquetar todas las entidades de la misma manera
+define_classes_of_features_and_label_each_differently=Definir diferentes clases de entidades y etiquetarlas de manera diferente
+label_only_when_selected=Etiquetar solamente cuando sus entidades est�n seleccionadas
+could_not_apply_legend=No se pudo aplicar la leyenda
+quantity_by_category=Cantidades por categor�a
+graduated_symbols=S�mbolos graduados
+multiple_atributes=M�ltiples atributos
+too_large_border=Borde demasiado grande
+file=Archivo
+file_not_found=Archivo no encontrado
+file_corrupt=Archivo corrupto
+unsupported_legend=Tipo de leyenda no soportado
+symbol=S�mbolo
+from=Desde
+to=Hasta
+template=Plantilla
+generating_intervals=Generando intervalos
+draw_quantities_using_symbol_size_to_show_relative_values=Representa cantidades mediante el tama�o de un s�mbolo mostrando valores relativos.
+could_not_get_shape_type=No se pudo obtener el tipo de geometr�a.
+general=General
+text_field=Texto
+text_height_field=Altura del texto
+rotation_height=Rotaci�n
+accessing_file_structure=Accediendo a la estructura del fichero
+could_not_restore_text_height_field=No se pudo recuperar el campo para la altura del texto.
+could_not_restore_rotation_field=No se pudo recuperar el campo para la rotaci�n del texto.
+could_not_restore_text_field=No se pudo recuperar el campo del texto.
+font=Fuente
+usupported_layer_type=Tipo de capa no soportado
+driver_exception=Excepci�n de driver
+legend_exception=Excepci�n de leyenda
+variation_by=Variaci�n por
+color_ramp=Rampa de color
+value_fields=Campos de valores
+color_field=Campo de colores
+symbol_field=Campo de s�mbolo graduado
+draw_quantities_for_each_category=Representa cantidades para cada categor�a.
+recovering_recordset=Recuperando recordset.
+fields=campos
+user_defined_labels=Etiquetas definidas por el usuario
+label_attributes_defined_in_table=Atributos de la etiqueta definidos en tabla
+current=Actual
+text_symbols=S�mbolos textuales
+label_expression_help=
+fixed_height=Tama�o fijo
+location=Ubicaci�n
+location_along_the_lines=Ubicaci�n a lo largo de las l�neas
+at_best=En la mejor
+at_begin=Al principio
+at_end=Al final
+label-point-priority-help=Prioridad: 0 = Bloqueado, 1 = M�s alta, 3 = M�s baja
+change_location=Cambiar ubicaci�n
+offset_labels_on_top_of_the_points=Situar etiquetas sobre los puntos.
+offset_labels_horizontally=Desplazar etiquetas horizontalmente alrededor del punto.
+always_straight=Siempre recto
+always_horizontal=Siempre horizontal
+orientation_system=Orientaci�n
+line=L�nea
+page=P�gina
+below=Abajo
+on_the_line=Sobre la l�nea
+above=Arriba
+getting_shape_type=Determinando el tipo de shape
+confirmation_dialog=Di�logo de confirmaci�n
+mask=M�scara
+style=Estilo
+halo=Halo
+fill_opacity=Opacidad del relleno
+outline_opacity=Opacidad del borde
+new_style=Nuevo estilo
+editing=Editando
+edit_style=Editar estilo
+tools=Herramientas
+add_text_area=A�adir campo de texto
+offset_label=Desplazar etiqueta
+undefined_for_StylePreviewer_use=No definido para StylePreviewer, por favor use
+instead=en su lugar
+style_library=Biblioteca de estilos
+in_the_world=en el mundo
+in_the_paper=en el papel
+line_style=Estilo de l�nea
+proportional_symbols=S�mbolos proporcionales
+height=Altura
+description=Descripci�n
+merge=Combinar
+symbol_levels=Niveles de simbolog�a
+draw_symbols_in_specified_order=Dibujar s�mbolos usando el orden especificado
+advanced_view=Vista avanzada
+default_view=Vista normal
+picture_file=Fichero imagen
+bitmap_and_svg_image_files=Im�genes SVG y de mapa de bits
+failed_accessing_file=Fallo accediendo al fichero
+picture_marker_symbol=S�mbolo de marcador de imagen
+marker_style=Estilo de marcador
+use_outline=Usar borde
+square=cuadrado
+circle=c�rculo
+diamond=diamante
+triangle=tri�ngulo
+cross=cruz
+draw_quantities_using_symbol_size_to_show_exact_values=Representa cantidades a trav�s del tama�o del s�mbolo mostrando valores exactos
+unable_to_load_legend_from_XMLEntity=Imposible cargar leyenda desde persistencia XMLEntity
+Muestra_todos_s_elementos_de_una_capa_usando_el_mismo_simbolo=Muestra todos los elementos de una capa usando el mismo s�mbolo
+prefer_top_right_all_allowed=Preferiblemente arriba a la derecha, pero permitiendo cualquier posici�n
+in_the_middle=En mitad
+fit_inside_polygon=Acoplar dentro del pol�gono
+color_scheme=Esquema de color
+unrecognized_field_name=Nombre de campo no reconocido
+yes=S�
+error_file_exists=Error, el fichero ya existe
+field=campo
+picture_fill=Relleno de imagen
+picture_fill_symbol=S�mbolo de Relleno de imagen
+scale=Escala
+could_not_open_picture_file=No se pudo abrir el fichero de imagen
+text=Texto
+formatted=Formato
+advanced=Avanzada
+simple_text_symbol=S�mbolo de texto simple
+failed_installing_symbol_editor=No se pudo instalar el editor de s�mbolo
+apply_visual_correction_to_glyph_for_precise_size_and_position=Aplicar correcci�n visual al car�cter para precisi�n en tama�o y posici�n.
+arrow_decorator=Decoraci�n de flecha
+use_decorator=Usar decoraci�n
+arrow_sharpness=Agudeza de la flecha
+number_of_positions=N�mero de posiciones
+flip=Invertir
+flip_all=Invertir todos
+flip_first=Invertir primero
+rotation=Rotaci�n
+rotate_symbol_to_follow_line_angle=Rotar a la pendiente de la l�nea
+keep_symbol_at_fixed_angle_to_page=Inclinaci�n constante respecto de la p�gina
+line_fill=Relleno l�neas
+line_fill_symbol=S�mbolo de relleno de l�neas
+select_a_color_scheme=Seleccione un esquema de color
+scale=Escala
+picture_line_symbol=S�mbolo de L�nea de imagen
+selection_picture_file=Imagen de selecci�n
+marker_line=L�nea de marcadores
+marker_line_symbol=S�mbolo de L�nea de marcadores
+warning_you_must_input_the_exact_name_this_difference_between_capital_letters_and_small_letters=<html>Atenci\u00f3n: Introducir el nombre exacto (se distingue entre may\u00fasculas y min\u00fasculas).</html>
+formato_del_campo_incorrecto=Formato del campo incorrecto
+error_file_not_find_driver=El driver no encuentra un fichero
+error_opening_the_document=Error abriendo el documento
+se_han_producido_los_siguientes_errores_durante_la_carga_de_las_capas=Se han producido los siguientes errores durante la carga de capas.=======
+error_opening_the_document=Error abriendo el documento
+change_symbol=Cambiar s�mbolo
+skipped_symbol_changed_for_layer=Omitido el cambio de s�mbolo para la capa
+failed_computing_intervals=Fallo calculando intervalos
+invalid_interval_count_value=Valor inv�lido para la cuenta de intervalos
+Apply=Aplicar
+getting_layer_shape_type=Obteniendo el tipo de shape
+gradient_fill=Relleno gradiente
+intervals=Intervalos
+percentage=Porcentaje
+gradient_color=Color gradiente
+gradient_fill_symbol=S�mbolo de relleno gradiente
+buffered=Forma del pol�gono
+lineal=Lineal
+circular=Circular
+rectangular=Rectangular
+no_desc=Sin descripci�n
+marker=Marcador
+fill=Relleno
+behavior=Comportamiento
+options.view.behavior.screen_refreshrate=Refresco de pantalla
+line_properties=Propiedades de la l�nea
+join_style=Estilo de la uni�n
+join_bevel=En escuadra
+join_miter=A inglete
+join_round=Redondeada
+end_style=Estilo del extremo
+cap_butt=Sin extremo
+cap_round=Redondeado
+cap_square=Rectangular
+fill_pattern=Patr�n de relleno
+filter_of_Table=Filtro de Tabla
+openning_project=Abriendo un proyecto
+opened_project=Proyecto abierto
+error_openning_project=Error abriendo el proyecto
+writing_project=Guardando el proyecto
+wrote_project=Proyecto guardado
+error_writing_project=Error guardando el proyecto
+couldnt_load_panels_from_extension_point_exception=No se pudieron cargar algunos paneles a partir de un punto de extensi�n:
+panel_loading_exception=Error cargando capa:
+extension_point_load_extension=Error cargando punto de extensi�n:
+unidades_area=Unidades �rea
+Millas_Nauticas=Millas N�uticas
+Acres=Acres
+HanegadasC=HanegadasC
+HanegadasV=HanegadasV
+Hectareas=Hect�reas
+Areas=�reas
+Decimetros=Dec�metros
+_Metadata=Metadatos
+Central_point=Punto central
+Final_point=Punto final
+Insert_point=Punto de inserci�n
+Intersection_point=Punto de intersecci�n
+Medium_point=Punto medio
+Nearest_point=Punto m�s cercano
+Perpendicular_point=Punto perpendicular
+Pixel_point=Ajustado a p�xel
+Quadrant_point=Ajustado a cuadrante
+Tangent_point=Punto tangente
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_zh.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_zh.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_zh.properties	(revision 38262)
@@ -0,0 +1,710 @@
+#Translations for language [en]
+#Thu Sep 28 13:19:48 CEST 2006
+(escala_maxima)=(\u6700\u5927\u6bd4\u4f8b)
+(escala_minima)=(\u6700\u5c0f\u6bd4\u4f8b)
+1\:=1
+_(Simbolo_unico)=(\u552f\u4e00\u7b26\u53f7)
+__proyeccion_actual=\u5f53\u524d\u6295\u5f71\:
+__redimensionar_texto_escala=\u5c06\u6587\u5b57\u8c03\u6574\u5230\u89c6\u56fe\u6bd4\u4f8b
+__seleccion_de_fuente=\u5b57\u7b26\u9009\u62e9
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=\u4e0b\u9762
+abrir=\u6253\u5f00
+abrir_plantilla=\u6253\u5f00\u6a21\u677f
+abrir_proyecto=\u6253\u5f00\u9879\u76ee
+abrir_tooltip=\u6253\u5f00\u9879\u76ee
+Abrir_una_capa=\u6253\u5f00\u56fe\u5c42
+Accion_Predefinida=\u9884\u5b9a\u4f5c\u7528
+aceptar=\u786e\u5b9a
+Aceptar=\u786e\u5b9a
+acerca_de=\u5173\u4e8e...
+activar=\u6fc0\u6d3b
+activar_regla=\u6fc0\u6d3b\u6807\u5c3a
+activos=\u6d3b\u52a8
+add_delete_edit_fields=\u53ef\u5c06\u5b57\u6bb5\u52a0\u5165\uff0c\u5220\u9664\u6216\u91cd\u547d\u540d
+add_layer=\u6dfb\u52a0\u56fe\u5c42
+add_rows=\u52a0\u884c
+adjust_transparency=\u900f\u660e\u8bbe\u7f6e
+agrupacion=\u5206\u7ec4
+agrupar=\u96c6\u5408
+agrupar_capas=\u96c6\u5408\u56fe\u5c42
+agrupar_graficos=\u96c6\u5408\u56fe\u7247
+agrupar_linea=\u5c06\u76f4\u7ebf\u548c\u56fe\u7247\u5408\u5e76
+Ajustar_transparencia=\u900f\u660e\u8bbe\u7f6e
+ajustes_linea_grafica=\u76f4\u7ebf\u8bbe\u7f6e
+Al_leer_la_leyenda=\u8bfb\u53d6\u56fe\u4f8b\u65f6
+alias=\u522b\u53f7
+align_center=\u5411\u4e2d\u5bf9\u9f50
+align_down=\u5411\u4e0b\u5bf9\u9f50
+align_left=\u5411\u5de6\u5bf9\u9f50
+align_right=\u5411\u53f3\u5bf9\u9f50
+align_to_layout_center=\u5411\u9875\u9762\u4e2d\u95f4\u5bf9\u9f50
+align_to_layout_down=\u5411\u9875\u9762\u4e0b\u9762\u5bf9\u9f50
+align_to_layout_left=\u5411\u9875\u9762\u5de6\u8fb9\u5bf9\u9f50
+align_to_layout_right=\u5411\u9875\u9762\u53f3\u8fb9\u5bf9\u9f50
+align_to_layout_up=\u5411\u9875\u9762\u4e0a\u9762\u5bf9\u9f50
+align_to_layout_vertical_center=\u5411\u9875\u9762\u5782\u7ebf\u4e2d\u95f4\u5bf9\u9f50
+align_up=\u5411\u4e0a\u5bf9\u9f50
+align_vertical_center=\u5411\u5782\u7ebf\u4e2d\u95f4\u5bf9\u9f50
+alineamiento=\u5bf9\u9f50\:
+alinear=\u5bf9\u9f50
+alinear_graficos=\u5bf9\u9f50\u56fe\u7247
+alta=\u9ad8
+alto=\u9ad8\u5ea6
+altura=\u9ad8\u5ea6\:
+Altura_fija_de_texto=\u6587\u5b57\u56fa\u5b9a\u9ad8\u5ea6
+ambito=\u8303\u56f4
+Anadir=\u6dfb\u52a0
+Anadir_al_conjunto=\u6dfb\u52a0\u5230\u7cfb\u5217\u4e2d
+Anadir_capa=\u6dfb\u52a0\u56fe\u5c42
+Anadir_Capa=\u6dfb\u52a0\u56fe\u5c42
+anadir_tag=\u6dfb\u52a0\u6807\u7b7e
+Anadir_todos=\u5168\u90e8\u6dfb\u52a0
+ancho=\u5bbd\u5ea6
+ancho_alto=\u5bbd X \u9ad8
+anchura=\u5bbd\u5ea6\:
+Aplicar=\u5e94\u7528
+Archivo=\u6587\u4ef6
+arriba=\u4e0a\u9762
+ascending_order=\u4e0a\u5347\u987a\u5e8f
+ascending_order_tooltip=\u6309\u5df2\u9009\u5b9a\u5b57\u6bb5\u4e0a\u5347\u987a\u5e8f\u6392\u5217
+Atributo=\u7279\u6027
+automatico=\u81ea\u52a8
+Ayuda=\u5e2e\u52a9
+back=\u540e\u9000
+background_color=\u80cc\u666f\u989c\u8272
+baja=\u4f4e
+Bajar_capa=\u5c06\u56fe\u5c42\u5411\u4e0b\u79fb\u52a8
+bandas=\u6ce2\u6bb5
+barra=\u6bd4\u4f8b\u5c3a\:
+base=\u57fa\u7840
+base_datos=\u6570\u636e\u5e93
+bmp=BMP \u6587\u4ef6
+Bold=\u7c97\u4f53
+borra_seleccion=\u5220\u9664\u9009\u4e2d
+borrador=\u8349\u7a3f
+borrar=\u5220\u9664
+box=\u6846\u5b50
+brillo=\u4eae\u5ea6
+brillo_y_contraste=\u4eae\u5ea6\u548c\u5bf9\u6bd4\u5ea6
+browse=\u6d4f\u89c8
+cajetin=\u6846\u5b50
+Calcular_intervalos=\u8ba1\u7b97\u8ddd\u79bb
+calidad=\u8d28\u91cf
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=\u628a\u5df2\u9009\u5b9a\u90e8\u5206\u7684\u9ad8\u5ea6\u66f4\u6539\u6210\u548c\u6700\u9ad8\u7684\u90a3\u90e8\u5206\u4e00\u81f4\u3002
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=\u628a\u5df2\u9009\u5b9a\u90e8\u5206\u7684\u5bbd\u5ea6\u66f4\u6539\u6210\u548c\u6700\u5bbd\u7684\u90a3\u90e8\u5206\u4e00\u81f4\u3002
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=\u628a\u5df2\u9009\u5b9a\u90e8\u5206\u7684\u5927\u5c0f\u66f4\u6539\u6210\u548c\u6700\u5927\u7684\u90a3\u90e8\u5206\u4e00\u81f4\u3002
+Cambio_Color=\u66f4\u6539\u989c\u8272
+cambio_nombre=\u91cd\u547d\u540d
+campo=\u5b57\u6bb5
+Campo=\u5b57\u6bb5
+campo_altura_texto=\u6587\u672c\u5b57\u6bb5\u7684\u9ad8\u5ea6\:
+Campo_de_clasificacion=\u5b57\u6bb5\u5206\u7ea7
+Campo_de_etiquetado=\u6807\u7b7e\u5b57\u6bb5
+Campos=\u5b57\u6bb5
+cancel=\u53d6\u6d88
+Cancel=\u53d6\u6d88
+cancelar=\u53d6\u6d88
+Cancelar=\u53d6\u6d88
+Capa=\u56fe\u5c42
+Capas=\u56fe\u5c42
+Capas_del_localizador=\u5b9a\u4f4d\u5668\u7684\u56fe\u5c42
+Centimetros=\u5398\u7c73
+cerrar=\u5173\u95ed
+Cerrar=\u5173\u95ed
+change=\u66f4\u6539
+change_before=\u5728\u5bf9\u8c61\u4e4b\u524d
+change_behind=\u5728\u5bf9\u8c61\u4e4b\u540e
+change_height=\u66f4\u6539\u9ad8\u5ea6
+change_width=\u66f4\u6539\u5bbd\u5ea6
+circulo=\u5706\u5f62
+clave=\u5bc6\u7801
+close=\u5173\u95ed
+coincidir_tamanyo=\u4f7f\u5927\u5c0f\u76f8\u914d
+colocar_a_margenes=\u653e\u5728\u4e0e\u8fb9\u8ddd\u6709\u5173\u3002
+colocar_alrededor_seleccionados=\u653e\u5728\u5df2\u9009\u5b9a\u56fe\u7247\u7684\u5468\u56f4\u3002
+colocar_alrededor_todos=\u653e\u5728\u6240\u6709\u56fe\u7247\u7684\u5468\u56f4\u3002
+colocar_delante=\u79fb\u5230\u6700\u4e0a\u9762
+colocar_detras=\u79fb\u5230\u5e95\u5c42
+color=\u989c\u8272\:
+Color_final=\u989c\u8272(\u81f3)\:
+Color_inicio=\u989c\u8272(\u4ece)\:
+color_texto=\u5b57\u7b26\u989c\u8272\:
+comentarios=\u6ce8\u91ca
+comenzar_edicion=\u5f00\u59cb\u7f16\u8f91
+compleja=\u590d\u6742
+configurar=\u8bbe\u7f6e
+configurar_localizador=\u5b9a\u4f4d\u5668\u8bbe\u7f6e
+Configurar_localizador=\u5b9a\u4f4d\u5668\u8bbe\u7f6e...
+confirmar_borrar=\u8fd9\u4e2a\u5143\u4ef6\u5c06\u88ab\u5220\u9664\uff0c\u540c\u610f\u5417?
+conflicto_de_nombres_de_mapas_al_pegar=\u60a8\u6b63\u5728\u7c98\u8d34\u5728\u5f53\u524d\u9879\u76ee\u4e0a\u5df2\u6709\u7684\u5730\u56fe\u3002
+conflicto_de_nombres_de_tablas_al_pegar=\u60a8\u6b63\u5728\u7c98\u8d34\u5728\u5f53\u524d\u9879\u76ee\u4e0a\u5df2\u6709\u7684\u8868\u683c\u3002
+conflicto_de_nombres_de_vistas_al_pegar=\u60a8\u6b63\u5728\u7c98\u8d34\u5728\u5f53\u524d\u9879\u76ee\u4e0a\u5df2\u6709\u7684\u89c6\u56fe\u3002
+conflito_de_nombres_de_tablas_al_pegar=\u5728\u7c98\u8d34\u65f6\uff0c\u8868\u683c\u547d\u540d\u53d1\u751f\u51b2\u7a81
+conservar_escala_visualizacion=\u4fdd\u6301\u89c6\u56fe\u6bd4\u4f8b
+consulta=\u67e5\u8be2
+Contengan=\u5305\u62ec
+contraste=\u5bf9\u6bd4\u5ea6
+coor_geograficas=\u5730\u7406\u5750\u6807
+copiar=\u590d\u5236
+copy=\u590d\u5236
+cortar=\u526a\u5207
+creation_date=\u521b\u5efa\u65e5\u671f
+Crucen_con=\u4e8e .. \u4ea4\u53c9
+cuando_activo=\u6fc0\u6d3b\u65f6
+cut=\u526a\u5207
+Dado_un_campo_de_atributos=\u5df2\u77e5\u7684\u7279\u6027\u5b57\u6bb5
+datum=\u8d44\u6599
+debera_introducir_nombres_para_las_vistas_a_pegar=\u60a8\u5fc5\u987b\u7ed9\u89c6\u56fe\u8f93\u5165\u65b0\u547d\u540d
+debera_introducir_nombres_para_los_mapas_a_pegar=\u60a8\u5fc5\u987b\u7ed9\u5730\u56fe\u8f93\u5165\u65b0\u547d\u540d
+default_projection=\u9ed8\u8ba4\u6295\u5f71
+default_value=\u9ed8\u8ba4\u503c
+dehacer=\u64a4\u6d88\u547d\u4ee4
+delete_field=\u5220\u9664\u5b57\u6bb5
+Derecha=\u53f3
+Derecho=\u53f3\u8fb9
+desagrupar=\u53d6\u6d88\u5206\u7ec4
+desagrupar_capas=\u5c06\u56fe\u5c42\u53d6\u6d88\u5206\u7ec4
+desagrupar_graficos=\u53d6\u6d88\u5206\u7ec4
+descending_order=\u4e0b\u964d\u987a\u5e8f
+descending_order_tooltip=\u6309\u5df2\u9009\u5b9a\u5b57\u6bb5\u4e0b\u964d\u987a\u5e8f\u6392\u5217
+descripcion_de_configuracion_capa_de_anotaciones=<HTML>\u60a8\u8981\u662f\u8ba9\u56fe\u5c42\u7684\u6240\u6709\u7279\u6027\u4f7f\u7528\u5171\u540c\u503c\u7684\u8bdd\uff0c\u5c06\u8981\u4fdd\u6301\u9ed8\u8ba4\u503c\u3002\u5982\u679c\u60a8\u8981\u5b9a\u5236\u6807\u7b7e\u8bf7\u9009\u62e9\u6709\u5173\u5b57\u6bb5\u3002</HTML>
+descripcion_de_crear_capa_de_anotaciones=<HTML>\u6b64\u5de5\u5177\u5c06\u53ef\u4ee5\u521b\u5efa\u57fa\u4e8e\u5df2\u6709\u56fe\u5c42\u7684\u65b0\u865a\u62df\u5c42\uff0c\u8fd9\u6837\u5c31\u5141\u8bb8\u60a8\u5236\u4f5c\u9ad8\u7ea7\u6807\u7b7e\u3002 \u6539\u53d8\u5df2\u9009\u5b9a\u56fe\u5c42\u89c6\u56fe\uff0c\u663e\u793a\u4e00\u4e2a\u5b57\u6bb5\u6570\u636e\u3002</HTML>
+desde_arriba=\u4ece\u4e0a\:
+desde_izquierda=\u4ece\u5de6\:
+desea_borrar_el_documento=\u786e\u5b9e\u8981\u628a\u5df2\u9009\u5b9a\u6587\u6863\u5220\u9664\u5417?
+desea_borrar_la_capa=\u786e\u5b9e\u8981\u628a\u6d3b\u52a8\u56fe\u5c42\u5220\u9664\u4e86\u5417?
+desea_continuar=\u8981\u7ee7\u7eed\u5417?
+deshacer=\u64a4\u6d88\u547d\u4ee4
+desplaza_los_elementos_seleccionados_a_la_derecha=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u79fb\u5230\u53f3\u8fb9\u3002
+desplaza_los_elementos_seleccionados_a_la_izquierda=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u79fb\u5230\u5de6\u8fb9\u3002
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u5728X\u8f74\u4e0a\u79fb\u5230\u4e2d\u95f4\u3002
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u5728Y\u8f74\u4e0a\u79fb\u5230\u4e2d\u95f4\u3002
+desplaza_los_elementos_seleccionados_hacia_abajo=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u79fb\u5230\u4e0b\u9762\u3002
+desplaza_los_elementos_seleccionados_hacia_arriba=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u79fb\u5230\u4e0a\u9762\u3002
+Desplazamiento=\u624b\u5f62\u5de5\u5177
+desviacion_tipica=\u6807\u51c6\u5dee
+distance_units=\u6d4b\u91cf\u5355\u4f4d
+distribuir=\u5206\u914d\:
+distribuir_elementos_sobre_todo_el_layout=\u5c06\u6240\u6709\u90e8\u5206\u6392\u5217\u5728\u6574\u4e2a\u9875\u9762\u3002
+distributes_down=\u6392\u5217\u5230\u4e0b\u9762
+distributes_horizontal=\u6c34\u5e73\u5730\u6392\u5217
+distributes_left=\u6392\u5217\u5230\u5de6\u8fb9
+distributes_right=\u6392\u5217\u5230\u53f3\u8fb9
+distributes_to_layout_down=\u4ece\u9875\u9762\u4e0b\u9762\u6392\u5217
+distributes_to_layout_horizontal=\u4ece\u9875\u9762\u6c34\u5e73\u5730\u6392\u5217
+distributes_to_layout_left=\u4ece\u9875\u9762\u5de6\u8fb9\u6392\u5217
+distributes_to_layout_right=\u4ece\u9875\u9762\u53f3\u8fb9\u6392\u5217
+distributes_to_layout_up=\u4ece\u9875\u9762\u4e0a\u9762\u6392\u5217
+distributes_to_layout_vertical=\u4ece\u9875\u9762\u5782\u76f4\u5730\u6392\u5217
+distributes_up=\u6392\u5217\u5230\u4e0a\u9762
+distributes_vertical=\u5782\u76f4\u5730\u6392\u5217
+distribuye_el_espacio_entre_los_elementos_en_horizontal=\u5c06\u7a7a\u95f4\u5728\u5143\u7d20\u4e4b\u95f4\u6c34\u5e73\u5730\u6392\u5217\u3002
+distribuye_el_espacio_entre_los_elementos_en_vertical=\u5c06\u7a7a\u95f4\u5728\u5143\u7d20\u4e4b\u95f4\u5782\u76f4\u5730\u6392\u5217\u3002
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u4ece\u4e0b\u5f80\u4e0a\u8ddd\u79bb\u76f8\u7b49\u5730\u6392\u5217\u3002
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u4ece\u4e0a\u5f80\u4e0b\u8ddd\u79bb\u76f8\u7b49\u5730\u6392\u5217\u3002
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u4ece\u53f3\u5f80\u5de6\u8ddd\u79bb\u76f8\u7b49\u5730\u6392\u5217\u3002
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u4ece\u5de6\u5f80\u53f3\u8ddd\u79bb\u76f8\u7b49\u5730\u6392\u5217\u3002
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u4ece\u6c34\u5e73\u7ebf\u4e0a\u8ddd\u79bb\u76f8\u7b49\u5730\u6392\u5217\u3002
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u4ece\u5782\u76f4\u7ebf\u4e0a\u8ddd\u79bb\u76f8\u7b49\u5730\u6392\u5217\u3002
+divisiones_izquierda=\u5de6\u8fb9\u7684\u95f4\u9694
+documento=\u6587\u6863
+documentos_existentes=\u6587\u6863
+draw_text_only=\u53ea\u53ef\u7f16\u5199\u6587\u5b57
+driver=\u9a71\u52a8\u7a0b\u5e8f
+Dxffiles=DXF \u6587\u4ef6
+edicion=\u7f16\u8f91
+editable=\u53ef\u7f16\u8f91\u7684
+Editar_leyenda=\u7f16\u8f91\u56fe\u4f8b
+editar_vertices=\u7f16\u8f91\u9876\u70b9
+el_numero_maximo_de_intervalos_para_este_campo_es=\u5728\u8fd9\u4e2a\u5b57\u6bb5\u91cc\u7684\u6700\u5927\u95f4\u9694\u6570\u662f
+Elegir_Color=\u9009\u62e9\u989c\u8272
+Elegir_Fuente=\u9009\u62e9\u5b57\u4f53
+elemento_ya_existe=\u5143\u4ef6\u5df2\u5b58\u5728
+Elementos_seleccionados_de_la_capa=\u56fe\u5c42\u7684\u5df2\u9009\u5b9a\u5143\u7d20
+Eliminar=\u5220\u9664
+eliminar_capa=\u5220\u9664\u56fe\u5c42
+eliminar_columna=\u5220\u9664\u5217
+eliminar_extremos=\u5220\u9664\u8fb9\u7f18
+eliminar_fila=\u5220\u9664\u884c
+en_el_mapa=\u5728\u5730\u56fe\u91cc\:
+En_metros=\u5398\u7c73
+En_pixels=\u50cf\u7d20
+en_unidades=\u5355\u4f4d
+Encuadre=\u624b\u5f62\u5de5\u5177
+Encuadre_Vista=\u624b\u5f62\u5de5\u5177
+enlace_vivo=\u6d3b\u52a8\u94fe\u63a5
+Enlazar_a_fichero_de_texto=\u8fde\u63a5\u5230\u6587\u672c\u6587\u6863
+Enlazar_a_ficheros_de_imagen=\u8fde\u63a5\u5230\u56fe\u50cf\u6587\u6863
+equal_intervals=\u8ddd\u79bb\u76f8\u7b49
+Error_exportando_SLD=\u8f93\u51fa SLD \u65f6\u51fa\u9519
+Error_guardando_la_leyenda=\u5b58\u76d8\u56fe\u4f8b\u65f6\u51fa\u9519
+Error_guardando_la_plantilla=\u5b58\u76d8\u6a21\u677f\u65f6\u51fa\u9519
+escala=\u6bd4\u4f8b
+Escala=\u6bd4\u4f8b
+escala_desconocida=\u672a\u77e5\u6bd4\u4f8b
+escala_maxima=\u6700\u5927\u6bd4\u4f8b
+Escala_Maxima=\u6700\u5927\u6bd4\u4f8b
+escala_minima=\u6700\u5c0f\u6bd4\u4f8b
+Escala_Minima=\u6700\u5c0f\u6bd4\u4f8b
+escala_usuario=\u7528\u6237\u81ea\u5b9a\u4e49\u6bd4\u4f8b
+espaciado_horizontal=\u7f51\u683c\u6c34\u5e73\u7a7a\u95f4
+espaciado_vertical=\u7f51\u683c\u5782\u76f4\u7a7a\u95f4
+espacio=\u7a7a\u95f4\:
+estadisticas=\u7edf\u8ba1
+este_por_debajo_de_=\u5728...\u4e4b\u4e0b
+este_por_encima_de=\u5728...\u4e4b\u4e0a
+Esten_contenidos_en=\u5305\u542b\u5728...\u4e4b\u4e2d
+Etiqueta=\u6807\u7b7e
+Etiquetados=\u6807\u7b7e
+etiquetas=\u6807\u7b7e\:
+Etiquetas_estandar=\u6807\u51c6\u6807\u7b7e
+Examinar=\u6d4f\u89c8
+export=\u8f93\u51fa
+exportar=\u8f93\u51fa
+exportar_pdf=\u8f93\u51fa\u6210 PDF
+exportar_ps=\u8f93\u51fa\u6210 PS
+extension=\u6269\u5c55\u540d
+Extent=\u56fe\u5c42\u6846\u67b6
+extents_no_coincidentes=\u6269\u5c55\u540d\u4e0d\u4e00\u81f4\u3002
+factor_zoom_incorrecto=\u7f29\u653e\u56e0\u5b50\u4e0d\u6b63\u786e
+fallo_capas=\u8fdb\u5165\u56fe\u5c42\u65f6\u51fa\u9519\u3002\u4e0b\u5217\u56fe\u5c42\u5c06\u88ab\u4ece\u9879\u76ee\u4e2d\u5220\u9664\u3002
+family=\u7cfb\u5217
+fichero=\u6587\u4ef6
+Fichero=\u6587\u4ef6
+fichero_existe=\u6587\u4ef6\u5df2\u5b58\u5728
+fichero_incorrecto=\u6587\u4ef6\u4e0d\u6b63\u786e
+fichero_ya_existe_seguro_desea_guardarlo=\u6587\u4ef6\u5df2\u5b58\u5728\uff0c\u60a8\u8981\u7ee7\u7eed\u5417?
+field_already_exists=\u5b57\u6bb5\u5df2\u5b58\u5728
+field_decimal_count=\u5c0f\u6570\u70b9\u4f4d\u6570
+field_default_value=\u9ed8\u8ba4\u503c
+field_length=\u957f\u5ea6
+field_manager=\u5b57\u6bb5\u7ba1\u7406\u5668
+field_name=\u5b57\u6bb5\u540d\u79f0
+field_type=\u7c7b\u578b
+filtro=\u7b5b\u9009
+finish=\u5b8c\u6210
+Font=\u5b57\u4f53
+formato=\u683c\u5f0f
+Formato_de_numero_erroneo=\u6570\u5b57\u683c\u5f0f\u65e0\u6548
+formato_incorrecto=\u683c\u5f0f\u4e0d\u6b63\u786e
+fuente=\u5b57\u4f53
+General=\u57fa\u672c\u8bbe\u7f6e
+georeferenciado=\u5730\u7406\u53c2\u8003
+gestion_encuadre=\u653e\u5927\u7ba1\u7406\u5668
+grados=\u89d2\u5ea6\:
+Grados=\u89d2\u5ea6
+Graficos=\u56fe\u7247
+grosor_linea=\u76f4\u7ebf\u5bbd\u5ea6\:
+group=\u96c6\u5408
+group_graphic_line=\u96c6\u5408\u76f4\u7ebf
+grupo=\u7ec4
+guardado=\u5b58\u76d8\u5728
+guardar=\u5b58\u76d8
+Guardar=\u5b58\u76d8
+guardar_cambios=\u8981\u4fdd\u5b58\u8fd9\u4e9b\u4fee\u6539\u5417?
+guardar_como=\u53e6\u5b58\u4e3a...
+guardar_como_plantilla=\u53e6\u5b58\u4e3a\u6a21\u677f
+Guardar_el_zoom_actual=\u7f29\u653e\u5b58\u76d8
+Guardar_leyenda=\u4fdd\u5b58\u56fe\u4f8b
+guardar_proyecto=\u9879\u76ee\u5b58\u76d8
+guardar_tooltip=\u9879\u76ee\u5b58\u76d8
+Habilitar_etiquetado=\u663e\u793a\u6807\u7b7e
+Hiperenlace=\u8d85\u7ea7\u94fe\u63a5
+horizontal=\u6c34\u5e73\u7684
+horizontal_space=\u6c34\u5e73\u7684\u7a7a\u95f4
+Identificar_Resultados=\u786e\u8ba4\u7ed3\u679c
+Igual_que_la_impresora=\u8ddf\u6253\u5370\u673a\u4e00\u81f4
+igual_todos_lados=\u5411\u6bcf\u8fb9\u4e00\u81f4\u5730\u79fb\u52a8\u3002
+imagen=\u56fe\u7247
+Implimir=\u6253\u5370
+importar=\u8f93\u5165
+Imprimir=\u6253\u5370
+Indexando=\u7d22\u5f15...
+Indexando_espacialmente=\u56fe\u5c42\u7a7a\u95f4\u7d22\u5f15
+indexar_campos=\u5b57\u6bb5\u7d22\u5f15
+Inferior=\u4e0b
+info=\u4fe1\u606f
+informacion=\u4fe1\u606f
+Informacion=\u4fe1\u606f
+Inicializando=\u542f\u52a8\u4e2d
+initial_warning=<html><b>\u6ce8\u610f\!</b><br>\u5f00\u53d1\u7248\u3002\u53ef\u80fd\u542b\u6709\u91cd\u8981\u9519\u8bef\uff0c\u5e76\u4e14\u6709\u53ef\u80fd\u628a\u5df2\u7f16\u8f91\u597d\u7684\u6587\u4ef6\u4f24\u5bb3\u3002<br><br>\u5411\u60a8\u4eec\u63a8\u8350\u6700\u65b0\u7a33\u5b9a\u7248\u672c\u3002</html>
+insert_row=\u63d2\u5165\u884c
+Insertar=\u63d2\u5165
+insertar_cajetin=\u63d2\u5165\u7f51\u683c
+insertar_circulo=\u63d2\u5165\u5706\u5f62
+insertar_columna=\u63d2\u5165\u5217
+insertar_escala=\u63d2\u5165\u6bd4\u4f8b
+insertar_fila=\u63d2\u5165\u884c
+insertar_imagen=\u63d2\u5165\u56fe\u7247
+insertar_leyenda=\u63d2\u5165\u56fe\u4f8b
+insertar_linea=\u63d2\u5165\u76f4\u7ebf
+insertar_norte=\u63d2\u5165\u5317\u65b9
+insertar_poligono=\u63d2\u5165\u591a\u8fb9\u5f62
+insertar_polilinea=\u63d2\u5165\u6298\u7ebf
+insertar_punto=\u63d2\u5165\u6807\u70b9
+insertar_rectangulo=\u63d2\u5165\u77e9\u5f62
+insertar_texto=\u63d2\u5165\u6587\u5b57
+insertar_vista=\u63d2\u5165\u89c6\u56fe
+Intersecten_con=\u4e8e...\u4ea4\u53c9
+Intervalo=\u95f4\u9694
+Intervalos=\u95f4\u9694
+introduce_nombre=\u8bf7\u8f93\u5165\u65b0\u547d\u540d
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=\u8bf7\u7ed9\u65b0\u5efa\u6ce8\u89e3\u5c42\u8f93\u5165\u65b0\u540d\u79f0
+introduzca_nuevo_nombre_para_la_vista=\u8bf7\u7ed9\u65b0\u5efa\u89c6\u56fe\u8f93\u5165\u65b0\u540d\u79f0
+invalid_value_for_gap=\u95f4\u9694\u503c\u65e0\u6548
+invert_selection=\u53cd\u5411\u9009\u62e9
+Italic=\u659c\u4f53
+Izquierda=\u5de6
+Izquierdo=\u5de6\u8fb9
+join=\u8054\u63a5
+jpg=JPEG \u6587\u4ef6
+kilometros=\u516c\u91cc
+Kilometros=\u516c\u91cc
+leyenda=\u56fe\u4f8b
+Leyenda=\u56fe\u4f8b
+leyenda_campo_unido=\u60a8\u5728\u56fe\u4f8b\uff08\u548c/\u6216 \u6807\u7b7e\uff09\u4e0a\u4f7f\u7528\u4e00\u4e2a\u96c6\u5408\u7684\u5b57\u6bb5\u3002\u8bf7\u5728\u53d6\u6d88\u96c6\u5408\u4e4b\u524d\u66f4\u6539\u56fe\u4f8b\u3002
+Leyenda_Por_Defecto=\u9ed8\u8ba4\u56fe\u4f8b
+linea=\u76f4\u7ebf
+linea_grafica=\u76f4\u7ebf
+lineal_directo=\u76f4\u63a5\u7ebf\u65b9\u6cd5
+link=\u94fe\u63a5
+Link=\u94fe\u63a5
+localizador=\u5b9a\u4f4d\u5668
+locked_element=\u5143\u7d20\u88ab\u9501\u5b9a
+locked_element_it_cannot_be_deleted=\u5143\u7d20\u88ab\u9501\u5b9a\u3002\n\u65e0\u6cd5\u5220\u9664\u5b83\u3002
+locked_element_it_cannot_be_renamed=\u5143\u7d20\u88ab\u9501\u5b9a\u3002\n\u65e0\u6cd5\u91cd\u547d\u540d\u3002
+m/pixel=\u7c73/\u50cf\u7d20
+malla_activada=\u6d3b\u52a8\u7f51\u683c
+manage_fields=\u66f4\u6539\u8868\u683c\u7684\u7ed3\u6784
+mantener_intervalo=\u4fdd\u6301\u5dee\u8ddd
+map_units=\u5730\u56fe\u5355\u4f4d
+mapa=\u5730\u56fe
+Mapa=\u5730\u56fe
+mapas=\u5730\u56fe
+marco=\u6846\u67b6
+marco_vista=\u89c6\u56fe\u6846\u67b6
+margenes=\u8fb9\u8ddd\:
+mas_de_100_simbolos=\u6709100\u591a\u4e2a\u7b26\u53f7\uff0c\u4e00\u822c\u5728\u5e73\u9762\u4e0a\u4e0d\u4f1a\u63d0\u4f9b\u4fe1\u606f\u3002
+max_length_is=\u6700\u5927\u957f\u5ea6\u662f
+maximo=\u6700\u5927\u503c
+MDIFrame.quiere_salir=\u60a8\u786e\u5b9e\u8981\u9000\u51fa gvSIG \u5417?
+MDIFrame.salir=\u9000\u51fa
+media=\u5e73\u5747\u503c
+medir_area=\u9762\u79ef\u6d4b\u91cf
+medir_distancias=\u8ddd\u79bb\u6d4b\u91cf
+metadatos=\u5143\u6570\u636e
+metros=\u7c73
+Metros=\u7c73
+Milimetros=\u6beb\u7c73
+Millas=\u82f1\u91cc
+minimo=\u6700\u5c0f\u503c
+modificar=\u66f4\u6539
+modification_date=\u66f4\u6539\u65e5\u671f
+mostrar_escala_numerica=\u663e\u793a\u6570\u5b57\u6bd4\u4f8b
+Mostrar_siempre=\u7f6e\u9876
+mostrar_unidades=\u663e\u793a\u5355\u4f4d
+move_elements=\u90e8\u5206\u79fb\u52a8
+Muestra_atributos=\u663e\u793a\u5df2\u9009\u56fe\u5c42\u7684\u7279\u6027\u3002
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=\u4f7f\u7528\u6bcf\u4e2a\u5355\u503c\u56fe\u7684\u7b26\u53f7\u663e\u793a\u56fe\u5c42\u5143\u7d20
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=\u4f7f\u7528\u591a\u79cd\u989c\u8272\u5e76\u6839\u636e\u67d0\u4e00\u4e2a\u5b57\u6bb5\u7279\u6027\u663e\u793a\u56fe\u5c42\u5143\u7d20
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=\u4f7f\u7528\u552f\u4e00\u7b26\u53f7\u663e\u793a\u56fe\u5c42\u6240\u6709\u5143\u7d20
+natural_intervals=\u81ea\u7136\u5212\u5206 (Natural Break)
+navegacion=\u6d4f\u89c8
+navegacion_vista=\u5728\u89c6\u56fe\u4e0a\u6d4f\u89c8
+necesita_una_capa_activa=\u9700\u8981\u4e00\u5c42\u6d3b\u52a8\u56fe\u5c42
+necesita_una_capa_vectorial_activa=\u9700\u8981\u4e00\u5c42\u6d3b\u52a8 Vectorial \u56fe\u5c42
+new_field=\u65b0\u5efa\u5b57\u6bb5
+new_field_properties=\u65b0\u5efa\u5b57\u6bb5\u5c5e\u6027
+next=\u7ee7\u7eed
+ninguna_impresora_configurada=\u6ca1\u6709\u627e\u5230\u6253\u5370\u673a
+Nivel_de_transparencia=\u900f\u660e\u5ea6
+no=\u5426
+no_activos=\u672a\u6fc0\u6d3b
+No_de_intervalos=\u95f4\u9694\u6570
+no_es_posible_aplicar_leyenda_vacia=\u65e0\u6cd5\u5e94\u7528\u7a7a\u56fe\u4f8b\u3002
+No_ha_sido_posible_realizar_la_operacion=\u64cd\u4f5c\u65e0\u6cd5\u8fd0\u884c\u3002
+No_mostrar=\u4e0d\u663e\u793a\u56fe\u5c42\u5f53\u56fe\u4f8b
+No_mostrar_la_capa_cuando_la_escala=\u4e0d\u663e\u793a\u56fe\u5c42\u5f53\u56fe\u4f8b
+no_se_pegaran_las_tablas=\u5c06\u4e0d\u4f1a\u7c98\u8d34\u4efb\u4f55\u8868\u683c
+no_se_pegaran_las_vistas_del_conflicto=\u4e0d\u4f1a\u7c98\u8d34\u6709\u51b2\u7a81\u89c6\u56fe
+No_se_pudo_obtener_la_tabla_de_la_capa=\u65e0\u6cd5\u4ece\u56fe\u5c42\u4e2d\u63d0\u53d6\u8868\u683c
+no_visibles=\u83ab\u663e\u793a
+nombre=\u6587\u4ef6\u540d
+Nombre=\u6587\u4ef6\u540d
+nombre_no_valido=\u6587\u4ef6\u540d\u65e0\u6548
+Nombre_que_se_le_dara_al_zoom=\u7f29\u653e\u540d
+nombre_sesion=\u540d\u79f0
+none=None
+none_selected=\u672a\u9009\u5b9a
+normal=Normal
+north=\u5317\u65b9
+Nueva_tabla=\u65b0\u5efa\u8868\u683c
+nuevo=\u65b0\u5efa
+Nuevo_conjunto=\u65b0\u5efa\u7cfb\u5217
+nuevo_nombre_para_el_mapa=\u7ed9\u56fe\u5c42\u8f93\u5165\u65b0\u540d\u79f0
+nuevo_proyecto=\u65b0\u5efa\u9879\u76ee
+nuevo_tooltip=\u521b\u5efa\u65b0\u9879\u76ee
+num_bandas=\u6ce2\u6bb5\u6570
+num_columnas=\u5217\u6570
+num_filas=\u884c\u6570
+Num_intervalos=\u95f4\u9694\u6570
+numero_decimales_mostrar=\u5c0f\u6570\u70b9\u4f4d\u6570
+numero_incorrecto=\u6570\u636e\u4e0d\u6b63\u786e
+ok=\u786e\u5b9a
+opacidad=\u4e0d\u900f\u660e\u5ea6
+operacion_cancelada=\u53d6\u6d88\u4efb\u52a1
+options.layout.paper_properties.landscaped=\u6a2a\u5411
+options.layout.paper_properties.paper_direction=\u5bf9\u9f50
+options.layout.paper_properties.portrait=\u7eb5\u5411
+options.layout.paper_properties.title=\u5c5e\u6027
+options.view.default_map_overview_back_color=\u9ed8\u8ba4\u5b9a\u4f4d\u5668\u80cc\u666f
+options.view.default_selection_color=\u9ed8\u8ba4\u9009\u62e9\u989c\u8272
+options.view.default_view_back_color=\u9ed8\u8ba4\u89c6\u56fe\u80cc\u666f
+options.view.invisible_new_layers=\u9690\u5f62\u6a21\u5f0f\u6dfb\u52a0\u56fe\u5c42
+options.view.keep_scale_on_resizing=\u4fdd\u6301\u6bd4\u4f8b
+orientacion=\u65b9\u5411\:
+origen_de_datos=\u6570\u636e\u6765\u6e90
+Origen_de_datos=\u6570\u636e\u6765\u6e90
+Origen_de_Datos=\u6570\u636e\u6765\u6e90\:
+owner=\u6240\u6709\u8005
+paste=\u7c98\u8d34
+paste_elements=\u7c98\u8d34\u5143\u7d20
+path=\u8def\u5f84
+pdf=PDF
+pegar=\u7c98\u8d34
+pegar_mapas=\u7c98\u8d34\u5730\u56fe
+pegar_vistas=\u7c98\u8d34\u89c6\u56fe
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=\u5141\u8bb8\u5229\u7528\u67d0\u5b57\u6bb5\u7684\u6570\u503c\uff0c\u7ed9\u5730\u56fe\u5143\u7d20\u5b89\u7f6e\u6807\u7b7e\u3002
+Personalizado=\u81ea\u5b9a\u4e49
+personalizar_margenes=\u81ea\u5b9a\u4e49\u8fb9\u8ddd
+Pies=\u82f1\u5c3a
+pila_de_comandos=\u547d\u4ee4\u8868
+pixeles=\u50cf\u7d20
+pixels=\u50cf\u7d20
+Plain=\u6b63\u5e38
+plantilla=\u6a21\u677f
+please_insert_new_field_name=\u8bf7\u7ed9\u5b57\u6bb5\u8f93\u5165\u65b0\u540d\u79f0
+png=PNG \u6587\u4ef6
+poligono=\u591a\u8fb9\u5f62
+polilinea=\u6298\u7ebf
+poner_capas_a=\u7ed9...\u6dfb\u52a0\u56fe\u5c42
+por_debajo_de=\u5728...\u4e0b\u9762\:
+por_encima_de=\u5728...\u4e0a\u9762\:
+Por_favor_active_la_capa=\u8bf7\u6fc0\u6d3b\u56fe\u5c42
+posicion_linea=\u76f4\u7ebf\u65b9\u4f4d
+precision=\u7cbe\u786e\u5ea6
+preparar_pagina=\u9875\u9762\u8bbe\u7f6e
+Preparar_pagina=\u9875\u9762\u8bbe\u7f6e
+presentacion=\u6f14\u793a
+previsualizacion=\u9884\u89c8
+Previsualizacion=\u9884\u89c8
+Previsualizacion_de_simbolo=\u7b26\u53f7\u9884\u89c8
+projection=\u6295\u5f71
+propiedad=\u5c5e\u6027
+propiedades=\u5c5e\u6027
+propiedades_cajetin=\u65b9\u6846\u5c5e\u6027
+propiedades_capa=\u56fe\u5c42\u5c5e\u6027
+propiedades_de_la_capa=\u56fe\u5c42\u5c5e\u6027
+Propiedades_escala_grafica=\u6bd4\u4f8b\u5c3a\u5c5e\u6027
+propiedades_grafico=\u56fe\u7247\u5c5e\u6027
+propiedades_mapa=\u5730\u56fe\u5c5e\u6027
+propiedades_marco_imagenes=\u56fe\u7247\u6846\u67b6\u5c5e\u6027
+propiedades_marco_leyenda=\u56fe\u4f8b\u6846\u67b6\u5c5e\u6027
+propiedades_marco_vista=\u89c6\u56fe\u6846\u67b6\u5c5e\u6027
+propiedades_raster=Raster \u5c5e\u6027
+propiedades_sesion=\u5c5e\u6027
+propiedades_tabla=\u8868\u683c\u5c5e\u6027
+Propiedades_texto=\u6587\u5b57\u5c5e\u6027
+propiedades_vista=\u89c6\u56fe\u5c5e\u6027
+Proyecciones=\u6295\u5f71
+ps=PS
+puerto=\u94fe\u63a5\u53e3
+Pulgadas=\u82f1\u5bf8
+punto=\u6807\u70b9
+quantile_intervals=\u5206\u4f4d\u6570\uff08Quantile\uff09
+quiere_continuar=\u60a8\u8981\u7ee7\u7eed\u5417?
+Quitar=\u5220\u9664
+Quitar_capa=\u5220\u9664\u56fe\u5c42
+quitar_enlaces=\u5220\u9664\u94fe\u63a5
+Quitar_todos=\u5168\u90e8\u5220\u9664
+quitar_uniones=\u5220\u9664\u96c6\u5408
+rango_de_escalas=\u6bd4\u4f8b\u503c\u57df
+Rango_de_escalas=\u6bd4\u4f8b\u503c\u57df
+realce=\u589e\u5f3a
+realmente_desea_guardar=\u786e\u5b9a\u8981\u5b58\u76d8\u5417?
+recargar=\u91cd\u8f7d
+recorte_colas=\u526a\u5207\u5c3e\u90e8
+recorte_vista=\u526a\u5207\u6574\u4e2a\u89c6\u56fe
+rectangulo=\u77e9\u5f62
+recuento=\u91cd\u6570
+Recuperar_leyenda=\u8f7d\u5165\u56fe\u4f8b
+Recuperar_y_eliminar_otros_zoom=\u6062\u590d\u548c\u5220\u9664\u5176\u5b83\u7f29\u653e
+reference_system=\u53c2\u8003\u7cfb\u7edf
+refrescar=\u5237\u65b0
+rehacer=\u6062\u590d
+rellenar_marco_vista=\u5145\u586b\u89c6\u56fe\u6846\u67b6
+relleno=\u5145\u586b\:
+remove_elements=\u5220\u9664\u90e8\u5206
+remove_fields=\u5220\u9664\u5b57\u6bb5
+remove_row=\u5220\u9664\u884c
+remove_rows=\u5220\u9664\u884c
+rename_field=\u5b57\u6bb5\u91cd\u65b0\u547d\u540d
+renombrar=\u91cd\u547d\u540d
+reproyectar_aviso=\u56fe\u5c42\u6295\u5f71\u8ddf\u89c6\u56fe\u6295\u5f71\u4e0d\u4e00\u81f4\u3002\n\u6ce8\u610f\: \u5c06\u4f1a\u4e0d\u7cbe\u786e\u5730\u8fd0\u884c\u4e00\u4e9b\u8f6c\u6362\u3002\n\u8bf7\u9605\u8bfb\u8bf4\u660e\u3002
+reproyectar_pregunta=\u60a8\u8981\u91cd\u65b0\u6295\u5f71\u5417?
+resolucion_resultado=\u51b3\u8bae\u7ed3\u679c\:
+resto_valores=\u5176\u5b83\u6570\u636e
+restore_palette=\u56de\u590dpalette
+rotation_field=\u65cb\u8f6c\u5b57\u6bb5
+salir=\u9000\u51fa
+salir_tooltip=\u9000\u51fa gvSIG
+salvar_raster=\u53e6\u5b58\u4e3a Raster
+Sample=\u793a\u4f8b
+Se_superponen_a=\u5728...\u4e0a\u9762
+Sean_disjuntos_a=\u4e0e... \u6563\u5f00
+Sean_iguales_a=\u4e0e...\u4e00\u81f4
+seleccion=\u9009\u62e9
+seleccion_fuente=\u5b57\u4f53\u9009\u62e9
+Seleccion_por_capa=\u6839\u636e\u56fe\u5c42\u9009\u62e9
+selecciona_sistema_de_referencia=\u9009\u62e9\u53c2\u8003\u7cfb\u7edf
+Seleccionar=\u9009\u62e9
+seleccionar_capas=\u9009\u62e9\u56fe\u5c42
+seleccionar_capas_raster=\u9009\u62e9 Raster \u56fe\u5c42
+Seleccionar_de_las_capas_activas_los_elementos_que=\u4ece\u6d3b\u52a8\u56fe\u5c42\u4e2d\u5df2\u9009\u5b9a\u5143\u7d20\:
+Seleccionar_del_conjunto=\u4ece\u7cfb\u5217\u4e2d\u9009\u62e9
+Seleccionar_fichero=\u6587\u4ef6\u9009\u62e9
+seleccionar_por_poligono=\u591a\u8fb9\u5f62\u9009\u62e9
+seleccionar_por_punto=\u6807\u70b9\u9009\u62e9
+seleccionar_por_rectangulo=\u77e9\u5f62\u9009\u62e9
+seleccionar_todos=\u9009\u62e9\u5168\u90e8
+seleccione_campo_enlace=\u9009\u62e9\u94fe\u63a5\u5b57\u6bb5
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=<HTML>\u9009\u62e9\u4fdd\u5b58\u6807\u7b7e\u6b63\u6587\u89d2\u5ea6\u7684\u5b57\u6bb5\u3002</HTML>
+seleccione_el_campo_color_de_la_capa_de_anotaciones=<HTML>\u9009\u62e9\u4fdd\u5b58\u6807\u7b7e\u989c\u8272\u7684\u5b57\u6bb5\u3002</HTML>
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=<HTML>\u9009\u62e9\u5728\u65b0\u5efa\u865a\u62df\u5c42\u4e0a\u663e\u793a\u7684\u6b63\u6587\u5b57\u6bb5\u3002</HTML>
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=<HTML>\u9009\u62e9\u4fdd\u5b58\u6807\u7b7e\u5b57\u7b26\u7684\u5b57\u6bb5\u3002</HTML>
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=<HTML>\u9009\u62e9\u4fdd\u5b58\u6807\u7b7e\u9ad8\u5ea6\u7684\u5b57\u6bb5\u3002</HTML>
+seleccione_fecha=\u9009\u62e9\u65e5\u671f...
+seleccione_tabla_a_enlazar=\u9009\u62e9\u94fe\u63a5\u8868\u683c
+seleccione_tabla_origen=\u9009\u62e9\u8054\u63a5\u7684\u6765\u6e90\u8868\u683c
+selection_color=\u9009\u62e9\u989c\u8272
+selection_up=\u5c06\u5df2\u9009\u5b9a\u90e8\u5206\u79fb\u5230\u6700\u4e0a\u9762
+separator=\u5206\u9694\u7b26
+Servidor=\u670d\u52a1\u5668
+Shapefile=Shapefile
+show_this_dialog_next_startup=\u5c06\u6b64\u63d0\u793a\u5728\u4e0b\u6b21\u542f\u52a8\u65f6\u663e\u793a
+si=\u662f
+siempre=\u59cb\u7ec8
+simbolo=\u7b26\u53f7
+Simbolo=\u7b26\u53f7
+Simbolo_unico=\u552f\u4e00\u7b26\u53f7
+Simbologia=\u6807\u7b7e
+simplificar_leyenda=\u7b80\u5316\u56fe\u4f8b
+simplify=\u7b80\u5316
+sin_titulo=\u672a\u547d\u540d
+sincronizar_color_borde_relleno=\u5c06\u8fb9\u6846\u989c\u8272\u4e0e\u5145\u586b\u989c\u8272\u6539\u53d8\u6210\u4e00\u81f4\:
+Size=\u5927\u5c0f
+sobre_la_barra=\u5728\u6bd4\u4f8b\u5c3a\u4e0a
+Solo_para_capas_vectoriales=\u53ea\u53ef\u7528\u4e8e Vectorial \u56fe\u5c42
+start_edition=\u5f00\u59cb\u7f16\u8f91
+statistics=\u7edf\u8ba1
+stop_edition=\u7ed3\u675f\u7f16\u8f91
+Style=\u98ce\u683c
+Subir_capa=\u5c06\u56fe\u5c42\u5f80\u4e0a\u79fb
+suma=\u603b\u8ba1
+Superior=\u4e0a
+symbol_selector=\u7b26\u53f7\u9009\u62e9\u5668
+Tabla=\u8868\u683c
+Tabla_de_Atributos=\u7279\u6027\u8868
+tablas=\u8868\u683c
+Tablas=\u8868\u683c
+tag=\u6807\u7b7e
+tamano=\u5927\u5c0f\:
+tamano_metros=\u5927\u5c0f\uff08\u7c73\uff09
+tamano_pagina=\u9875\u9762\u5927\u5c0f
+tamano_posicion=\u5927\u5c0f/\u4f4d\u7f6e
+tamanyo_borde=\u8fb9\u6846\u5927\u5c0f
+tamanyo_fuente=\u5b57\u4f53\u5927\u5c0f
+tamanyo_pagina=\u9875\u9762\u5927\u5c0f
+tamPixX=X\u8f74\u50cf\u7d20\u5927\u5c0f
+tamPixY=Y\u8f74\u50cf\u7d20\u5927\u5c0f
+terminar=\u5b8c\u6210
+terminar_edicion=\u5b8c\u6210\u7f16\u8f91
+texto=\u6b63\u6587
+this_table_is_not_self_editable=\u8868\u683c\u65e0\u6cd5\u7f16\u8f91
+tipo_dato=\u6570\u636e\u7c7b\u578b
+tipo_de_intervalo=\u95f4\u9694\u7c7b\u578b
+tipo_de_leyenda=\u56fe\u4f8b\u7c7b\u578b
+tipo_fichero_proyecto=gvSIG \u9879\u76ee\u6587\u4ef6(*.gvsproj)
+tipo_linea=\u76f4\u7ebf\u7c7b\u578b\:
+tipo_relleno=\u5145\u586b\u7c7b\u578b\:
+tipo_simbolo=\u7b26\u53f7\u7c7b\u578b\:
+tipos_de_documentos=\u6587\u6863\u7c7b\u578b
+titulo=\u9879\u76ee\u7ba1\u7406\u5668
+titulo_fframetext=\u6b63\u6587\u5b57\u6bb5\u6807\u9898
+to_annotation=\u6539\u53d8\u4e3a\u6ce8\u89e3\u5c42
+to_palette=\u6539\u53d8\u4e3a palette
+tooltip_copiar_al_portapapeles=\u590d\u5236\u5230\u526a\u8d34\u677f\u4e0a
+tooltip_cortar_al_portapapeles=\u526a\u5207\u5230\u526a\u8d34\u677f\u4e0a
+tooltip_pegar_desde_el_portapapeles=\u4ece\u526a\u8d34\u677f\u91cc\u7c98\u8d34
+Toquen=\u4e0e...\u63a5\u89e6
+transparencia=\u900f\u660e\u5ea6
+Transparencia=\u900f\u660e\u5ea6
+transparencia_pixel=\u6bcf\u4e00\u50cf\u7d20\u7684\u900f\u660e\u5ea6
+ungroup=\u53d6\u6d88\u5206\u7ec4
+unidades=\u5355\u4f4d\:
+Unidades=\u5355\u4f4d\: 
+untitled=\u672a\u547d\u540d
+url=\u94fe\u63a5
+Usar_indice_espacial=\u4f7f\u7528\u7a7a\u95f4\u7d22\u5f15
+usar_marco=\u4f7f\u7528\u6846\u67b6
+usar_titulo=\u4f7f\u7528\u6807\u9898
+usuario=\u7528\u6237
+utilizar_margenes_impresora=\u4f7f\u7528\u6253\u5370\u8fb9\u8ddd
+vacia=\u7a7a\u7684
+Valor=\u6570\u636e
+Valores=\u6570\u636e
+Valores_unicos=\u5355\u503c\u56fe
+varianza=\u65b9\u5dee
+Ventana=\u7a97\u53e3
+ventana_proyecto=\u9879\u76ee\u7a97\u53e3
+Ver=\u663e\u793a
+ver_error_capa=\u663e\u793a\u9519\u8bef
+ver_tabla_atributos=\u67e5\u770b\u7279\u6027\u8868
+ver_tags=\u663e\u793a
+ver_tooltip=\u663e\u793a\u9879\u76ee\u7a97\u53e3
+vertical=\u5782\u76f4\u7684
+vertical_space=\u5782\u76f4\u7a7a\u95f4
+visible=\u660e\u663e\u7684
+visibles=\u660e\u663e\u7684
+Vista=\u89c6\u56fe
+vistas=\u89c6\u56fe
+visualizacion=\u89c6\u56fe\u4e2d
+Visualizacion=\u89c6\u56fe\u4e2d
+visualizar_cuadricula=\u663e\u793a\u7f51\u683c
+warning=\u8b66\u544a
+xmax=X\u8f74\u6700\u5927\u503c
+xmin=X\u8f74\u6700\u5c0f\u503c
+Yardas=\u7801
+ymax=Y\u8f74\u6700\u5927\u503c
+ymin=Y\u8f74\u6700\u5c0f\u503c
+zone=\u533a\u57df
+Zoom_a_la_capa=\u56fe\u5c42\u653e\u5927
+Zoom_Acercar=\u653e\u5927
+Zoom_Alejar=\u7f29\u5c0f
+Zoom_Completo=\u5168\u90e8\u7f29\u653e
+Zoom_Completo_Vista=\u5168\u90e8\u7f29\u653e
+zoom_in_factor=\u653e\u5927\u56e0\u5b50
+Zoom_Mas=\u653e\u5927
+Zoom_Mas_Vista=\u89c6\u56fe\u6846\u67b6\u653e\u5927
+Zoom_Menos=\u7f29\u5c0f
+Zoom_Menos_Vista=\u89c6\u56fe\u6846\u67b6\u7f29\u5c0f
+zoom_out_factor=\u7f29\u5c0f\u56e0\u5b50
+Zoom_pixel=Raster \u56fe\u5f62\u6700\u4f73\u7f29\u653e
+Zoom_Previo=\u4e0a\u4e00\u4e2a\u7f29\u653e
+Zoom_Real=1\:1 \u7f29\u653e
+Zoom_Select=\u7f29\u653e\u5df2\u9009\u5b9a\u90e8\u5206

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_zh.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_ca.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_ca.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_ca.properties	(revision 38262)
@@ -0,0 +1,717 @@
+#Translations for language [ca]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(escala m\u00e0xima)
+(escala_minima)=(escala m\u00ednima)
+1\:=
+_(Simbolo_unico)=(S\u00edmbol \u00fanic)
+__proyeccion_actual=Projecci\u00f3 actual\:
+__redimensionar_texto_escala=Redimensione el text a escala amb la vista
+__seleccion_de_fuente=Selecci\u00f3 de font
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Avall
+abrir=Obrir
+abrir_plantilla=Obrir plantilla
+abrir_proyecto=Obrir projecte
+abrir_tooltip=Obri un projecte existent
+Abrir_una_capa=Obrir una capa
+Accion_Predefinida=Acci\u00f3 predefinida
+aceptar=Acceptar
+Aceptar=Acceptar
+acerca_de=Sobre...
+activar=Activar
+activar_regla=Activar regla
+activos=Actius
+add_delete_edit_fields=
+add_layer=Afegir capa
+add_rows=
+adjust_transparency=Ajustar transpar\u00e8ncia
+agrupacion=
+agrupar=Agrupar
+agrupar_capas=Agrupar capes
+agrupar_graficos=Agrupar gr\u00e0fics
+agrupar_linea=Agrupar l\u00ednia gr\u00e0fica amb gr\u00e0fics
+Ajustar_transparencia=Ajustar transpar\u00e8ncia
+ajustes_linea_grafica=Ajustos de l\u00ednia gr\u00e0fica
+Al_leer_la_leyenda=En llegir la llegenda
+alias=\u00c0lies
+align_center=
+align_down=
+align_left=
+align_right=
+align_to_layout_center=
+align_to_layout_down=
+align_to_layout_left=
+align_to_layout_right=
+align_to_layout_up=
+align_to_layout_vertical_center=
+align_up=
+align_vertical_center=
+alineamiento=Alineament\:
+alinear=Alinear
+alinear_graficos=Alinear gr\u00e0fics
+alta=Alta
+alto=Alt
+altura=Altura\:
+Altura_fija_de_texto=Altura fixa de text
+ambito=\u00c0mbit
+Anadir=Afegir
+Anadir_al_conjunto=Afegir al conjunt
+Anadir_capa=Afegir capa
+Anadir_Capa=Afegir capa
+anadir_tag=
+Anadir_todos=Afegir tots
+ancho=Ample
+ancho_alto=Amplada al\u00e7ada
+anchura=Ampl\u00e0ria\:
+Aplicar=Aplicar
+Archivo=Fitxer
+arriba=Amunt
+ascending_order=Orde ascendent
+ascending_order_tooltip=S'ordena pel camp seleccionat en orde ascendent
+Atributo=Atribut
+automatico=Autom\u00e0tic
+Ayuda=Ajuda
+back=Anterior
+background_color=Color de fons
+baja=Baixa
+Bajar_capa=Baixar capa
+bandas=Bandes
+barra=Barra
+base=base
+base_datos=Base de dades
+bmp=Fitxers de tipus bmp
+Bold=
+borra_seleccion=Esborrar selecci\u00f3
+borrador=Esborrany
+borrar=Esborrar
+box=
+brillo=Brillantor
+brillo_y_contraste=Brillantor i contrast
+browse=Examinar
+cajetin=
+Calcular_intervalos=Calcular intervals
+calidad=Qualitat
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=
+Cambio_Color=Canvi color
+cambio_nombre=Canvi de nom
+campo=Camp
+Campo=Camp
+campo_altura_texto=Camp d'altura de text\:
+Campo_de_clasificacion=Camp de classificaci\u00f3
+Campo_de_etiquetado=Camp d'etiquetat
+Campos=Camps
+cancel=Cancel\u00b7lar
+Cancel=Cancel\u00b7lar
+cancelar=Cancel\u00b7lar
+Cancelar=Cancel\u00b7lar
+Capa=Capa
+Capas=Capes
+Capas_del_localizador=Capes del localitzador
+Centimetros=Cent\u00edmetres
+cerrar=Tancar
+Cerrar=Tancar
+change=
+change_before=
+change_behind=
+change_height=
+change_width=Cambiar ampl\u00e0ria
+circulo=Cercle
+clave=Clau
+close=Tancar
+coincidir_tamanyo=
+colocar_a_margenes=Col\u00b7locar amb refer\u00e8ncia a m\u00e0rgens.
+colocar_alrededor_seleccionados=Col\u00b7locar al voltant dels gr\u00e0fics seleccionats.
+colocar_alrededor_todos=Col\u00b7locar al voltant de tots els gr\u00e0fics.
+colocar_delante=Col\u00b7locar davant
+colocar_detras=Col\u00b7locar darrere
+color=Color\:
+Color_final=Color final\:
+Color_inicio=Color d'inici
+color_texto=Color del text\:
+comentarios=Comentaris
+comenzar_edicion=
+compleja=
+configurar=Configurar
+configurar_localizador=Configurar localitzador
+Configurar_localizador=Configurar localitzador ...
+confirmar_borrar=Est\u00e0 segur que desitja esborrar l'element?
+conflicto_de_nombres_de_mapas_al_pegar=
+conflicto_de_nombres_de_tablas_al_pegar=
+conflicto_de_nombres_de_vistas_al_pegar=
+conflito_de_nombres_de_tablas_al_pegar=
+conservar_escala_visualizacion=Conservar escala de visualitzaci\u00f3
+consulta=Consulta
+Contengan=Ontinguen
+contraste=Contrast
+coor_geograficas=Coordenades geogr\u00e0fiques
+copiar=Copiar
+copy=Copiar
+cortar=Retallar
+creation_date=Data de creaci\u00f3
+Crucen_con=Encreuen amb
+cuando_activo=Si est\u00e0 Actiu
+cut=Retallar
+Dado_un_campo_de_atributos=Donat un camp d'atributs
+debera_introducir_nombres_para_las_vistas_a_pegar=
+debera_introducir_nombres_para_los_mapas_a_pegar=
+default_projection=
+default_value=
+dehacer=Desfer
+delete_field=Esborrar el camp
+Derecha=Dreta
+Derecho=Dret
+desagrupar=Desagrupar
+desagrupar_capas=
+desagrupar_graficos=Desagrupar gr\u00e0fics
+descending_order=Orde descendent
+descending_order_tooltip=S'ordena pel camp seleccionat en orde descendent
+descripcion_de_configuracion_capa_de_anotaciones=
+descripcion_de_crear_capa_de_anotaciones=
+desde_arriba=Des de Dalt\:
+desde_izquierda=Des de l'esquerra\:
+desea_borrar_el_documento=
+desea_borrar_la_capa=
+desea_continuar=
+deshacer=Desfer
+desplaza_los_elementos_seleccionados_a_la_derecha=
+desplaza_los_elementos_seleccionados_a_la_izquierda=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=
+desplaza_los_elementos_seleccionados_hacia_abajo=
+desplaza_los_elementos_seleccionados_hacia_arriba=
+Desplazamiento=Despla\u00e7ament
+desviacion_tipica=Desviaci\u00f3 t\u00edpica
+distance_units=Unitats de mesura
+distribuir=Distribuir\:
+distribuir_elementos_sobre_todo_el_layout=
+distributes_down=
+distributes_horizontal=
+distributes_left=
+distributes_right=
+distributes_to_layout_down=
+distributes_to_layout_horizontal=
+distributes_to_layout_left=
+distributes_to_layout_right=
+distributes_to_layout_up=
+distributes_to_layout_vertical=
+distributes_up=
+distributes_vertical=
+distribuye_el_espacio_entre_los_elementos_en_horizontal=
+distribuye_el_espacio_entre_los_elementos_en_vertical=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=
+divisiones_izquierda=Divisions a l'esquerra
+documento=
+documentos_existentes=Documents existents
+draw_text_only=
+driver=Driver
+Dxffiles=Fitxers .DXF
+edicion=Edici\u00f3
+editable=
+Editar_leyenda=Editar legenda
+editar_vertices=Editar v\u00e8rtex
+el_numero_maximo_de_intervalos_para_este_campo_es=El nombre m\u00e0xim d'intervals per a este camps \u00e9s
+Elegir_Color=Elegir color
+Elegir_Fuente=Elegir font
+elemento_ya_existe=
+Elementos_seleccionados_de_la_capa=elements seleccionats de la capa
+Eliminar=Eliminar
+eliminar_capa=Eliminar capa
+eliminar_columna=
+eliminar_extremos=Eliminar extrems
+eliminar_fila=
+en_el_mapa=En el mapa\:
+En_metros=En metres
+En_pixels=En pixels
+en_unidades=
+Encuadre=Enquadre
+Encuadre_Vista=Enquadre sobre la vista
+enlace_vivo=Enlla\u00e7 viu
+Enlazar_a_fichero_de_texto=Enlla\u00e7ar a fitxer de text
+Enlazar_a_ficheros_de_imagen=Enlla\u00e7ar a fitxers d'imatge
+equal_intervals=Intervals iguals
+Error_exportando_SLD=
+Error_guardando_la_leyenda=Error guardant la llegenda
+Error_guardando_la_plantilla=
+escala=Escala
+Escala=Escala
+escala_desconocida=
+escala_maxima=Escala m\u00e0xima
+Escala_Maxima=Escala m\u00e0xima
+escala_minima=Escala m\u00ednima
+Escala_Minima=Escala m\u00ednima
+escala_usuario=Escala especificada per l'usuari
+espaciado_horizontal=Espaiat horitzontal de la malla
+espaciado_vertical=Espaiat vertical de la malla
+espacio=Espai\:
+estadisticas=Estad\u00edstiques
+este_por_debajo_de_=Que estiga por davall de
+este_por_encima_de=Que estiga per damunt de
+Esten_contenidos_en=Estiguen continguts en
+Etiqueta=Etiqueta
+Etiquetados=Etiquetats
+etiquetas=Etiquetes
+Etiquetas_estandar=Etiquetes est\u00e0ndard
+Examinar=Examinar
+export=Exportar
+exportar=Exportar
+exportar_pdf=Exportar a pdf
+exportar_ps=Exportar a ps
+extension=Extensi\u00f3
+Extent=Extensi\u00f3
+extents_no_coincidentes=Extensions no coincidents
+factor_zoom_incorrecto=
+fallo_capas=Fallada en l'acc\u00e9s a les capes. Les capes seg\u00fcents seran eliminades del projecte.
+family=
+fichero=
+Fichero=Fitxer
+fichero_existe=Hi ha fitxer
+fichero_incorrecto=Fitxer incorrecte
+fichero_ya_existe_seguro_desea_guardarlo=
+field_already_exists=
+field_decimal_count=
+field_default_value=
+field_length=
+field_manager=
+field_name=
+field_type=
+filtro=Filtre
+finish=Finalitzar
+Font=Font
+formato=Format
+Formato_de_numero_erroneo=
+formato_incorrecto=Format incorrecte
+fuente=Font
+General=General
+georeferenciado=
+gestion_encuadre=Gesti\u00f3 d'Enquadres
+grados=Graus\:
+Grados=Graus
+Graficos=Gr\u00e0fics
+grosor_linea=Gruix de l\u00ednia\:
+group=Agrupar
+group_graphic_line=
+grupo=
+guardado=Guardat en
+guardar=Guardar
+Guardar=Guardar
+guardar_cambios=Vol guardar els canvis?
+guardar_como=Guardar com a...
+guardar_como_plantilla=Guardar com a plantilla
+Guardar_el_zoom_actual=Guardar el zoom
+Guardar_leyenda=Guardar llegenda
+guardar_proyecto=Guardar projecte
+guardar_tooltip=Guarda els canvis del projecte
+Habilitar_etiquetado=Habilitar etiquetat
+Hiperenlace=Hiperenlla\u00e7
+horizontal=Horitzontal
+horizontal_space=
+Identificar_Resultados=Identificar resultats
+Igual_que_la_impresora=Igual que la impressora
+igual_todos_lados=Despla\u00e7ament igual per tots els costats.
+imagen=Imatge
+Implimir=
+importar=Importar
+Imprimir=Imprimir
+Indexando=S'est\u00e0 indexant...
+Indexando_espacialmente=S'est\u00e0 indexant espacialment la capa
+indexar_campos=
+Inferior=Inferior
+info=Informaci\u00f3
+informacion=Informaci\u00f3
+Informacion=Informaci\u00f3
+Inicializando=Inicialitzant
+initial_warning=
+insert_row=Inserix fila
+Insertar=Inserir
+insertar_cajetin=Inserir caixet\u00ed
+insertar_circulo=Insertar cercle
+insertar_columna=
+insertar_escala=Insertar escala
+insertar_fila=
+insertar_imagen=Insertar imatge
+insertar_leyenda=Insertar llegenda
+insertar_linea=Insertar l\u00ednia
+insertar_norte=Insertar nord
+insertar_poligono=Insertar pol\u00edgon
+insertar_polilinea=Inserir polil\u00ednia
+insertar_punto=Insertar punt
+insertar_rectangulo=Insertar rectangle
+insertar_texto=Insertar text
+insertar_vista=Insertar vista
+Intersecten_con=Intersecten amb
+Intervalo=Interval
+Intervalos=Intervals
+introduce_nombre=Introdu\u00efx el nou nom
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=
+introduzca_nuevo_nombre_para_la_vista=
+invalid_value_for_gap=
+invert_selection=
+Italic=
+Izquierda=Esquerra
+Izquierdo=Esquerre
+join=Unir
+jpg=Fitxers JPEG
+kilometros=Kil\u00f2metres
+Kilometros=Kil\u00f2metres
+leyenda=Llegenda
+Leyenda=Llegenda
+leyenda_campo_unido=S'est\u00e0 utilitzant un camp de la uni\u00f3 en la llegenda (i/o etiquetatge). Canvie la llegenda abans de llevar la uni\u00f3, per favor.
+Leyenda_Por_Defecto=Llegenda per defecte
+linea=L\u00ednia
+linea_grafica=L\u00ednia gr\u00e0fica
+lineal_directo=Lineal directe
+link=Enlla\u00e7
+Link=Enlla\u00e7
+localizador=localitzador
+locked_element=
+locked_element_it_cannot_be_deleted=
+locked_element_it_cannot_be_renamed=
+m/pixel=metros/pixel
+malla_activada=Malla activada
+manage_fields=
+mantener_intervalo=Mantindre interval
+map_units=Unitats de mapa
+mapa=Mapa
+Mapa=Mapa
+mapas=Mapes
+marco=Marc
+marco_vista=Marc de la vista
+margenes=M\u00e0rgens\:
+mas_de_100_simbolos=M\u00e9s de 100 s\u00edmbols no solen aportar informaci\u00f3 en un pla
+max_length_is=
+maximo=M\u00e0xim
+MDIFrame.quiere_salir=Est\u00e0 segur que vol eixir?
+MDIFrame.salir=Eixir
+media=Media
+medir_area=Mesurar \u00e1rea
+medir_distancias=Mesurar dist\u00e0ncies
+metadatos=Metadatos
+metros=Metres
+Metros=Metres
+Milimetros=Mil\u00b7l\u00edmetres
+Millas=Milles
+minimo=M\u00ednim
+modificar=
+modification_date=\u00daltima data de modificaci\u00f3
+mostrar_escala_numerica=
+Mostrar_siempre=Mostrar sempre
+mostrar_unidades=Mostrar unitats
+move_elements=
+Muestra_atributos=Mostra els atributs de les capes seleccionades.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Mostra els elements de la capa usant un s\u00edmbol per cada valor \u00fanic
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Mostra els elements de la capa usant una gamma de colors en funci\u00f3 del valor d'un determinat camp d'atributs
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Mostra tots els elements d'una capa usant el mateix s\u00edmbol
+natural_intervals=Intervals naturals
+navegacion=Navegaci\u00f3
+navegacion_vista=Navegaci\u00f3 vista
+necesita_una_capa_activa=Necessita una capa activa
+necesita_una_capa_vectorial_activa=Necessita una capa vectorial activa
+new_field=Nou camp
+new_field_properties=
+next=Seg\u00fcent
+ninguna_impresora_configurada=Cap impressora configurada
+Nivel_de_transparencia=Nivell de transpar\u00e8ncia
+no=No
+no_activos=No actius
+No_de_intervalos=Nr. d'intervals
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=
+No_mostrar=No mostrar la capa quan l'escala
+No_mostrar_la_capa_cuando_la_escala=No mostrar la capa quan l'escala
+no_se_pegaran_las_tablas=
+no_se_pegaran_las_vistas_del_conflicto=
+No_se_pudo_obtener_la_tabla_de_la_capa=No s'ha pogut obtindre la taula de la capa
+no_visibles=No visibles
+nombre=Nom
+Nombre=Nom
+nombre_no_valido=
+Nombre_que_se_le_dara_al_zoom=Nom que se li donar\u00e0 al zoom
+nombre_sesion=Nom de la sessi\u00f3
+none=
+none_selected=Cap seleccionat
+normal=Normal
+north=Nord
+Nueva_tabla=Nova taula
+nuevo=Nou
+Nuevo_conjunto=Nou conjunt
+nuevo_nombre_para_el_mapa=
+nuevo_proyecto=Nou projecte
+nuevo_tooltip=Crea un nou projecte
+num_bandas=Nombre de bandes
+num_columnas=Nombre de columnes
+num_filas=Nombre de files
+Num_intervalos=
+numero_decimales_mostrar=
+numero_incorrecto=N\u00famero incorrecte
+ok=D'acord
+opacidad=Opacitat
+operacion_cancelada=
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Orientaci\u00f3\:
+origen_de_datos=Origen de dades
+Origen_de_datos=Origen de dades
+Origen_de_Datos=Origen de les dades\:
+owner=Propietari
+paste=Apegar
+paste_elements=
+path=Ruta
+pdf=
+pegar=
+pegar_mapas=
+pegar_vistas=
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Permet etiquetar els elements del mapa amb el valor d'un determinat camp
+Personalizado=Personalitzat
+personalizar_margenes=
+Pies=Peus
+pila_de_comandos=Pila de comandaments
+pixeles=p\u00edxels
+pixels=pixels
+Plain=Normal
+plantilla=plantilla
+please_insert_new_field_name=
+png=Fitxers png
+poligono=Pol\u00edgon
+polilinea=polil\u00ednia
+poner_capas_a=Posar capes a
+por_debajo_de=per davall de\:
+por_encima_de=per damunt de\:
+Por_favor_active_la_capa=Per favor active la capa
+posicion_linea=Posici\u00f3 de la l\u00ednia
+precision=
+preparar_pagina=Preparar p\u00e0gina
+Preparar_pagina=Preparar p\u00e0gina
+presentacion=Presentaci\u00f3
+previsualizacion=Previsualitzaci\u00f3
+Previsualizacion=Previsualitzaci\u00f3
+Previsualizacion_de_simbolo=Previsualitzaci\u00f3 de s\u00edmbol
+propiedad=
+propiedades=Propietats
+propiedades_cajetin=Propietats del caixet\u00ed
+propiedades_capa=Propietats de la capa
+propiedades_de_la_capa=Propietats de la capa
+Propiedades_escala_grafica=Propietats de l'escala
+propiedades_grafico=Propietats gr\u00e0fic
+propiedades_mapa=Propietats del mapa
+propiedades_marco_imagenes=Propietats del marc d'im\u00e0tgens
+propiedades_marco_leyenda=Propietats del marc de la llegenda
+propiedades_marco_vista=Propietats del marc de la vista
+propiedades_raster=Propietats del raster
+propiedades_sesion=Propietats de la sessi\u00f3
+propiedades_tabla=Propietats de la taula
+Propiedades_texto=Propietats del text
+propiedades_vista=Propietats de la vista
+Proyecciones=
+ps=
+puerto=
+Pulgadas=Polsades
+punto=Punt
+quantile_intervals=Intervals quantils
+quiere_continuar=Est\u00e0 segur que vol continuar?
+Quitar=Llevar
+Quitar_capa=Llevar capa
+quitar_enlaces=LLevar enlla\u00e7os
+Quitar_todos=Llevar tots
+quitar_uniones=Llevar unions
+rango_de_escalas=Rang d'escales
+Rango_de_escalas=Rang d'escales
+realce=Relleu
+realmente_desea_guardar=Realment desitja guardar?
+recargar=
+recorte_colas=Retall de cues
+recorte_vista=Retall a vista
+rectangulo=Rectangle
+recuento=Recompte
+Recuperar_leyenda=Recuperar llegenda
+Recuperar_y_eliminar_otros_zoom=Recuperar i eliminar altres zooms
+refrescar=Refrescar
+rehacer=Refer
+rellenar_marco_vista=Reomplir marc de la vista
+relleno=Farciment\:
+remove_elements=
+remove_fields=
+remove_row=Eliminia fila
+remove_rows=
+rename_field=
+renombrar=Renomenar
+reproyectar_aviso=La projecci\u00f3 de la capa no \u00e9s igual que la de la vista.\nAVISO\: pot ser inexacte amb algunes transformaciones.\nPer favor, llija la documentaci\u00f3
+reproyectar_pregunta=Vol reprojectar-la?
+resolucion_resultado=Resoluci\u00f3 del resultat\:
+resto_valores=Resta de valors
+restore_palette=
+rotation_field=
+salir=Eixir
+salir_tooltip=Eixir
+salvar_raster=Salvar el raster georeferenciat
+Sample=Exemple
+Se_superponen_a=Se superposen a
+Sean_disjuntos_a=siguen disjunts a
+Sean_iguales_a=siguen iguals a
+seleccion=Selecci\u00f3
+seleccion_fuente=Selecci\u00f3 de font
+Seleccion_por_capa=Selecci\u00f3 per capa
+selecciona_sistema_de_referencia=Seleccioneu sistema de refer\u00e8ncia
+Seleccionar=Seleccionar
+seleccionar_capas=Seleccionar capes
+seleccionar_capas_raster=Seleccionar capes r\u00e0ster
+Seleccionar_de_las_capas_activas_los_elementos_que=Seleccione de les capes actives els elements que\:
+Seleccionar_del_conjunto=Seleccionar del conjunt
+Seleccionar_fichero=Seleccionar fitxer
+seleccionar_por_poligono=
+seleccionar_por_punto=Seleccionar per punt
+seleccionar_por_rectangulo=Seleccionar per rectangle
+seleccionar_todos=Seleccionar tots
+seleccione_campo_enlace=Seleccioneu el camp a trav\u00e9s del qual cal enlla\u00e7ar
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=
+seleccione_el_campo_color_de_la_capa_de_anotaciones=
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=
+seleccione_fecha=Seleccione una data...
+seleccione_tabla_a_enlazar=Seleccioneu la taula que cal enlla\u00e7ar
+seleccione_tabla_origen=Seleccioneu la taula d'origen de la uni\u00f3
+selection_color=Color de la selecci\u00f3
+selection_up=
+separator=
+Servidor=Servidor
+Shapefile=Shapefile
+show_this_dialog_next_startup=
+si=
+siempre=Sempre
+simbolo=S\u00edmbol
+Simbolo=S\u00edmbol
+Simbolo_unico=S\u00edmbol \u00fanic
+Simbologia=Simbologia
+simplificar_leyenda=
+simplify=
+sin_titulo=Sense t\u00edtol
+sincronizar_color_borde_relleno=Sincronitzar el color de la vora amb el del farciment\:
+Size=Dimensi\u00f3
+sobre_la_barra=Sobre la barra
+Solo_para_capas_vectoriales=Sols per a capes vectorials
+start_edition=Comen\u00e7ar l'edici\u00f3
+statistics=Estad\u00edstiques
+stop_edition=Acabar l'edici\u00f3
+Style=Estil
+Subir_capa=Pujar capa
+suma=Suma
+Superior=Superior
+symbol_selector=
+Tabla=Taula
+Tabla_de_Atributos=Taula d'Atributs
+tablas=Taules
+Tablas=Taules
+tag=tag
+tamano=Dimensi\u00f3\:
+tamano_metros=Dimensi\u00f3 en metres
+tamano_pagina=Dimensi\u00f3 de p\u00e0gina\:
+tamano_posicion=dimensi\u00f3/posici\u00f3
+tamanyo_borde=Grand\u00e0ria de la vora
+tamanyo_fuente=Grand\u00e0ria de font
+tamanyo_pagina=
+tamPixX=
+tamPixY=
+terminar=
+terminar_edicion=
+texto=
+this_table_is_not_self_editable=
+tipo_dato=Tipus de dada
+tipo_de_intervalo=Tipus d'interval
+tipo_de_leyenda=Tipus de llegenda
+tipo_fichero_proyecto=Fitxer de projecte gvSIG (*.gvsproj)
+tipo_linea=Tipus de L\u00ednia\:
+tipo_relleno=Tipus de Farciment\:
+tipo_simbolo=Tipus de s\u00edmbol\:
+tipos_de_documentos=Tipus de documents
+titulo=Gestor de projectes
+titulo_fframetext=T\u00edtol del camp de text
+to_annotation=Transformar a capa d'anotacions
+to_palette=Canviar a paleta
+tooltip_copiar_al_portapapeles=
+tooltip_cortar_al_portapapeles=
+tooltip_pegar_desde_el_portapapeles=
+Toquen=toquen
+transparencia=Transpar\u00e8ncia
+Transparencia=Transpar\u00e8ncia
+transparencia_pixel=Transpar\u00e8ncia per p\u00edxel
+ungroup=Desagrupar
+unidades=Unitats\:
+Unidades=Unitats\:
+untitled=Sense t\u00edtol
+url=
+Usar_indice_espacial=Usar \u00edndex espacial
+usar_marco=Usar marc
+usar_titulo=Usar t\u00edtol
+usuario=Usuari
+utilizar_margenes_impresora=Utilitzar m\u00e0rgens de la impressora.
+vacia=Buida
+Valor=Valor
+Valores=Valors
+Valores_unicos=Valors \u00fanics
+varianza=Varian\u00e7a
+Ventana=Finestra
+ventana_proyecto=Finestra de projecte
+Ver=Veure
+ver_error_capa=
+ver_tabla_atributos=Veure Taula d'atributs
+ver_tags=
+ver_tooltip=Mostra la finestra de projecte
+vertical=Vertical
+vertical_space=
+visible=Visible
+visibles=Visibles
+Vista=Vista
+vistas=Vistes
+visualizacion=Visualitzaci\u00f3
+Visualizacion=Visualitzaci\u00f3
+visualizar_cuadricula=Visualitzeu malla
+warning=Av\u00eds
+xmax=X m\u00e0xima
+xmin=X m\u00ednima
+Yardas=Lardes
+ymax=Y m\u00e0xima
+ymin=Y m\u00ednima
+Zoom_a_la_capa=Zoom a la capa
+Zoom_Acercar=Zoom acostar
+Zoom_Alejar=Zoom allunyar
+Zoom_Completo=Zoom complet
+Zoom_Completo_Vista=Zoom complet sobre la vista
+zoom_in_factor=
+Zoom_Mas=Zoom m\u00e9s
+Zoom_Mas_Vista=Zoom m\u00e9s sobre la vista
+Zoom_Menos=Zoom menys
+Zoom_Menos_Vista=Zoom menys sobre la vista
+zoom_out_factor=
+Zoom_pixel=Zoom a la resoluci\u00f3 del raster
+Zoom_Previo=Zoom previ
+Zoom_Real=Zoom 1\:1
+Zoom_Select=Zoom a la part seleccionada
+line_properties=Propietats de la l�nea
+join_style=Estil de la uni�
+join_bevel=En esquadra
+join_miter=A bisell
+join_round=Arrodonida
+end_style=Estil del extrem
+cap_butt=Sense extrem
+cap_round=Arrodonit
+cap_square=Rectangular
+fill_pattern=Patr� de farciment
+_Metadata=Metadades
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_ca.properties
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/prodevelop.html
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/prodevelop.html	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/prodevelop.html	(revision 38262)
@@ -0,0 +1,12 @@
+<html>
+<body>
+
+<img src="prodevelop-logo.png"><br>
+
+<h2>PRODEVELOP</h2>
+<br>
+
+<p>EN CONSTRUCCION</p>
+
+</body>
+</html>
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/prodevelop.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-logo_horiz_bicolor.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/gva-logo_horiz_bicolor.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_pt.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_pt.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_pt.properties	(revision 38262)
@@ -0,0 +1,706 @@
+#Translations for language [pt]
+#Mon Oct 30 09:38:21 CET 2006
+(escala_maxima)=(escala m\u00e1xima)
+(escala_minima)=(escala m\u00ednima)
+1\:=
+_(Simbolo_unico)=(S\u00edmbolo \u00fanico)
+__proyeccion_actual=Projec\u00e7\u00e3o actual\:
+__redimensionar_texto_escala=Redimensionar o texto de acordo com a escala da vista
+__seleccion_de_fuente=Selec\u00e7\u00e3o da fonte
+A0=A0
+A1=A1
+A2=A2
+A3=A3
+A4=A4
+abajo=Abaixo
+abrir=Abrir
+abrir_plantilla=Abrir molde
+abrir_proyecto=Abrir projecto
+abrir_tooltip=Abrir um projecto existente
+Abrir_una_capa=Abrir uma capa
+Accion_Predefinida=Ac\u00e7\u00e3o predefinida
+aceptar=Aceitar
+Aceptar=Aceitar
+acerca_de=Sobre...
+activar=Activate
+activar_regla=Activar r\u00e9gua
+activos=Activos
+add_delete_edit_fields=
+add_layer=Adicionar capa
+add_rows=
+adjust_transparency=Configurar transpar\u00eancia
+agrupacion=
+agrupar=Agrupar
+agrupar_capas=Agrupar capas
+agrupar_graficos=Agrupar gr\u00e1ficos
+agrupar_linea=Agrupar linha gr\u00e1fica com gr\u00e1ficos
+Ajustar_transparencia=Ajustar transpar\u00eancia
+ajustes_linea_grafica=Ajustes de linha gr\u00e1fica
+Al_leer_la_leyenda=Ao ler a legenda
+alias=Ali\u00e1s
+align_center=
+align_down=
+align_left=
+align_right=
+align_to_layout_center=
+align_to_layout_down=
+align_to_layout_left=
+align_to_layout_right=
+align_to_layout_up=
+align_to_layout_vertical_center=
+align_up=
+align_vertical_center=
+alineamiento=Alinhamento\:
+alinear=Alinhar
+alinear_graficos=Alinhar gr\u00e1ficos
+alta=Alta
+alto=Alto
+altura=Altura\:
+Altura_fija_de_texto=Tamanho fixo de texto
+ambito=\u00c2mbito
+Anadir=Adicionar
+Anadir_al_conjunto=Adicionar ao conjunto
+Anadir_capa=Adicionar capa
+Anadir_Capa=Adicionar capa
+anadir_tag=
+Anadir_todos=Adicionar todos
+ancho=Largura
+ancho_alto=Largura X altura
+anchura=Grossura\:
+Aplicar=Aplicar
+Archivo=Ficheiro
+arriba=Acima
+ascending_order=Ordem ascendente
+ascending_order_tooltip=Ordenar segundo o campo seleccionado por ordem ascendente
+Atributo=Atributo
+automatico=Autom\u00e1tico
+Ayuda=Ajuda
+back=Anterior
+background_color=Cor de fundo
+baja=Baixa
+Bajar_capa=Mover capa para baixo
+bandas=Bandas
+barra=Barra\:
+base=base
+base_datos=Base de dados
+bmp=Ficheiros do tipo bmp
+Bold=Negrito
+borra_seleccion=Apagar selec\u00e7\u00e3o
+borrador=Rascunho
+borrar=Apagar
+box=
+brillo=Brightness
+brillo_y_contraste=
+browse=
+cajetin=
+Calcular_intervalos=Calcular intervalos
+calidad=Qualidade
+cambiar_el_alto_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_alto=
+cambiar_el_ancho_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_ancho=
+cambiar_el_tamano_de_los_elementos_seleccionados_hasta_coincidir_con_el_mas_grande=
+Cambio_Color=Mudar de cor
+cambio_nombre=Mudar de nome
+campo=Campo
+Campo=Campo
+campo_altura_texto=Altura do campo de texto\:
+Campo_de_clasificacion=Campo de classifica\u00e7\u00e3o
+Campo_de_etiquetado=Campo da etiqueta
+Campos=Campos
+cancel=Cancelar
+Cancel=Cancelar
+cancelar=Cancelar
+Cancelar=Cancelar
+Capa=Capa
+Capas=Capas
+Capas_del_localizador=Localizador de capas
+Centimetros=Cent\u00edmetros
+cerrar=Fechar
+Cerrar=Fechar
+change=
+change_before=
+change_behind=
+change_height=
+change_width=
+circulo=C\u00edrculo
+clave=Senha
+close=Fechar
+coincidir_tamanyo=
+colocar_a_margenes=Colocar com referencia \u00e0s margens
+colocar_alrededor_seleccionados=Colocar ao redor dos gr\u00e1ficos seleccionados.
+colocar_alrededor_todos=Colocar ao redor de todos os gr\u00e1ficos.
+colocar_delante=Colocar \u00e0 frente
+colocar_detras=Colocar atr\u00e1s
+color=Cor\:
+Color_final=Cor final\:
+Color_inicio=Cor inicial
+color_texto=Cor do texto\:
+comentarios=Coment\u00e1rios
+comenzar_edicion=
+compleja=
+configurar=Configurar
+configurar_localizador=Configurar localizador
+Configurar_localizador=Configurar localizador ...
+confirmar_borrar=Aceita apagar o elemento ?
+conflicto_de_nombres_de_mapas_al_pegar=
+conflicto_de_nombres_de_tablas_al_pegar=
+conflicto_de_nombres_de_vistas_al_pegar=
+conflito_de_nombres_de_tablas_al_pegar=
+conservar_escala_visualizacion=Manter escala de vis\u00e3o
+consulta=Consulta
+Contengan=Contenham
+contraste=Contrast
+coor_geograficas=Coordenadas geogr\u00e1ficas
+copiar=
+copy=
+cortar=
+creation_date=Data de cria\u00e7\u00e3o
+Crucen_con=Cruzem com
+cuando_activo=Quando activo
+cut=
+Dado_un_campo_de_atributos=Dado de um campo de atributos
+debera_introducir_nombres_para_las_vistas_a_pegar=
+debera_introducir_nombres_para_los_mapas_a_pegar=
+default_projection=
+default_value=
+dehacer=
+delete_field=
+Derecha=Direita
+Derecho=Direito
+desagrupar=Desagrupar
+desagrupar_capas=
+desagrupar_graficos=Desagrupar gr\u00e1ficos
+descending_order=Ordem descendente
+descending_order_tooltip=Ordenar segundo o campo seleccionado por ordem descendente
+descripcion_de_configuracion_capa_de_anotaciones=
+descripcion_de_crear_capa_de_anotaciones=
+desde_arriba=Desde cima\:
+desde_izquierda=Desde a esquerda\:
+desea_borrar_el_documento=
+desea_borrar_la_capa=
+desea_continuar=
+deshacer=
+desplaza_los_elementos_seleccionados_a_la_derecha=
+desplaza_los_elementos_seleccionados_a_la_izquierda=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_x=
+desplaza_los_elementos_seleccionados_al_centro_por_el_eje_y=
+desplaza_los_elementos_seleccionados_hacia_abajo=
+desplaza_los_elementos_seleccionados_hacia_arriba=
+Desplazamiento=Movimenta\u00e7\u00e3o
+desviacion_tipica=Desvia\u00e7\u00e3o t\u00edpica
+distance_units=Unidades de medida
+distribuir=Distribuir\:
+distribuir_elementos_sobre_todo_el_layout=
+distributes_down=
+distributes_horizontal=
+distributes_left=
+distributes_right=
+distributes_to_layout_down=
+distributes_to_layout_horizontal=
+distributes_to_layout_left=Distribuye izquierda del layout
+distributes_to_layout_right=
+distributes_to_layout_up=
+distributes_to_layout_vertical=
+distributes_up=
+distributes_vertical=
+distribuye_el_espacio_entre_los_elementos_en_horizontal=
+distribuye_el_espacio_entre_los_elementos_en_vertical=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_abajo_hacia_arriba=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_arriba_hacia_abajo=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_derecha_a_izquierda=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_de_izquierda_a_derecha=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_horizontal=
+distribuye_los_elementos_seleccionados_de_forma_equidistante_y_vertical=
+divisiones_izquierda=Divis\u00f5es para a esquerda
+documento=
+documentos_existentes=Documentos existentes
+draw_text_only=
+driver=Driver
+Dxffiles=Ficheiros dxf
+edicion=
+editable=Editav\u00e9l
+Editar_leyenda=Editar legenda
+editar_vertices=
+el_numero_maximo_de_intervalos_para_este_campo_es=O n\u00famero m\u00e1ximo de intervalos para este campo s\u00e3o
+Elegir_Color=Seleccionar cor
+Elegir_Fuente=Seleccionar fonte
+elemento_ya_existe=
+Elementos_seleccionados_de_la_capa=Elementos seleccionados da capa
+Eliminar=Remover
+eliminar_capa=Remover capa
+eliminar_columna=
+eliminar_extremos=Remover extremos
+eliminar_fila=
+en_el_mapa=No mapa\:
+En_metros=Em metros
+En_pixels=Em pixels
+en_unidades=
+Encuadre=Zooms
+Encuadre_Vista=Enquadrar vista
+enlace_vivo=Hiperliga\u00e7\u00e3o viva
+Enlazar_a_fichero_de_texto=Hiperliga\u00e7\u00e3o para ficheiros de texto
+Enlazar_a_ficheros_de_imagen=Hiperliga\u00e7\u00e3o para ficheiros de imagem
+equal_intervals=Intervalos iguais
+Error_exportando_SLD=
+Error_guardando_la_leyenda=Erro ao guardar a legenda
+Error_guardando_la_plantilla=
+escala=Escala
+Escala=Escala
+escala_desconocida=
+escala_maxima=Escala m\u00e1xima
+Escala_Maxima=Escala m\u00e1xima
+escala_minima=Escala m\u00ednima
+Escala_Minima=Escala m\u00ednima
+escala_usuario=Escala especificada pelo usu\u00e1rio
+espaciado_horizontal=Espa\u00e7o horizontal da malha
+espaciado_vertical=Espa\u00e7o vertical da malha
+espacio=Espa\u00e7o\:
+estadisticas=Estat\u00edsticas
+este_por_debajo_de_=Esteja por debaixo de
+este_por_encima_de=Esteja por em cima de
+Esten_contenidos_en=Estejam dentro de
+Etiqueta=Etiqueta
+Etiquetados=Etiquetas
+etiquetas=Etiquetas\:
+Etiquetas_estandar=Etiquetas padr\u00e3o
+Examinar=Procurar
+export=Exportar
+exportar=Exportar
+exportar_pdf=Exportar a pdf
+exportar_ps=Exportar a ps
+extension=Extens\u00e3o
+Extent=Extens\u00e3o
+extents_no_coincidentes=A extens\u00e3o da imagem seleccionada n\u00e3o coincide com a imagem de origem.
+factor_zoom_incorrecto=
+fallo_capas=Erro ao aceder \u00e0s capas. As siguientes capas v\u00e3o ser eliminadas do projecto
+family=
+fichero=
+Fichero=Ficheiro
+fichero_existe=O ficheiro seleccionado j\u00e1 existe como banda da capa
+fichero_incorrecto=Ficheiro incorrecto
+fichero_ya_existe_seguro_desea_guardarlo=
+field_already_exists=
+field_decimal_count=
+field_default_value=
+field_length=
+field_manager=
+field_name=
+field_type=
+filtro=Filtro
+finish=Terminar
+Font=Fonte
+formato=Formato
+Formato_de_numero_erroneo=
+formato_incorrecto=Formato incorrecto
+fuente=Fonte
+General=Geral
+georeferenciado=
+gestion_encuadre=Gest\u00e3o de enfoque
+grados=Graus\:
+Grados=Graus
+Graficos=Gr\u00e1ficos
+grosor_linea=Grossura da linha\:
+group=Agrupar
+group_graphic_line=
+grupo=
+guardado=Guardado em
+guardar=
+Guardar=Guardar
+guardar_cambios=Guardar as altera\u00e7\u00f5es?
+guardar_como=Guardar como...
+guardar_como_plantilla=Guardar como molde
+Guardar_el_zoom_actual=Guardar zoom actual
+Guardar_leyenda=Guardar legenda
+guardar_proyecto=Guardar projecto
+guardar_tooltip=Guardar as altera\u00e7\u00f5es do projeto
+Habilitar_etiquetado=Activar etiquetas
+Hiperenlace=Hiperliga\u00e7\u00e3o
+horizontal=Horizontal
+horizontal_space=
+Identificar_Resultados=Identificar resultados
+Igual_que_la_impresora=Igual \u00e0 impressora
+igual_todos_lados=Igual em todos os lados.
+imagen=Imagem
+Implimir=
+importar=Importar
+Imprimir=Imprimir
+Indexando=Indexing...
+Indexando_espacialmente=
+indexar_campos=
+Inferior=Abaixo
+info=Informa\u00e7\u00e3o
+informacion=Informa\u00e7\u00e3o
+Informacion=Informa\u00e7\u00e3o
+Inicializando=A iniciar
+initial_warning=
+insert_row=
+Insertar=Inserir
+insertar_cajetin=
+insertar_circulo=Inserir c\u00edrculo
+insertar_columna=
+insertar_escala=Inserir escala
+insertar_fila=
+insertar_imagen=Inserir imagem
+insertar_leyenda=Inserir legenda
+insertar_linea=Inserir linha
+insertar_norte=Inserir rosa-dos-ventos
+insertar_poligono=Inserir pol\u00edgono
+insertar_polilinea=
+insertar_punto=Inserir ponto
+insertar_rectangulo=Inserir rect\u00e2ngulo
+insertar_texto=Inserir texto
+insertar_vista=Inserir vista
+Intersecten_con=Intersectam com
+Intervalo=Intervalo
+Intervalos=Intervalos
+introduce_nombre=Introduzir novo nome
+introduzca_el_nombre_de_la_nueva_capa_de_anotaciones=
+introduzca_nuevo_nombre_para_la_vista=
+invalid_value_for_gap=
+invert_selection=
+Italic=It\u00e1lico
+Izquierda=Esquerda
+Izquierdo=Esquerdo
+join=Uni\u00e3o
+jpg=Ficheiros jpeg
+kilometros=Quil\u00f3metros
+Kilometros=Quil\u00f3metros
+leyenda=Legenda
+Leyenda=Legenda
+leyenda_campo_unido=Se est\u00e1 a utilizar um campo da uni\u00e3o na legenda (e/ou etiquetas). Mude a legenda antes de retirar a uni\u00e3o, por favor.
+Leyenda_Por_Defecto=Legenda por defeito
+linea=Linha
+linea_grafica=Linha gr\u00e1fica
+lineal_directo=Lineal direito
+link=Hiperliga\u00e7\u00e3o
+Link=Hiperliga\u00e7\u00e3o
+localizador=Locator
+locked_element=
+locked_element_it_cannot_be_deleted=
+locked_element_it_cannot_be_renamed=
+m/pixel=metros/pixel
+malla_activada=Malha activada
+manage_fields=
+mantener_intervalo=Manter intervalo
+map_units=Unidades do mapa
+mapa=Mapa
+Mapa=Mapa
+mapas=Mapas
+marco=Marco
+marco_vista=Marco da vista
+margenes=Margens\:
+mas_de_100_simbolos=Mais de 100 s\u00edmbolos n\u00e3o contribuem para uma clara informa\u00e7\u00e3o de um mapa.
+max_length_is=
+maximo=M\u00e1ximo
+MDIFrame.quiere_salir=Fechar gvSIG?
+MDIFrame.salir=Fechar
+media=M\u00e9dia
+medir_area=Medir \u00e1rea
+medir_distancias=Medir dist\u00e2ncias
+metadatos=Metadatos
+metros=Metros
+Metros=Metros
+Milimetros=Mil\u00edmetros
+Millas=Milhas
+minimo=M\u00ednimo
+modificar=
+modification_date=Data de modifica\u00e7\u00e3o
+mostrar_escala_numerica=
+Mostrar_siempre=Mostrar sempre
+mostrar_unidades=Mostrar unidades
+move_elements=
+Muestra_atributos=Mostrar atributos das capas seleccionadas.
+muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico=Mostra os elementos da capa usando um s\u00edmbolo por cada valor \u00fanico
+Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos=Mostra os elementos da capa usando uma gama de cores em fun\u00e7\u00e3o do valor de um determinado campo de atributos
+Muestra_todos_los_elementos_de_una_capa_usando_el_mismo_simbolo=Mostra todos os elementos de uma capa usando o mesmo s\u00edmbolo
+natural_intervals=Intervalos naturais
+navegacion=Navega\u00e7\u00e3o
+navegacion_vista=Vista modo navega\u00e7\u00e3o
+necesita_una_capa_activa=
+necesita_una_capa_vectorial_activa=
+new_field=
+new_field_properties=
+next=Seguinte
+ninguna_impresora_configurada=Nenhuma impressora configurada
+Nivel_de_transparencia=N\u00edvel de transpar\u00eancia
+no=No
+no_activos=N\u00e3o activos
+No_de_intervalos=N\u00ba de intervalos
+no_es_posible_aplicar_leyenda_vacia=
+No_ha_sido_posible_realizar_la_operacion=
+No_mostrar=N\u00e3o mostrar a capa quando a escala
+No_mostrar_la_capa_cuando_la_escala=N\u00e3o mostrar a capa quando a escala
+no_se_pegaran_las_tablas=
+no_se_pegaran_las_vistas_del_conflicto=
+No_se_pudo_obtener_la_tabla_de_la_capa=
+no_visibles=N\u00e3o vis\u00edvel
+nombre=Nome
+Nombre=Nome
+nombre_no_valido=
+Nombre_que_se_le_dara_al_zoom=Nome para o zoom
+nombre_sesion=Nome da sess\u00e3o
+none=
+none_selected=Nenhum seleccionado
+normal=Normal
+north=Norte
+Nueva_tabla=Nova tabela
+nuevo=Novo
+Nuevo_conjunto=Novo conjunto
+nuevo_nombre_para_el_mapa=
+nuevo_proyecto=Novo projecto
+nuevo_tooltip=Criar novo projecto
+num_bandas=N\u00famero de bandas
+num_columnas=
+num_filas=
+Num_intervalos=
+numero_decimales_mostrar=
+numero_incorrecto=
+ok=Aceitar
+opacidad=Opacidade
+operacion_cancelada=
+options.layout.paper_properties.landscaped=
+options.layout.paper_properties.paper_direction=
+options.layout.paper_properties.portrait=
+options.layout.paper_properties.title=
+options.view.default_map_overview_back_color=
+options.view.default_selection_color=
+options.view.default_view_back_color=
+options.view.invisible_new_layers=
+options.view.keep_scale_on_resizing=
+orientacion=Orienta\u00e7\u00e3o\:
+origen_de_datos=Origem de dados
+Origen_de_datos=Origem dos dados
+Origen_de_Datos=Origem dos dados\:
+owner=Propriet\u00e1rio
+paste=Paste
+paste_elements=
+path=Rota
+pdf=
+pegar=
+pegar_mapas=
+pegar_vistas=
+Permite_etiquetar_los_elementos_del_mapa_con_el_valor_de_un_determinado_campo=Permite etiquetar os elementos do mapa com o valor de um determinado campo
+Personalizado=Personalizado
+personalizar_margenes=
+Pies=P\u00e9s
+pila_de_comandos=
+pixeles=pixels
+pixels=pixels
+Plain=
+plantilla=
+please_insert_new_field_name=
+png=Ficheiros png
+poligono=
+polilinea=
+poner_capas_a=
+por_debajo_de=Por debaixo de\:
+por_encima_de=Por em cima de\:
+Por_favor_active_la_capa=
+posicion_linea=Posi\u00e7\u00e3o da linha
+precision=
+preparar_pagina=Preparar p\u00e1gina
+Preparar_pagina=Preparar p\u00e1gina
+presentacion=Apresenta\u00e7\u00e3o
+previsualizacion=
+Previsualizacion=Pr\u00e9-visualizar
+Previsualizacion_de_simbolo=Pr\u00e9-visualiza\u00e7\u00e3o do s\u00edmbolo
+propiedad=
+propiedades=Propriedades
+propiedades_cajetin=
+propiedades_capa=
+propiedades_de_la_capa=
+Propiedades_escala_grafica=Propriedades da escala
+propiedades_grafico=Propriedades gr\u00e1ficas
+propiedades_mapa=Propriedades do mapa
+propiedades_marco_imagenes=Propriedades do marco das imagens
+propiedades_marco_leyenda=Propriedades do marco da legenda
+propiedades_marco_vista=Propriedades do marco da vista
+propiedades_raster=Propiedades da cobertura
+propiedades_sesion=Propriedades da sess\u00e3o
+propiedades_tabla=Propriedades de tabela
+Propiedades_texto=Propriedades do texto
+propiedades_vista=Propriedades da vista
+Proyecciones=
+ps=
+puerto=Porta
+Pulgadas=Polegadas
+punto=Ponto
+quantile_intervals=Intervalos quartis
+quiere_continuar=Tem a certeza de que quer continuar?
+Quitar=Remover
+Quitar_capa=Remover capa
+quitar_enlaces=Remover hiperliga\u00e7\u00f5es
+Quitar_todos=Remover todos
+quitar_uniones=Remover uni\u00f5es
+rango_de_escalas=Amplitude de escalas
+Rango_de_escalas=Amplitude de escalas
+realce=Realce
+realmente_desea_guardar=
+recargar=
+recorte_colas=Recorte de filas
+recorte_vista=Recortar a vista
+rectangulo=Rect\u00e2ngulo
+recuento=Recontar
+Recuperar_leyenda=Recuperar legenda
+Recuperar_y_eliminar_otros_zoom=Recuperar e eliminar outros zooms
+refrescar=Actualizar
+rehacer=
+rellenar_marco_vista=Preencher espa\u00e7o da vista
+relleno=Preencher\:
+remove_elements=
+remove_fields=
+remove_row=
+remove_rows=
+rename_field=
+renombrar=Mudar de nome
+reproyectar_aviso=A projec\u00e7\u00e3o da capa n\u00e3o \u00e9 a mesma da que a vista.\nAVISO\: Isto pode gerar imprecis\u00e3o com algumas transforma\u00e7\u00f5es.\nPor favor, leia a documenta\u00e7\u00e3o
+reproyectar_pregunta=Deseja voltar a projectar?
+resolucion_resultado=Resolu\u00e7\u00e3o do resultado\:
+resto_valores=Resto de valores
+restore_palette=
+rotation_field=
+salir=Fechar
+salir_tooltip=Fechar
+salvar_raster=Guardar como raster
+Sample=Exemplo
+Se_superponen_a=Se sobrep\u00f5em a
+Sean_disjuntos_a=sejam disjuntos a
+Sean_iguales_a=sejam iguais a
+seleccion=Selec\u00e7\u00e3o
+seleccion_fuente=Selec\u00e7\u00e3o de fonte
+Seleccion_por_capa=
+selecciona_sistema_de_referencia=
+Seleccionar=Seleccionar
+seleccionar_capas=Seleccionar capas
+seleccionar_capas_raster=
+Seleccionar_de_las_capas_activas_los_elementos_que=Seleccionar as capas activas dos elementos que\:
+Seleccionar_del_conjunto=Seleccionar o conjunto
+Seleccionar_fichero=Seleccionar ficheiro
+seleccionar_por_poligono=
+seleccionar_por_punto=Seleccionar por ponto
+seleccionar_por_rectangulo=Seleccioar por rect\u00e2ngulo
+seleccionar_todos=Seleccionar todos
+seleccione_campo_enlace=Seleccione o campo a juntar
+seleccione_el_campo_angulo_de_la_capa_de_anotaciones=
+seleccione_el_campo_color_de_la_capa_de_anotaciones=
+seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual=
+seleccione_el_campo_fuente_de_la_capa_de_anotaciones=
+seleccione_el_campo_tamano_de_la_capa_de_anotaciones=
+seleccione_fecha=Seleccionar uma data...
+seleccione_tabla_a_enlazar=Seleccione a tabela a juntar
+seleccione_tabla_origen=Seleccione a tabela de origem do join
+selection_color=Cor de selec\u00e7\u00e3o
+selection_up=
+separator=
+Servidor=Servidor
+Shapefile=Ficheiro shp
+show_this_dialog_next_startup=
+si=
+siempre=
+simbolo=
+Simbolo=S\u00edmbolo
+Simbolo_unico=S\u00edmbolo \u00fanico
+Simbologia=Simbologia
+simplificar_leyenda=
+simplify=
+sin_titulo=Sem t\u00edtulo
+sincronizar_color_borde_relleno=Sincronizar a cor do borde com a de preenchimento\:
+Size=Tamanho
+sobre_la_barra=Sobre a barra
+Solo_para_capas_vectoriales=S\u00f3 para capas (vectoriais)
+start_edition=
+statistics=Estat\u00edsticas
+stop_edition=
+Style=Estilo
+Subir_capa=Mover capa para cima
+suma=Soma
+Superior=Superior
+symbol_selector=
+Tabla=Tabela
+Tabla_de_Atributos=Tabela de atributos
+tablas=Tabelas
+Tablas=Tabelas
+tag=tag
+tamano=Tamanho\:
+tamano_metros=Tamanho em metros
+tamano_pagina=Tamanho da p\u00e1gina
+tamano_posicion=Tamanho e posi\u00e7\u00e3o
+tamanyo_borde=Tamanho do borde
+tamanyo_fuente=Tamanho da fonte
+tamanyo_pagina=
+tamPixX=
+tamPixY=
+terminar=
+terminar_edicion=
+texto=Texto
+this_table_is_not_self_editable=
+tipo_dato=Tipo de dado
+tipo_de_intervalo=Tipo de intervalo
+tipo_de_leyenda=Tipo de legenda
+tipo_fichero_proyecto=Ficheiros de projecto gvSIG (*.gvsproj)
+tipo_linea=Tipo de linha\:
+tipo_relleno=Tipo de preenchimento\:
+tipo_simbolo=Tipo de s\u00edmbolo\:
+tipos_de_documentos=Tipos de documentos
+titulo=Gestor de projectos
+titulo_fframetext=T\u00edtulo do campo de texto
+to_annotation=
+to_palette=
+tooltip_copiar_al_portapapeles=
+tooltip_cortar_al_portapapeles=
+tooltip_pegar_desde_el_portapapeles=
+Toquen=toquem
+transparencia=Transpar\u00eancia
+Transparencia=Transpar\u00eancia
+transparencia_pixel=
+ungroup=Desagrupar
+unidades=Unidades\:
+Unidades=Unidades\:
+untitled=Sem t\u00edtulo
+url=
+Usar_indice_espacial=Usar \u00edndice espacial
+usar_marco=Usar marco
+usar_titulo=Usar t\u00edtulo
+usuario=Usu\u00e1rio
+utilizar_margenes_impresora=Utilizar m\u00e1rgens da impressora.
+vacia=Vazia
+Valor=Valor
+Valores=Valores
+Valores_unicos=Valores \u00fanicos
+varianza=Varia\u00e7\u00e3o
+Ventana=Janela
+ventana_proyecto=Janela de projecto
+Ver=Ver
+ver_error_capa=
+ver_tabla_atributos=Ver tabela de atributos
+ver_tags=
+ver_tooltip=Ver janela de projecto
+vertical=Vertical
+vertical_space=
+visible=Vis\u00edvel
+visibles=Vis\u00edveis
+Vista=Vista
+vistas=Vis\u00f5es
+visualizacion=Visualiza\u00e7\u00e3o
+Visualizacion=Visualiza\u00e7\u00e3o
+visualizar_cuadricula=Visualizar malha
+warning=
+xmax=X m\u00e1xima
+xmin=X m\u00ednima
+Yardas=Jardas
+ymax=Y m\u00e1xima
+ymin=Y m\u00ednima
+Zoom_a_la_capa=
+Zoom_Acercar=Zoom aproximar
+Zoom_Alejar=Zoom afastar
+Zoom_Completo=Zoom completo
+Zoom_Completo_Vista=Zoom completo sobre a vista
+zoom_in_factor=
+Zoom_Mas=Zoom mais
+Zoom_Mas_Vista=Zoom mais sobre a vista
+Zoom_Menos=Zoom menos
+Zoom_Menos_Vista=Zoom menos sobre a vista
+zoom_out_factor=
+Zoom_pixel=Zoom \u00e0 resolu\u00e7\u00e3o do raster
+Zoom_Previo=Zoom anterior
+Zoom_Real=Zoom 1\:1
+Zoom_Select=Zoom \u00e0 selec\u00e7\u00e3o

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/config/text_pt.properties
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/log4j.properties
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/log4j.properties	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/log4j.properties	(revision 38262)
@@ -0,0 +1,18 @@
+log4j.rootLogger=info, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+
+# Pattern to output the caller's file name and line number.
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
+
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.File=application.log
+
+log4j.appender.R.MaxFileSize=100KB
+# Keep one backup file
+log4j.appender.R.MaxBackupIndex=1
+
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/log4j.properties
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerWizardPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerWizardPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerWizardPanel.java	(revision 38262)
@@ -0,0 +1,632 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+package org.gvsig.fmap.dal.serverexplorer.filesystem.swing;
+
+import java.awt.Component;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.prefs.Preferences;
+
+import javax.swing.AbstractListModel;
+import javax.swing.JButton;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.filechooser.FileFilter;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.gui.WizardPanel;
+import org.gvsig.app.prepareAction.PrepareContext;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.FileNotFoundException;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemFileFilter;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
+import org.gvsig.fmap.mapcontrol.swing.dynobject.DynObjectEditor;
+import org.gvsig.fmap.mapcontrol.swing.dynobject.DynObjectViewer;
+import org.gvsig.gui.beans.swing.JFileChooser;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.service.ServiceException;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+
+/**
+ * @author jmvivo
+ * 
+ */
+public abstract class FilesystemExplorerWizardPanel extends WizardPanel
+    implements ActionListener, ListSelectionListener {
+
+    /**
+	 *
+	 */
+    private static final long serialVersionUID = -3371957786521876903L;
+
+    private static final Logger LOG = LoggerFactory
+        .getLogger(FilesystemExplorerWizardPanel.class);
+
+    public static final String OPEN_LAYER_FILE_CHOOSER_ID =
+        "OPEN_LAYER_FILE_CHOOSER_ID";
+
+    protected static final String ADD_COMMAND = "ADD";
+    protected static final String EDIT_COMMAND = "PROPERTIES";
+    protected static final String REMOVE_COMMAND = "REMOVE";
+    protected static final String UP_COMMAND = "UP";
+    protected static final String DOWN_COMMAND = "DOWN";
+
+    private static String lastPath = null;
+    private static MyFileFilter lastFilter = null;
+    private static final String DEFAULT_FILTER = "All supporteds";
+
+    private JList fileList;
+    private JScrollPane fileListScroll;
+    private JPanel buttonsPanel;
+    private JButton addButton;
+    private JButton propertiesButton;
+    private JButton removeButton;
+    private JButton upButton;
+    private JButton downButton;
+
+    protected FilesystemServerExplorer explorer;
+    private ArrayList<MyFileFilter> filters;
+
+    public void setTabName(String name) {
+        super.setTabName(name);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.cit.gvsig.gui.WizardPanel#getParameters()
+     */
+    @Override
+    public DataStoreParameters[] getParameters() {
+        return ((FilesystemStoreListModel) getFileList().getModel())
+            .getParameters();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.cit.gvsig.gui.WizardPanel#initWizard()
+     */
+    @Override
+    public void initWizard() {
+        setTabName(PluginServices.getText(this, "Fichero"));
+        if (lastPath == null) {
+            Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
+            lastPath = prefs.get("DataFolder", null);
+        }
+
+        DataManager dm = DALLocator.getDataManager();
+        FilesystemServerExplorerParameters param;
+        try {
+            param =
+                (FilesystemServerExplorerParameters) dm
+                    .createServerExplorerParameters(FilesystemServerExplorer.NAME);
+            param.setInitialpath(lastPath);
+            explorer =
+                (FilesystemServerExplorer) dm.openServerExplorer(
+                    FilesystemServerExplorer.NAME, param);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
+        int mode = FilesystemServerExplorer.MODE_ALL;
+        this.filters = new ArrayList<MyFileFilter>();
+        if (this.getMapCtrl() == null) {
+            mode = FilesystemServerExplorer.MODE_FEATURE;
+        } else {
+            mode =
+                FilesystemServerExplorer.MODE_GEOMETRY
+                    | FilesystemServerExplorer.MODE_RASTER;
+        }
+        @SuppressWarnings("unchecked")
+        Iterator<FilesystemFileFilter> iter = explorer.getFilters(mode);
+        while (iter.hasNext()) {
+            this.filters.add(new MyFileFilter(iter.next()));
+        }
+        this.filters.add(new MyFileFilter(explorer.getFilter(mode,
+            DEFAULT_FILTER)));
+        initUI();
+    }
+
+    private void initUI() {
+        this.setLayout(new GridBagLayout());
+        GridBagConstraints constr = new GridBagConstraints();
+
+        constr.gridwidth = GridBagConstraints.RELATIVE;
+        constr.gridheight = GridBagConstraints.RELATIVE;
+        constr.fill = GridBagConstraints.BOTH;
+        constr.anchor = GridBagConstraints.FIRST_LINE_START;
+        constr.weightx = 1;
+        constr.weighty = 1;
+        constr.ipadx = 3;
+        constr.ipady = 3;
+
+        this.add(getFileListScroll(), constr);
+
+        constr.gridwidth = GridBagConstraints.REMAINDER;
+        constr.gridheight = GridBagConstraints.RELATIVE;
+        constr.fill = GridBagConstraints.NONE;
+        constr.anchor = GridBagConstraints.FIRST_LINE_END;
+        constr.weightx = 0;
+        constr.weighty = 0;
+        this.add(getButtonsPanel(), constr);
+
+        this.updateButtons();
+
+    }
+
+    protected class FilesystemStoreListModel extends AbstractListModel {
+
+        private static final long serialVersionUID = -726119349962990665L;
+        private ArrayList<FilesystemStoreParameters> theList;
+
+        public FilesystemStoreListModel() {
+            theList = new ArrayList<FilesystemStoreParameters>();
+        }
+
+        public DataStoreParameters[] getParameters() {
+            return theList.toArray(new DataStoreParameters[0]);
+        }
+
+        public Object getElementAt(int index) {
+            return theList.get(index).getFile().getName();
+        }
+
+        public FilesystemStoreParameters getStoreParameterAt(int index) {
+            return theList.get(index);
+        }
+
+        public int getSize() {
+            return theList.size();
+        }
+
+        public DynObject getDynObjectAt(int index) {
+            return (DynObject) theList.get(index);
+        }
+
+        public void add(DynObject dynObject) {
+            this.theList.add((FilesystemStoreParameters) dynObject);
+            this.fireIntervalAdded(this, this.theList.size() - 1,
+                this.theList.size() - 1);
+        }
+
+        public void addAll(List<FilesystemStoreParameters> toAdd) {
+            int index0 = this.getSize() - 1;
+            if (index0 < 0) {
+                index0 = 0;
+            }
+            this.theList.addAll(toAdd);
+            this.fireIntervalAdded(this, index0, this.theList.size() - 1);
+        }
+
+        public void remove(int i) {
+            this.theList.remove(i);
+            this.fireIntervalRemoved(this, i, i);
+
+        }
+
+        public void up(FilesystemStoreParameters item) {
+            int curIndex = this.theList.indexOf(item);
+            if (curIndex < 1) {
+                return;
+            }
+            this.theList.remove(item);
+            this.theList.add(curIndex - 1, item);
+            this.fireContentsChanged(this, curIndex, curIndex - 1);
+        }
+
+        public void down(FilesystemStoreParameters item) {
+            int curIndex = this.theList.indexOf(item);
+            if (curIndex < 0) {
+                return;
+            } else
+                if (curIndex == this.theList.size() - 1) {
+                    return;
+                }
+            this.theList.remove(item);
+            this.theList.add(curIndex + 1, item);
+            this.fireContentsChanged(this, curIndex, curIndex + 1);
+        }
+
+    }
+
+    protected JList getFileList() {
+        if (fileList == null) {
+            fileList = new JList(new FilesystemStoreListModel());
+
+            fileList.addListSelectionListener(this);
+        }
+        return fileList;
+    }
+
+    private JScrollPane getFileListScroll() {
+        if (fileListScroll == null) {
+            fileListScroll = new JScrollPane();
+            fileListScroll.setViewportView(getFileList());
+            fileListScroll
+                .setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
+            fileListScroll
+                .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+
+        }
+        return fileListScroll;
+    }
+
+    private Component getButtonsPanel() {
+        if (buttonsPanel == null) {
+            buttonsPanel = new JPanel();
+
+            buttonsPanel.setLayout(new GridBagLayout());
+
+            GridBagConstraints constr = new GridBagConstraints();
+
+            constr.anchor = GridBagConstraints.CENTER;
+            constr.fill = GridBagConstraints.NONE;
+            constr.ipadx = 3;
+            constr.ipady = 3;
+            constr.insets = new Insets(3, 3, 3, 3);
+            constr.gridwidth = GridBagConstraints.REMAINDER;
+
+            buttonsPanel.add(getAddButton(), constr);
+            buttonsPanel.add(getPropertiesButton(), constr);
+            buttonsPanel.add(getRemoveButton(), constr);
+            buttonsPanel.add(getUpButton(), constr);
+            buttonsPanel.add(getDownButton(), constr);
+            // buttonsPanel.add(new JLabel(), constrLbl);
+        }
+        return buttonsPanel;
+    }
+
+    private JButton getAddButton() {
+        if (addButton == null) {
+            addButton =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            addButton.setText(getLocalizedText("add"));
+            addButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            addButton.setActionCommand(ADD_COMMAND);
+            addButton.addActionListener(this);
+        }
+        return addButton;
+    }
+
+    private JButton getPropertiesButton() {
+        if (propertiesButton == null) {
+            propertiesButton =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            propertiesButton.setText(getLocalizedText("properties"));
+            propertiesButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            propertiesButton.setActionCommand(EDIT_COMMAND);
+            propertiesButton.addActionListener(this);
+        }
+        return propertiesButton;
+    }
+
+    private JButton getRemoveButton() {
+        if (removeButton == null) {
+            removeButton =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            removeButton.setText(getLocalizedText("remove"));
+            removeButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            removeButton.setActionCommand(REMOVE_COMMAND);
+            removeButton.addActionListener(this);
+        }
+        return removeButton;
+    }
+
+    private JButton getUpButton() {
+        if (upButton == null) {
+            upButton =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            upButton.setText(getLocalizedText("up"));
+            upButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            upButton.setActionCommand(UP_COMMAND);
+            upButton.addActionListener(this);
+        }
+        return upButton;
+    }
+
+    private JButton getDownButton() {
+        if (downButton == null) {
+            downButton =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            downButton.setText(getLocalizedText("down"));
+            downButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            downButton.setActionCommand(DOWN_COMMAND);
+            downButton.addActionListener(this);
+        }
+        return downButton;
+    }
+
+    private String getLocalizedText(String txt) {
+        try {
+            return PluginServices.getText(this, txt);
+        } catch (Exception e) {
+            return txt;
+        }
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        String command = e.getActionCommand();
+        FilesystemStoreListModel model =
+            (FilesystemStoreListModel) getFileList().getModel();
+
+        if (command == ADD_COMMAND) {
+            List<FilesystemStoreParameters> toAdd = this.addFiles();
+            if (toAdd.isEmpty()) {
+                return;
+            }
+            model.addAll(toAdd);
+
+            getFileList().setModel(model);
+
+        } else
+            if (command == EDIT_COMMAND) {
+                DynObject dynObject =
+                    model.getDynObjectAt(getFileList().getSelectedIndex());
+
+                try {
+                    DynObjectEditor editor = new DynObjectEditor(dynObject);
+                    editor.editObject(true);
+                } catch (ServiceException ex) {
+                    LOG.error(
+                        "Error creating a Swing component for the DynObject: "
+                            + dynObject, ex);
+                }
+
+            } else
+                if (command == REMOVE_COMMAND) {
+                    int[] selecteds = getFileList().getSelectedIndices();
+                    for (int i = selecteds.length - 1; i > -1; i--) {
+                        model.remove(selecteds[i]);
+                    }
+                    getFileList().setSelectedIndex(-1);
+
+                } else
+                    if (command == UP_COMMAND) {
+                        List<FilesystemStoreParameters> items =
+                            new ArrayList<FilesystemStoreParameters>();
+                        int[] selecteds = getFileList().getSelectedIndices();
+                        if (selecteds.length == 0 || selecteds[0] == 0) {
+                            return;
+                        }
+                        for (int i = 0; i < selecteds.length; i++) {
+                            items.add(model.getStoreParameterAt(selecteds[i]));
+                            selecteds[i]--;
+                        }
+                        Iterator<FilesystemStoreParameters> iter =
+                            items.iterator();
+                        while (iter.hasNext()) {
+                            model.up(iter.next());
+                        }
+                        getFileList().setSelectedIndices(selecteds);
+
+                    } else
+                        if (command == DOWN_COMMAND) {
+                            List<FilesystemStoreParameters> items =
+                                new ArrayList<FilesystemStoreParameters>();
+                            int[] selecteds =
+                                getFileList().getSelectedIndices();
+                            if (selecteds.length == 0
+                                || selecteds[selecteds.length - 1] == model
+                                    .getSize() - 1) {
+                                return;
+                            }
+                            for (int i = selecteds.length - 1; i > -1; i--) {
+                                items.add(model
+                                    .getStoreParameterAt(selecteds[i]));
+                                selecteds[i]++;
+                            }
+                            Iterator<FilesystemStoreParameters> iter =
+                                items.iterator();
+                            while (iter.hasNext()) {
+                                model.down(iter.next());
+                            }
+                            getFileList().setSelectedIndices(selecteds);
+
+                        } else {
+                            throw new IllegalArgumentException(command);
+                        }
+
+    }
+
+    public List<DynObject> getSelecteds() {
+        ArrayList<DynObject> list = new ArrayList<DynObject>();
+        JList fList = this.getFileList();
+        int[] selecteds = fList.getSelectedIndices();
+        FilesystemStoreListModel model =
+            (FilesystemStoreListModel) fList.getModel();
+
+        for (int index : selecteds) {
+            list.add((DynObject) model.getStoreParameterAt(index));
+        }
+        return list;
+    }
+
+    public void valueChanged(ListSelectionEvent e) {
+        this.updateButtons();
+    }
+
+    public class MyFileFilter extends FileFilter {
+
+        public FilesystemFileFilter filter = null;
+
+        public MyFileFilter(FilesystemFileFilter params) {
+            this.filter = params;
+        }
+
+        /**
+         * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
+         */
+        public boolean accept(File f) {
+            if (f.isDirectory()) {
+                return true;
+            }
+            return filter.accept(f);
+
+        }
+
+        /**
+         * @see javax.swing.filechooser.FileFilter#getDescription()
+         */
+        public String getDescription() {
+            return filter.getDescription();
+        }
+
+        public String getName() {
+            return filter.getDataStoreProviderName();
+        }
+    }
+
+    private List<FilesystemStoreParameters> addFiles() {
+        this.callStateChanged(true);
+        JFileChooser fileChooser =
+            new JFileChooser(OPEN_LAYER_FILE_CHOOSER_ID,
+                explorer.getCurrentPath());
+        fileChooser.setMultiSelectionEnabled(true);
+        fileChooser.setAcceptAllFileFilterUsed(false);
+
+        Iterator<MyFileFilter> iter = this.filters.iterator();
+        while (iter.hasNext()) {
+            fileChooser.addChoosableFileFilter(iter.next());
+        }
+
+        if (lastFilter != null && filters.contains(lastFilter)) {
+            fileChooser.setFileFilter(lastFilter);
+        }
+
+        int result = fileChooser.showOpenDialog(this);
+
+        List<FilesystemStoreParameters> toAdd =
+            new ArrayList<FilesystemStoreParameters>();
+
+        if (result == JFileChooser.APPROVE_OPTION) {
+            lastPath = fileChooser.getCurrentDirectory().getAbsolutePath();
+            try {
+                explorer.setCurrentPath(fileChooser.getCurrentDirectory());
+            } catch (FileNotFoundException e) {
+                NotificationManager.addError(e);
+            }
+            lastFilter = (MyFileFilter) fileChooser.getFileFilter();
+            ApplicationManager appGvSIGMan = ApplicationLocator.getManager();
+            PrepareContext context = this.getPrepareDataStoreContext();
+            List<DataStoreParameters> paramList = new ArrayList<DataStoreParameters>();
+            List<DataStoreParameters> toAddParamList = null;
+            for (File aFile : fileChooser.getSelectedFiles()) {
+                try {
+                	DataStoreParameters param =
+                        explorer.createStoreParameters(aFile, lastFilter
+                            .getDescription().compareTo(DEFAULT_FILTER) == 0
+                            ? null : lastFilter.getName());
+                    if (param == null) {
+                        // TODO show warning
+                        continue;
+                    }
+
+                    paramList.add(param);
+                   
+                } catch (DataException e) {
+                    NotificationManager.addError(e);
+                    return null;
+                }
+            }
+            
+            try {
+                toAddParamList =
+                    appGvSIGMan.prepareOpenDataStoreParameters(paramList, context);
+            } catch (Exception e) {
+                NotificationManager.addError(e);
+            }
+            
+            for (int i = 0; i < toAddParamList.size(); i++) {
+				toAdd.add((FilesystemStoreParameters)toAddParamList.get(i));
+			}
+        }
+        return toAdd;
+    }
+
+    protected abstract PrepareContext getPrepareDataStoreContext();
+
+    private void updateButtons() {
+        int selectedIndex = this.getFileList().getSelectedIndex();
+        int size = this.getFileList().getModel().getSize();
+        int[] selecteds = this.getFileList().getSelectedIndices();
+        if (size < 1) {
+            this.getPropertiesButton().setEnabled(false);
+            this.getRemoveButton().setEnabled(false);
+            this.getUpButton().setEnabled(false);
+            this.getDownButton().setEnabled(false);
+            return;
+        } else
+            if (size == 1) {
+                this.getUpButton().setEnabled(false);
+                this.getDownButton().setEnabled(false);
+            } else {
+                this.getUpButton().setEnabled(selectedIndex > 0);
+
+                this.getDownButton().setEnabled(
+                    selectedIndex > -1
+                        && selecteds[selecteds.length - 1] < size - 1);
+            }
+        this.getPropertiesButton().setEnabled(
+            selectedIndex > -1
+                && this.getFileList().getSelectedIndices().length == 1);
+        this.getRemoveButton().setEnabled(selectedIndex > -1);
+    }
+
+    public void close() {
+        if (explorer != null) {
+            explorer.dispose();
+            explorer = null;
+        }
+        if (filters != null) {
+            filters.clear();
+            filters = null;
+        }
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerWizardPanel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerAddLayerWizardPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerAddLayerWizardPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerAddLayerWizardPanel.java	(revision 38262)
@@ -0,0 +1,194 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2008 IVER T.I. S.A.   {{Task}}
+ */
+package org.gvsig.fmap.dal.serverexplorer.filesystem.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Window;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JFrame;
+
+import org.cresques.cts.IProjection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.app.addlayer.AddLayerDialog;
+import org.gvsig.app.prepareAction.PrepareContext;
+import org.gvsig.app.prepareAction.PrepareContextView;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.swing.dynobject.DynObjectEditor;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
+import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
+import org.gvsig.tools.service.ServiceException;
+
+/**
+ * @author jmvivo
+ * 
+ */
+public class FilesystemExplorerAddLayerWizardPanel extends
+    FilesystemExplorerWizardPanel {
+
+    private static final long serialVersionUID = -5054057255129168139L;
+
+    private static final Logger LOG = LoggerFactory
+        .getLogger(FilesystemExplorerAddLayerWizardPanel.class);
+
+    private PrepareContext prepareContext;
+
+    @Override
+    public void execute() {
+        if (this.getMapCtrl() == null) {
+            throw new IllegalArgumentException("MapControl need");
+        }
+        String layerName;
+
+        for (DataStoreParameters params : this.getParameters()) {
+            IProjection proj = null;
+
+            proj = this.getMapCtrl().getProjection();
+
+            // Buscamos por el parametro de la proyeccion
+            // que sean obligatorios y est�n a null
+            // y le ponemos la proyeccion de la vista
+            DynField[] fields = params.getDynClass().getDynFields();
+            for (DynField field : fields) {
+                if (field.getType() == DataTypes.CRS && field.isMandatory()) {
+                    if (params.getDynValue(field.getName()) == null) {
+                        params.setDynValue(field.getName(), proj);
+                    }
+                }
+            }
+
+            layerName =
+                ((FilesystemStoreParameters) params).getFile().getName();
+
+            this.doAddLayer(this.getMapCtrl(), layerName, params);
+        }
+    }
+
+    @Override
+    public void actionPerformed(ActionEvent e) {
+
+        String command = e.getActionCommand();
+        FilesystemStoreListModel model =
+            (FilesystemStoreListModel) getFileList().getModel();
+
+        if (command == EDIT_COMMAND) {
+            DynObject dynObject =
+                model.getDynObjectAt(getFileList().getSelectedIndex());
+
+            // For store parameters with a CRS field, add the current view
+            // CRS as default value when null.
+            try {
+                IProjection projection =
+                    (IProjection) dynObject.getDynValue("CRS");
+                if (projection == null) {
+                    projection = getDefaultProjection();
+                    dynObject.setDynValue("CRS", projection);
+                }
+            } catch (DynFieldNotFoundException e1) {
+                LOG.debug("Loading a store whose parameters "
+                    + "don't have a CRS field");
+            }
+
+            try {
+                DynObjectEditor editor = new DynObjectEditor(dynObject);
+                editor.editObject(true);
+            } catch (ServiceException ex) {
+                LOG.error(
+                    "Error creating a Swing component for the DynObject: "
+                        + dynObject, ex);
+            }
+
+        } else {
+            super.actionPerformed(e);
+        }
+    }
+
+    /**
+     * @return
+     */
+    private IProjection getDefaultProjection() {
+        return getMapCtrl().getViewPort().getProjection();
+    }
+
+    public static void main(String[] args) {
+        try {
+            new DefaultLibrariesInitializer().fullInitialize();
+
+            JFrame frame = new JFrame();
+
+            AddLayerDialog addLayerDlg = new AddLayerDialog();
+
+            FilesystemExplorerAddLayerWizardPanel wizardPanel =
+                new FilesystemExplorerAddLayerWizardPanel();
+            addLayerDlg.addWizardTab("File", wizardPanel);
+            wizardPanel.initWizard();
+
+            frame.setLayout(new BorderLayout());
+            frame.add(addLayerDlg);
+
+            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+            frame.setBounds(10, 10, 400, 400);
+            frame.setVisible(true);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            System.exit(-1);
+            return;
+        }
+    }
+
+    @Override
+    protected PrepareContext getPrepareDataStoreContext() {
+        if (this.prepareContext == null) {
+            this.prepareContext = new PrepareContextView() {
+
+                public Window getOwnerWindow() {
+                    return null;
+                }
+
+                public MapControl getMapControl() {
+                    return FilesystemExplorerAddLayerWizardPanel.this
+                        .getMapCtrl();
+                }
+
+				public IProjection getViewProjection() {
+					return getMapControl().getProjection();
+				}
+
+            };
+        }
+        return this.prepareContext;
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/fmap/dal/serverexplorer/filesystem/swing/FilesystemExplorerAddLayerWizardPanel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitializeApplicationExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitializeApplicationExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitializeApplicationExtension.java	(revision 38262)
@@ -0,0 +1,235 @@
+package org.gvsig.app.extension;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.PluginsLocator;
+import org.gvsig.andami.PluginsManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.project.documents.view.toolListeners.InfoListener;
+import org.gvsig.app.tools.swing.serv.field.crs.JCRSDynFieldComponentFactory;
+import org.gvsig.app.util.BaseOpenErrorHandler;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.OpenErrorHandler;
+import org.gvsig.fmap.dal.resource.ResourceManager;
+import org.gvsig.fmap.dal.resource.exception.DisposeResorceManagerException;
+import org.gvsig.installer.lib.api.InstallerLocator;
+import org.gvsig.installer.lib.api.InstallerManager;
+import org.gvsig.installer.lib.api.PackageInfo;
+import org.gvsig.tools.evaluator.sqljep.SQLJEPEvaluator;
+import org.gvsig.tools.service.spi.ServiceManager;
+import org.gvsig.tools.swing.spi.ToolsSwingServiceLocator;
+
+public class InitializeApplicationExtension extends Extension {
+    private static final Logger logger = LoggerFactory
+            .getLogger(InitializeApplicationExtension.class);
+//	private Observer dbPasswordResorceObserver;
+
+    private OpenErrorHandler openErrorHandler = null;
+
+	public void initialize() {
+
+		// Register default expression parser
+		DALLocator.getDataManager().registerDefaultEvaluator(
+				SQLJEPEvaluator.class);
+
+		InfoListener.initializeExtensionPoint();
+		// addToLogInfo();
+		registerIcons();
+	}
+	
+	public void postInitialize(){
+	    // Validate there is any implementation registered.
+        ServiceManager dsManager = ToolsSwingServiceLocator.getServiceManager();
+
+        openErrorHandler = new BaseOpenErrorHandler();
+        ApplicationLocator.getManager().getDataManager().setOpenErrorHandler(openErrorHandler);
+        
+        //CRS Definition
+        dsManager.addServiceFactory(new JCRSDynFieldComponentFactory());
+  
+		registerObservers();
+		
+		DALLocator.getResourceManager().startResourceCollector(
+				3 * (60 * 1000), // minutes --> miliseconds
+				null);
+
+	}
+	
+	private void registerObservers() {
+//		FIXME
+//		ResourceManager resMan = DALLocator.getResourceManager();//.getResource(PostgresqlStore.DATASTORE_NAME);
+//		dbPasswordResorceObserver = new DBResourceManager();
+//		resMan.addObserver(dbPasswordResorceObserver);
+	}
+
+	//Registro en esta extension los iconos que no se donde registrarlos.
+	private void registerIcons(){
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-add-event-layer",
+				this.getClass().getClassLoader().getResource("images/addeventtheme.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"gvsig-logo-icon",
+				this.getClass().getClassLoader().getResource("images/icon_gvsig.png")
+			);
+
+
+
+		PluginServices.getIconTheme().registerDefault(
+				"mapa-icono",
+				this.getClass().getClassLoader().getResource("images/mapas.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"layout-insert-view",
+				this.getClass().getClassLoader().getResource("images/MapaVista.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"vista-icono",
+				this.getClass().getClassLoader().getResource("images/Vista.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"hand-icono",
+				this.getClass().getClassLoader().getResource("images/Hand.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"add-layer-icono",
+				this.getClass().getClassLoader().getResource("images/add-layer.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"delete-icono",
+				this.getClass().getClassLoader().getResource("images/delete.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"arrow-up-icono",
+				this.getClass().getClassLoader().getResource("images/up-arrow.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"arrow-down-icono",
+				this.getClass().getClassLoader().getResource("images/down-arrow.png")
+			);
+//		PluginServices.getIconTheme().register(
+//				"arrow-down-icono",
+//				PrintPropertiesPage.class.getClassLoader().getResource("images/prepare-page.png")
+//			);
+		PluginServices.getIconTheme().registerDefault(
+            "editdelete-icon",
+            this.getClass().getClassLoader().getResource("images/editdelete.png")
+        );
+
+	}
+
+	public void execute(String actionCommand) {
+
+	}
+
+	public boolean isEnabled() {
+		return false;
+	}
+
+	public boolean isVisible() {
+		return false;
+	}
+
+	private void addToLogInfo() {
+		String info[] = this.getStringInfo().split("\n");
+		for (int i=0;i< info.length;i++) {
+			logger.info(info[i]);
+		}
+	}
+
+	public String getStringInfo() {
+		ApplicationManager application = ApplicationLocator.getManager();
+		PluginsManager pluginmgr = PluginsLocator.getManager();
+		InstallerManager installmgr = InstallerLocator.getInstallerManager();
+
+		StringWriter writer = new StringWriter();
+
+		Properties props = System.getProperties();
+
+		// OS information
+		String osName = props.getProperty("os.name");
+		writer.write("OS\n");
+		writer.write("    name   : " + osName + "\n");
+		writer.write("    arch   : " + props.get("os.arch") + "\n");
+		writer.write("    version: " + props.get("os.version") + "\n");
+		if (osName.startsWith("Linux")) {
+			try {
+				String[] command = {"lsb_release", "-a"};
+				Process p = Runtime.getRuntime().exec(command);
+				InputStream is = p.getInputStream();
+				BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+				String line;
+				while ( (line = reader.readLine()) != null) {
+					writer.write("    "+line+"\n");
+				}
+			} catch (Exception ex) {
+				writer.write("Can't get detailled os information (lsb_release -a).");
+			}
+		}
+
+		// JRE information
+		writer.write("JRE\n");
+		writer.write("    vendor : " + props.get("java.vendor") + "\n");
+		writer.write("    version: " +props.get("java.version")+ "\n");
+		writer.write("    home   : " + props.get("java.home") + "\n");
+		
+
+		writer.write("gvSIG\n");
+		writer.write("    version                 : " + application.getVersion().getLongFormat() + "\n");
+		writer.write("    locale language         : " + application.getLocaleLanguage()+ "\n");
+		writer.write("    application forlder     : " + pluginmgr.getApplicationFolder()+ "\n");
+		writer.write("    install forlder         : " + pluginmgr.getInstallFolder()+ "\n");
+		writer.write("    application home forlder: " + pluginmgr.getApplicationHomeFolder()+ "\n");
+		writer.write("    plugins forlder         : " + pluginmgr.getPluginsFolder()+ "\n");
+		
+		try {
+			PackageInfo[] pkgs = installmgr.getInstalledPackages(pluginmgr.getPluginsFolder());
+			writer.write("Installed packages\n");
+			for( int i=0; i<pkgs.length; i++) {
+				writer.write("    ");
+				writer.write(pkgs[i].toStringCompact());
+				writer.write("\n");
+			}
+		} catch(Throwable e) {
+			writer.write("Can't get installed package information.");
+		}
+		return writer.toString();
+	}
+
+	public void terminate() {
+		// XXX: Need a TerminateApplicationExtension ???
+		ResourceManager resMan = DALLocator.getResourceManager();
+		resMan.stopResourceCollector();
+		try {
+			resMan.dispose();
+		} catch (DisposeResorceManagerException e) {
+			logger.error("Exceptions at dispose Resource Manager", e);
+		}
+
+		super.terminate();
+//		try {
+//			LayerFactory.getDataSourceFactory().finalizeThis();
+//		} catch (Exception e) {
+//			//e.printStackTrace();
+//		}
+
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitializeApplicationExtension.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/BasicSymbologyExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/BasicSymbologyExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/BasicSymbologyExtension.java	(revision 38262)
@@ -0,0 +1,245 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id: AdvancedSymbologyExtension.java 16205 2007-11-08 16:33:35Z jdominguez $
+* $Log: AdvancedSymbologyExtension.java,v $
+* Revision 1.12  2007/09/19 15:34:59  jaume
+* removed unnecessary imports
+*
+* Revision 1.11  2007/09/17 09:11:28  jaume
+* order of the elements inverted
+*
+* Revision 1.10  2007/09/13 11:37:09  jvidal
+* *** empty log message ***
+*
+* Revision 1.9  2007/09/04 10:53:10  caballero
+* show page
+*
+* Revision 1.8  2007/08/09 10:39:04  jaume
+* first round of found bugs fixed
+*
+* Revision 1.7  2007/08/01 13:03:31  jaume
+* plugable symbol editor
+*
+* Revision 1.6  2007/05/22 12:17:12  jaume
+* *** empty log message ***
+*
+* Revision 1.5  2007/05/17 09:32:37  jaume
+* *** empty log message ***
+*
+* Revision 1.4  2007/03/21 08:03:03  jaume
+* refactored to use ISymbol instead of FSymbol
+*
+* Revision 1.3  2007/03/13 16:57:35  jaume
+* Added MultiVariable legend
+*
+* Revision 1.2  2007/03/09 11:25:00  jaume
+* Advanced symbology (start committing)
+*
+* Revision 1.1.2.4  2007/02/21 07:35:14  jaume
+* *** empty log message ***
+*
+* Revision 1.1.2.3  2007/02/12 15:14:41  jaume
+* refactored interval legend and added graduated symbol legend
+*
+* Revision 1.1.2.2  2007/02/01 17:47:12  jaume
+* *** empty log message ***
+*
+* Revision 1.1.2.1  2007/02/01 12:12:41  jaume
+* theme manager window and all its components are now dynamic
+*
+*/
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.preferences.IPreference;
+import org.gvsig.andami.preferences.IPreferenceExtension;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.gui.preferencespage.CartographicSupportPage;
+import org.gvsig.app.gui.preferencespage.SymbologyPage;
+import org.gvsig.app.gui.styling.MarkerFill;
+import org.gvsig.app.gui.styling.PictureFill;
+import org.gvsig.app.gui.styling.PictureLine;
+import org.gvsig.app.gui.styling.PictureMarker;
+import org.gvsig.app.gui.styling.SimpleFill;
+import org.gvsig.app.gui.styling.SimpleLine;
+import org.gvsig.app.gui.styling.SimpleMarker;
+import org.gvsig.app.gui.styling.SimpleText;
+import org.gvsig.app.gui.styling.SymbolEditor;
+import org.gvsig.app.project.documents.view.legend.gui.AttrInTableLabeling;
+import org.gvsig.app.project.documents.view.legend.gui.Categories;
+import org.gvsig.app.project.documents.view.legend.gui.Features;
+import org.gvsig.app.project.documents.view.legend.gui.General;
+import org.gvsig.app.project.documents.view.legend.gui.LabelingManager;
+import org.gvsig.app.project.documents.view.legend.gui.LegendManager;
+import org.gvsig.app.project.documents.view.legend.gui.MultipleAttributes;
+import org.gvsig.app.project.documents.view.legend.gui.Quantities;
+import org.gvsig.app.project.documents.view.legend.gui.SingleSymbol;
+import org.gvsig.app.project.documents.view.legend.gui.ThemeManagerWindow;
+import org.gvsig.app.project.documents.view.legend.gui.VectorialInterval;
+import org.gvsig.app.project.documents.view.legend.gui.VectorialUniqueValue;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.symbology.swing.SymbologySwingLocator;
+
+/**
+ * Extension for enable the symbology. It only installs the core symbology.
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ *
+ */
+public class BasicSymbologyExtension extends Extension implements IPreferenceExtension{
+//	private SymbologyLibrary simbologyLibrary;	
+//	private SymbologyDefaultImplLibrary simbologyDefaultImplLibrary;
+
+	public void initialize() {
+//		// Simbology initialization
+//		simbologyLibrary = new SymbologyLibrary();
+//		simbologyLibrary.initialize();
+//		
+//		simbologyDefaultImplLibrary = new SymbologyDefaultImplLibrary();
+//		simbologyDefaultImplLibrary.initialize();
+		
+		// Install required features
+
+		// modules for symbol editor
+		SymbolEditor.addSymbolEditorPanel(SimpleFill.class, Geometry.TYPES.SURFACE);
+		SymbolEditor.addSymbolEditorPanel(SimpleMarker.class, Geometry.TYPES.POINT);
+		SymbolEditor.addSymbolEditorPanel(SimpleLine.class, Geometry.TYPES.CURVE);
+		SymbolEditor.addSymbolEditorPanel(SimpleFill.class, Geometry.TYPES.MULTISURFACE);
+		SymbolEditor.addSymbolEditorPanel(SimpleMarker.class, Geometry.TYPES.MULTIPOINT);
+		SymbolEditor.addSymbolEditorPanel(SimpleLine.class, Geometry.TYPES.MULTICURVE);
+		
+		//FIXME 
+		SymbolEditor.addSymbolEditorPanel(PictureMarker.class, Geometry.TYPES.POINT);
+		SymbolEditor.addSymbolEditorPanel(PictureLine.class, Geometry.TYPES.CURVE);
+		SymbolEditor.addSymbolEditorPanel(PictureFill.class, Geometry.TYPES.SURFACE);
+		SymbolEditor.addSymbolEditorPanel(MarkerFill.class, Geometry.TYPES.SURFACE);
+
+		SymbolEditor.addSymbolEditorPanel(PictureMarker.class, Geometry.TYPES.MULTIPOINT);
+		SymbolEditor.addSymbolEditorPanel(PictureLine.class, Geometry.TYPES.MULTICURVE);
+		SymbolEditor.addSymbolEditorPanel(PictureFill.class, Geometry.TYPES.MULTISURFACE);
+		SymbolEditor.addSymbolEditorPanel(MarkerFill.class, Geometry.TYPES.MULTISURFACE);
+
+		// pages
+		ThemeManagerWindow.addPage(General.class);
+		ThemeManagerWindow.addPage(LegendManager.class);
+		ThemeManagerWindow.addPage(LabelingManager.class);
+
+		ThemeManagerWindow.setTabEnabledForLayer(General.class, FLyrVect.class, true);
+		ThemeManagerWindow.setTabEnabledForLayer(LegendManager.class, FLyrVect.class, true);
+		ThemeManagerWindow.setTabEnabledForLayer(LabelingManager.class, FLyrVect.class, true);
+		// labeling strategies (inverse order to the wanted to be shown)
+		LabelingManager.addLabelingStrategy(AttrInTableLabeling.class);
+
+		// legends available in the legend page
+		LegendManager.addLegendPage(Quantities.class);
+		LegendManager.addLegendPage(Features.class);
+		LegendManager.addLegendPage(Categories.class);
+		LegendManager.addLegendPage(MultipleAttributes.class);
+
+		LegendManager.addLegendPage(SingleSymbol.class);
+		LegendManager.addLegendPage(VectorialInterval.class);
+		LegendManager.addLegendPage(VectorialUniqueValue.class);
+
+//		LegendManager.addLegendDriver(FMapGVLDriver.class);
+		registerIcons();
+	}
+	
+	@Override
+	public void postInitialize() {
+		super.postInitialize();
+		
+		SymbologySwingLocator.getSwingManager().setColorTablesFactory(
+				ApplicationLocator.getManager().getColorTablesFactory());
+		
+		
+//		simbologyLibrary.postInitialize();
+//		simbologyDefaultImplLibrary.postInitialize();
+	}
+
+	private void registerIcons(){
+		PluginServices.getIconTheme().registerDefault(
+				"chain",
+				this.getClass().getClassLoader().getResource("images/chain.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"broken-chain",
+				this.getClass().getClassLoader().getResource("images/broken-chain.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"underline-icon",
+				this.getClass().getClassLoader().getResource("images/underlined.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"italic-icon",
+				this.getClass().getClassLoader().getResource("images/italic.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"bold-icon",
+				this.getClass().getClassLoader().getResource("images/bold.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"symbol-pref",
+				this.getClass().getClassLoader().getResource("images/QuantitiesByCategory.png"));
+
+	}
+
+	public void execute(String actionCommand) {
+
+	}
+
+	public boolean isEnabled() {
+		return true; // or whatever
+	}
+
+	public boolean isVisible() {
+		return true; // or whatever
+	}
+
+	public IPreference[] getPreferencesPages() {
+		return new IPreference[] {
+			new CartographicSupportPage(), new SymbologyPage()
+		};
+	}
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewPropertiesExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewPropertiesExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewPropertiesExtension.java	(revision 38262)
@@ -0,0 +1,139 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.preferences.IPreference;
+import org.gvsig.andami.preferences.IPreferenceExtension;
+import org.gvsig.app.gui.preferencespage.ViewBehaviorPage;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.DefaultViewDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.app.project.documents.view.gui.ViewProperties;
+
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ViewPropertiesExtension extends Extension implements IPreferenceExtension {
+	private ViewBehaviorPage vb = new ViewBehaviorPage();
+    public void initialize() {
+    }
+
+    public void execute(String s) {
+        DefaultViewPanel vista = (DefaultViewPanel) PluginServices.getMDIManager().getActiveWindow();
+        ViewDocument model = vista.getModel();
+
+        if (s.compareTo("PROPERTIES") == 0) {
+        	DefaultViewDocument viewModel = (DefaultViewDocument)model;
+        	if (viewModel != null) {
+              ViewProperties viewProperties = new ViewProperties(viewModel);
+              PluginServices.getMDIManager().addWindow(viewProperties);
+              if (viewProperties.isAcceppted()) {
+            	  viewModel.setModified(true);
+              }
+        	}
+        }
+    }
+
+     public boolean isEnabled() {
+        return true;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public boolean isVisible() {
+        org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+                                                             .getActiveWindow();
+        return (f!=null && f instanceof DefaultViewPanel);
+    }
+
+    public IPreference[] getPreferencesPages() {
+    	return new IPreference[] {vb};
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewPropertiesExtension.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomToSelectExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomToSelectExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomToSelectExtension.java	(revision 38262)
@@ -0,0 +1,149 @@
+/*
+ * Created on 31-may-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.tools.exception.BaseException;
+
+
+
+/**
+ * Extensi�n de zoom a lo seleccionado teniendo como ventana activa una vista.
+ * 
+ * @author Vicente Caballero Navarro
+ */
+public class ZoomToSelectExtension extends Extension {
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
+	 */
+	public void execute(String s) {
+		org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+		 	.getActiveWindow();
+		MapContext mapa = null;
+		Envelope selectedExtent = null;
+		if (f instanceof DefaultViewPanel) {
+			DefaultViewPanel vista = (DefaultViewPanel)f;
+			mapa = vista.getModel().getMapContext();
+		}
+		try {
+			selectedExtent = mapa.getSelectionBounds();
+			mapa.getViewPort().setEnvelope(selectedExtent);
+		} catch (BaseException e) {
+			NotificationManager.addError(e);
+		}
+
+		//if (selectedExtent != null) {
+			//Envelope env=new DefaultEnvelope(2,new double[]{selectedExtent.getX(),selectedExtent.getY()},new double[]{selectedExtent.getMaxX(),selectedExtent.getMaxY()});
+			//((ProjectDocument) vista.getModel()).setModified(true);
+
+		//}
+
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		org.gvsig.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager().getActiveWindow();
+		if (window != null && window instanceof DefaultViewPanel) {
+			MapContext mapa = ((DefaultViewPanel) window).getModel().getMapContext();
+			return mapa.getLayers().getLayersCount() > 0;
+		}
+		return false;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+		 	.getActiveWindow();
+		if (f == null) {
+			return false;
+		}
+		if (f instanceof DefaultViewPanel) {
+			DefaultViewPanel view = (DefaultViewPanel) f;
+			FLayer[] selected = view.getModel().getMapContext().getLayers().getActives();
+			if (selected.length == 1 && selected[0] instanceof FLyrVect && selected[0].isAvailable()){
+				try {
+					if (!((FLyrVect) selected[0]).getFeatureStore()
+							.getFeatureSelection().isEmpty()) {
+						return true;
+					}
+				} catch (DataException e) {
+					NotificationManager.addError(e);
+					return false;
+				}
+			}
+        }
+
+
+		return false;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+		registerIcons();
+	}
+
+	private void registerIcons(){
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-to-seleccion",
+				this.getClass().getClassLoader().getResource("images/ZoomSeleccion.png")
+			);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomToSelectExtension.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/AddLayer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/AddLayer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/AddLayer.java	(revision 38262)
@@ -0,0 +1,275 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+package org.gvsig.app.extension;
+
+import java.awt.Component;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+
+import javax.swing.JOptionPane;
+
+import org.cresques.cts.ICoordTrans;
+import org.cresques.cts.IProjection;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.addlayer.AddLayerDialog;
+import org.gvsig.app.gui.WizardPanel;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
+import org.gvsig.app.project.documents.view.gui.IView;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.swing.FilesystemExplorerAddLayerWizardPanel;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontrol.MapControl;
+
+
+
+/**
+ * Extensi�n que abre un di�logo para seleccionar la capa o capas que se quieren
+ * a�adir a la vista.
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class AddLayer extends Extension {
+	public AddLayerDialog fopen = null;
+
+	private static ArrayList<Class<? extends WizardPanel>> wizardStack = null;
+
+	static {
+		AddLayer.wizardStack = new ArrayList<Class<? extends WizardPanel>>();
+		// A�adimos el panel al wizard de cargar capa. (Esto es temporal hasta que
+    // el actual sea totalmente extensible)
+		//		AddLayer.addWizard(FileOpenWizard.class);
+		AddLayer.addWizard(FilesystemExplorerAddLayerWizardPanel.class);
+	}
+
+	public static void addWizard(Class<? extends WizardPanel> wpClass) {
+		AddLayer.wizardStack.add(wpClass);
+	}
+
+	private static WizardPanel getInstance(int i, MapControl mapControl)
+			throws IllegalArgumentException, SecurityException,
+			InstantiationException, IllegalAccessException,
+			InvocationTargetException, NoSuchMethodException {
+		Class<? extends WizardPanel> wpClass = AddLayer.wizardStack.get(i);
+		Object[] params = {};
+		WizardPanel wp = wpClass.getConstructor()
+				.newInstance(params);
+		wp.setMapCtrl(mapControl);
+		wp.initWizard();
+
+		return wp;
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		org.gvsig.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager()
+															 .getActiveWindow();
+
+		if (window == null) {
+			return false;
+		}
+
+		// Any view derived from BaseView should have AddLayer available
+
+		IView view;
+		try {
+			view = (IView)window;
+		}
+		catch (ClassCastException e) {
+		    return false;
+		}
+
+		if (view == null) {
+			return false;
+		}
+
+		AbstractViewPanel baseView = (AbstractViewPanel)view;
+		return (baseView != null);
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#postInitialize()
+	 */
+	public void postInitialize() {
+//		LayerFactory.initialize();
+//		DriverManager dm=LayerFactory.getDM();
+//		PluginServices.addLoaders(dm.getDriverClassLoaders());
+//		WriterManager wm=LayerFactory.getWM();
+//		PluginServices.addLoaders(wm.getWriterClassLoaders());
+
+		//		ToolsLocator.getExtensionPointManager().add("FileExtendingOpenDialog",
+		//				"").append("FileOpenVectorial", "", VectorialFileOpen.class);
+	}
+
+	public static void checkProjection(FLayer lyr, ViewPort viewPort) {
+		if (lyr instanceof FLayers){
+			FLayers layers=(FLayers)lyr;
+			for (int i=0;i<layers.getLayersCount();i++){
+				checkProjection(layers.getLayer(i),viewPort);
+			}
+		}
+		if (lyr instanceof FLyrVect) {
+			FLyrVect lyrVect = (FLyrVect) lyr;
+			IProjection proj = lyr.getProjection();
+			// Comprobar que la projecci�n es la misma que la vista
+			if (proj == null) {
+				// SUPONEMOS que la capa est� en la proyecci�n que
+				// estamos pidiendo (que ya es mucho suponer, ya).
+				lyrVect.setProjection(viewPort.getProjection());
+				return;
+			}
+			int option = JOptionPane.YES_OPTION;
+			if (proj != viewPort.getProjection()) {
+				option = JOptionPane.showConfirmDialog((Component)PluginServices.getMainFrame(), PluginServices
+						.getText(AddLayer.class, "reproyectar_aviso")+"\n"+ PluginServices.getText(AddLayer.class,"Capa")+": "+lyrVect.getName(), PluginServices
+						.getText(AddLayer.class, "reproyectar_pregunta"),
+						JOptionPane.YES_NO_OPTION);
+
+				if (option != JOptionPane.OK_OPTION) {
+					return;
+				}
+
+				ICoordTrans ct = proj.getCT(viewPort.getProjection());
+				lyrVect.setCoordTrans(ct);
+				System.err.println("coordTrans = " + proj.getAbrev() + " "
+						+ viewPort.getProjection().getAbrev());
+			}
+		}
+
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
+	 */
+	public void execute(String actionCommand) {
+		// Project project = ((ProjectExtension)
+		// PluginServices.getExtension(ProjectExtension.class)).getProject();
+		AbstractViewPanel theView = (AbstractViewPanel) PluginServices.getMDIManager().getActiveWindow();
+		MapControl mapControl=theView.getMapControl();
+		this.addLayers(mapControl);
+		mapControl.getMapContext().callLegendChanged();
+		((AbstractDocument)theView.getModel()).setModified(true);
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		return true;
+	}
+
+	/**
+	 * Creates FOpenDialog, and adds file tab, and additional registered tabs
+	 *
+	 * @return FOpenDialog
+	 */
+    private AddLayerDialog createFOpenDialog(MapControl mapControl) {
+		fopen = new AddLayerDialog();
+
+		// after that, all registerez tabs (wizardpanels implementations)
+		for (int i = 0; i < wizardStack.size(); i++) {
+			WizardPanel wp;
+			try {
+				wp = AddLayer.getInstance(i, mapControl);
+                
+				fopen.addWizardTab(wp.getTabName(), wp);
+			} catch (IllegalArgumentException e) {
+				e.printStackTrace();
+			} catch (SecurityException e) {
+				e.printStackTrace();
+			} catch (InstantiationException e) {
+				e.printStackTrace();
+			} catch (IllegalAccessException e) {
+				e.printStackTrace();
+			} catch (InvocationTargetException e) {
+				e.printStackTrace();
+			} catch (NoSuchMethodException e) {
+				e.printStackTrace();
+			}
+		}// for
+		return fopen;
+	}
+
+	/**
+	 * Adds to mapcontrol all layers selected by user in the specified WizardPanel.
+	 *
+	 * @param mapControl
+	 * 	MapControl on which we want to load user selected layers.
+	 * @param wizardPanel
+	 * 	WizardPanel where user selected the layers to load
+	 * @return
+	 */
+	private boolean loadGenericWizardPanelLayers(MapControl mapControl, WizardPanel wp) {
+		wp.setMapCtrl(mapControl);
+		wp.execute();
+		return true;
+	}
+
+	/**
+	 * Abre dialogo para a�adir capas y las a�ade en mapControl
+	 *
+	 * Devuelve true si se han a�adido capas.
+	 */
+	public boolean addLayers(MapControl mapControl) {
+		// create and show the modal fopen dialog
+        fopen = createFOpenDialog(mapControl);
+		PluginServices.getMDIManager().addWindow(fopen);
+
+		if (fopen.isAccepted()) {
+				if (fopen.getSelectedTab() instanceof WizardPanel) {
+				WizardPanel wp = (WizardPanel) fopen.getSelectedTab();
+				return loadGenericWizardPanelLayers(mapControl, wp);
+			} else {
+				JOptionPane.showMessageDialog((Component) PluginServices
+						.getMainFrame(), PluginServices.getText(this,"ninguna_capa_seleccionada"));
+			}
+		}
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+		//Listener para resolver un FileDriverNotFoundException
+//		LayerFactory.addSolveErrorForLayer(FileNotFoundDriverException.class,new FileNotFoundSolve());
+
+
+
+		//		Register.selfRegister();
+		//		org.gvsig.fmap.data.feature.file.dgn.Register.selfRegister();
+		//		org.gvsig.fmap.data.feature.file.dgn.operation.Register.selfRegister();
+		//		org.gvsig.fmap.data.feature.file.dxf.Register.selfRegister();
+		//		org.gvsig.fmap.data.feature.file.dxf.operation.Register.selfRegister();
+		//		org.gvsig.fmap.data.feature.file.shp.Register.selfRegister();
+		//		org.gvsig.fmap.data.feature.db.jdbc.postgresql.Register.selfRegister();
+		//		org.gvsig.fmap.data.feature.db.jdbc.h2.Register.selfRegister();
+		PluginServices.getIconTheme().registerDefault(
+				"layer-add",
+				this.getClass().getClassLoader().getResource("images/addlayer.png")
+			);
+
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/AddLayer.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Version.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Version.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Version.java	(revision 38262)
@@ -0,0 +1,128 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.app.extension;
+
+import java.util.StringTokenizer;
+
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.installer.lib.api.InstallerLocator;
+import org.gvsig.installer.lib.api.PackageInfo;
+import org.gvsig.installer.lib.api.creation.MakePluginPackageService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * gvSIG application version information.
+ * 
+ * @author gvSIG Team
+ * @version $Id$
+ */
+public class Version {
+
+    private static final Logger LOG = LoggerFactory.getLogger(Version.class);
+    private static final String APP_PACKAGE_CODE = "org.gvsig.app";
+
+    private int majorVersionNumber;
+    private int minorVersionNumber;
+    private int releaseNumber;
+
+    private String buildNumber = "unknown";
+
+    @Deprecated
+    public static String format() {
+        return ApplicationLocator.getManager().getVersion().getFormat();
+    }
+
+    @Deprecated
+    public static String longFormat() {
+        return ApplicationLocator.getManager().getVersion().getLongFormat();
+    }
+
+    @Deprecated
+    public static String getBuild() {
+        return ApplicationLocator.getManager().getVersion().getBuildId();
+    }
+
+    /**
+     * Constructor.
+     * Loads version information from the application installation information.
+     */
+    public Version() {
+        String[] versions = new String[] { "2", "0", "0" };
+        try {
+            MakePluginPackageService packageService =
+                InstallerLocator.getInstallerManager()
+                    .getMakePluginPackageService();
+
+            PackageInfo info =
+                packageService.getPluginPackageInfo(APP_PACKAGE_CODE);
+
+            String version = info.getGvSIGVersion();
+
+            StringTokenizer tokens = new StringTokenizer(version, ".");
+            int i = 0;
+            while (tokens.hasMoreTokens() && i < 3) {
+                versions[i] = tokens.nextToken();
+                i++;
+            }
+            this.buildNumber = Integer.toString(info.getBuild());
+
+        } catch (Exception e) {
+            LOG.error("Error getting version information through "
+                + "the InstallManager", e);
+        }
+
+        this.majorVersionNumber = Integer.parseInt(versions[0]);
+        this.minorVersionNumber = Integer.parseInt(versions[1]);
+        this.releaseNumber = Integer.parseInt(versions[2]);
+        
+        LOG.debug("Loaded version information: {}", getLongFormat());
+    }
+
+    public int getMinor() {
+        return minorVersionNumber;
+    }
+
+    public int getMajor() {
+        return majorVersionNumber;
+    }
+
+    public int getRelease() {
+        return releaseNumber;
+    }
+
+    public String getBuildId() {
+        return buildNumber;
+    }
+
+    public String toString() {
+        return getLongFormat();
+    }
+
+    public String getFormat() {
+        return getMajor() + "." + getMinor() + "." + getRelease();
+    }
+
+    public String getLongFormat() {
+        return getFormat() + " (Build " + getBuildId() + ")";
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Version.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InfoToolExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InfoToolExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InfoToolExtension.java	(revision 38262)
@@ -0,0 +1,134 @@
+/*
+ * Created on 20-feb-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.project.documents.view.gui.IView;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontrol.MapControl;
+
+
+
+/**
+ * Extension that handles the info by point tool for a selected layer set
+ * @author laura
+ */
+public class InfoToolExtension extends Extension {
+    private static final Logger logger = LoggerFactory
+            .getLogger(InfoToolExtension.class);
+
+    public void initialize() {
+        registerIcons();
+    }
+
+    private void registerIcons(){
+        PluginServices.getIconTheme().registerDefault(
+                "view-query-information",
+                InfoToolExtension.class.getClassLoader().getResource("images/Identify.png")
+        );
+    }
+
+	public void execute(String s) {
+        logger.debug("Comand : " + s);
+
+        IWindow window = ApplicationLocator.getManager().getActiveWindow();
+        if( window instanceof IView ) {
+            IView view = (IView) window;
+    		MapControl mapCtrl = view.getMapControl();
+    
+    		if (s.compareTo("INFO") == 0) {
+    			mapCtrl.setTool("info");
+    			view.getDocument().setModified(true);
+    		}
+        }
+	}
+
+	public boolean isEnabled() {
+        IWindow window = ApplicationLocator.getManager().getActiveWindow();
+
+        if (window == null) {
+			return false;
+		}
+
+		if (window instanceof IView) {
+			IView view = (IView) window;
+			MapContext mapa = view.getViewDocument().getMapContext();
+
+			FLayer[] layers =mapa.getLayers().getActives();
+			for (int i=0;i<layers.length;i++) {
+				if (layers[i].isAvailable()) {
+				    return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	public boolean isVisible() {
+        IWindow window = ApplicationLocator.getManager().getActiveWindow();
+
+        if (window == null) {
+            return false;
+        }
+
+        if (window instanceof IView) {
+            IView view = (IView) window;
+            MapContext mapa = view.getViewDocument().getMapContext();
+			return mapa.getLayers().getLayersCount() > 0;
+		} else {
+			return false;
+		}
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InfoToolExtension.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/dispose/DisposableManagementExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/dispose/DisposableManagementExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/dispose/DisposableManagementExtension.java	(revision 38262)
@@ -0,0 +1,118 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {}  {{Task}}
+ */
+package org.gvsig.app.extension.dispose;
+
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dispose.Disposable;
+import org.gvsig.tools.dispose.DisposableInfo;
+import org.gvsig.tools.dispose.DisposableManager;
+import org.gvsig.tools.exception.BaseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * An extension to view and manage {@link Disposable} objects which are still
+ * bound.
+ * 
+ * TODO: remove this extension and replace with a better one, maybe based on
+ * scripting.
+ * 
+ * @author 2009- <a href="cordinyana@gvsig.org">C�sar Ordi�ana</a> - gvSIG team
+ */
+public class DisposableManagementExtension extends Extension {
+
+	public static String SHOW_COMMAND = "show";
+	public static String DISPOSE_ALL_COMMAND = "releaseAll";
+
+	private static final Logger LOG =
+			LoggerFactory.getLogger(DisposableManagementExtension.class);
+
+	private DisposableManager manager;
+
+	public void initialize() {
+		// Nothing to do
+	}
+
+	@Override
+	public void postInitialize() {
+		super.postInitialize();
+		manager = ToolsLocator.getDisposableManager();
+	}
+
+	public void execute(String actionCommand) {
+		if (DISPOSE_ALL_COMMAND.equals(actionCommand)) {
+			disposeAll();
+		} else {
+			showDisposables();
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	private void showDisposables() {
+		Set<DisposableInfo> disposables =
+				(Set<DisposableInfo>) manager.getBoundDisposables();
+
+		String message;
+		if (disposables.size() < 1) {
+			message = "There aren't any bound Disposables actually";
+		} else {
+			LOG.info("Disposable infos with stack trace:");
+			StringBuffer buffer = new StringBuffer();
+			int i = 1;
+			for (Iterator<DisposableInfo> iterator = disposables.iterator(); iterator.hasNext();) {
+				DisposableInfo disposableInfo = iterator.next();
+				buffer.append(i++).append(": ").append(
+						disposableInfo.getDisposable()).append('\n');
+				LOG.info("\n" + disposableInfo.toString());
+			}
+			message = buffer.toString();
+		}
+		JOptionPane.showMessageDialog(null, message);
+	}
+
+	private void disposeAll() {
+		try {
+			manager.releaseAll();
+		} catch (BaseException ex) {
+			LOG.error("Error disposing all bound disposable objects", ex);
+		}
+	}
+
+	public boolean isEnabled() {
+		return true;
+	}
+
+	public boolean isVisible() {
+		return true;
+	}
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/RestoreViewInfoExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/RestoreViewInfoExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/RestoreViewInfoExtension.java	(revision 38262)
@@ -0,0 +1,98 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+*
+* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+*
+* For more information, contact:
+*
+*  Generalitat Valenciana
+*   Conselleria d'Infraestructures i Transport
+*   Av. Blasco Ib��ez, 50
+*   46010 VALENCIA
+*   SPAIN
+*
+*      +34 963862235
+*   gvsig@gva.es
+*      www.gvsig.gva.es
+*
+*    or
+*
+*   IVER T.I. S.A
+*   Salamanca 50
+*   46005 Valencia
+*   Spain
+*
+*   +34 963163400
+*   dac@iver.es
+*/
+package org.gvsig.app.extension;
+
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.IWindowTransform;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+public class RestoreViewInfoExtension extends Extension{
+    private static final Logger logger = LoggerFactory
+            .getLogger(RestoreViewInfoExtension.class);
+    
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
+	 */
+	public void execute(String s) {
+		IWindow view = PluginServices.getMDIManager().getFocusWindow();
+        if (s.equals("RESTORE")){
+        	IWindowTransform vt=(IWindowTransform)view;
+        	vt.restore();
+        }
+        PluginServices.getMainFrame().enableControls();
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+       return true;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		IWindow f = PluginServices.getMDIManager().getFocusWindow();
+		if (f == null) {
+			return false;
+		}
+		if (f instanceof IWindowTransform) {
+			IWindowTransform vt=(IWindowTransform)f;
+			if (vt.isPalette())
+				return true;
+		}
+		return false;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/RestoreViewInfoExtension.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ClearSelectionExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ClearSelectionExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ClearSelectionExtension.java	(revision 38262)
@@ -0,0 +1,198 @@
+/*
+ * Created on 31-may-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontrol.MapControl;
+
+
+
+/**
+ * Extensi�n encargada de limpiar la selecci�n.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ClearSelectionExtension extends Extension {
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
+	 */
+	public void execute(String s) {
+		if (s.compareTo("DEL_SELECTION") == 0) {
+			boolean refresh = false;
+			org.gvsig.andami.ui.mdiManager.IWindow view =PluginServices.getMDIManager().getActiveWindow();
+
+			if (view instanceof AbstractViewPanel){
+				AbstractViewPanel vista = (AbstractViewPanel) view;
+				ViewDocument model = vista.getModel();
+				MapContext mapa = model.getMapContext();
+				MapControl mapCtrl = vista.getMapControl();
+				FLayers layers = mapa.getLayers();
+				refresh = clearSelectionOfView(layers);
+
+				if (refresh) {
+					mapCtrl.drawMap(false);
+				}
+				((AbstractDocument)vista.getModel()).setModified(true);
+			}
+        }
+    }
+
+
+	private boolean clearSelectionOfView(FLayers layers){
+		boolean refresh=false;
+
+		for (int i = 0; i < layers.getLayersCount(); i++) {
+			FLayer lyr =layers.getLayer(i);
+			if (lyr instanceof FLayers){
+				refresh = refresh || clearSelectionOfView((FLayers) lyr);
+			} else if (lyr instanceof FLyrVect) {
+				FLyrVect lyrVect = (FLyrVect) lyr;
+				if (lyrVect.isActive()) {
+					try {
+						FeatureStore featureStore;
+
+						featureStore = ((FLyrVect)lyr).getFeatureStore();
+						if (featureStore.getFeatureSelection().getSize() != 0) {
+							refresh = true;
+						}
+				        featureStore.getFeatureSelection().deselectAll();
+					} catch (ReadException e) {
+						e.printStackTrace();
+					} catch (DataException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+				}
+			}
+		}
+		return refresh;
+	}
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		org.gvsig.andami.ui.mdiManager.IWindow view = PluginServices.getMDIManager().getActiveWindow();
+
+		if (view == null) {
+			return false;
+		}
+		if (view instanceof AbstractViewPanel) {
+			MapContext mapa = ((AbstractViewPanel) view).getModel().getMapContext();
+			return mapa.getLayers().getLayersCount() > 0;
+		}
+
+		return false;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		org.gvsig.andami.ui.mdiManager.IWindow view = PluginServices.getMDIManager().getActiveWindow();
+		if (view == null) {
+			return false;
+		}
+		if (view instanceof AbstractViewPanel){
+			MapContext mapa = ((AbstractViewPanel) view).getMapControl().getMapContext();
+			return hasVectorLayersWithSelection(mapa.getLayers());
+		}
+		return false;
+	}
+
+	private boolean hasVectorLayersWithSelection(FLayers layers) {
+		for (int i = 0; i < layers.getLayersCount(); i++) {
+			FLayer lyr =layers.getLayer(i);
+			if (lyr instanceof FLayers){
+				if (hasVectorLayersWithSelection((FLayers) lyr)){
+					return true;
+				}
+			} else if (lyr instanceof FLyrVect) {
+				FLyrVect lyrVect = (FLyrVect) lyr;
+				if (lyrVect.isActive()) {
+					if (lyrVect.isAvailable()){
+						try {
+							if (lyrVect.getFeatureStore().getFeatureSelection()
+									.getSize() > 0) {
+								return true;
+							}
+						} catch (DataException e) {
+							e.printStackTrace();
+							NotificationManager.addWarning("Capa " + lyrVect.getName() + " sin recordset correcto",e);
+						}
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+		registerIcons();
+	}
+
+	private void registerIcons(){
+		PluginServices.getIconTheme().registerDefault(
+				"view-clear-selection",
+				this.getClass().getClassLoader().getResource("images/delselection.png")
+			);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ClearSelectionExtension.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewProjectWindow.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewProjectWindow.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewProjectWindow.java	(revision 38262)
@@ -0,0 +1,85 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+
+
+/**
+ * Extensi�n que abre la ventana de gestor de proyecto.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ViewProjectWindow extends Extension {
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
+	 */
+	public void execute(String arg0) {
+		if (arg0.equals("SHOW")) {
+			ProjectExtension pe = (ProjectExtension) PluginServices.getExtension(org.gvsig.app.extension.ProjectExtension.class);
+			pe.showProjectWindow();
+		}
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+	}
+
+	public void postInitialize() {
+		
+	}
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		return true;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		return true;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewProjectWindow.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/MetadataPropertiesExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/MetadataPropertiesExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/MetadataPropertiesExtension.java	(revision 38262)
@@ -0,0 +1,29 @@
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.project.documents.view.legend.gui.ThemeManagerWindow;
+import org.gvsig.app.project.documents.view.metadata.gui.MetadataInfoManager;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+
+public class MetadataPropertiesExtension extends Extension {
+
+    public void initialize() {
+		ThemeManagerWindow.addPage(MetadataInfoManager.class);
+		ThemeManagerWindow.setTabEnabledForLayer(MetadataInfoManager.class, FLyrVect.class, true);	
+    }
+    
+    public void postInitialize(){
+    }
+
+    public void execute(String actionCommand) {
+    	// no commands, no code.
+    }
+
+    public boolean isEnabled() {
+        return true;
+    }
+
+    public boolean isVisible() {
+        return false;
+    }
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/FiltroExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/FiltroExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/FiltroExtension.java	(revision 38262)
@@ -0,0 +1,386 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import java.awt.Component;
+import java.util.Iterator;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.gui.filter.ExpressionListener;
+import org.gvsig.app.gui.filter.FilterDialog;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureQuery;
+import org.gvsig.fmap.dal.feature.FeatureSelection;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.utils.exceptionHandling.ExceptionListener;
+
+/**
+ * Extensi�n que abre un di�logo para poder hacer un filtro de una capa o tabla.
+ * 
+ * @author Vicente Caballero Navarro
+ */
+public class FiltroExtension extends Extension implements ExpressionListener {
+
+    protected FeatureStore featureStore = null;
+    private String filterTitle;
+
+    /**
+     * DOCUMENT ME!
+     */
+    public void initialize() {
+        registerIcons();
+    }
+
+    private void registerIcons() {
+        PluginServices.getIconTheme().registerDefault("table-filter",
+            this.getClass().getClassLoader().getResource("images/Filtro.png"));
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param actionCommand
+     *            DOCUMENT ME!
+     */
+    public void execute(String actionCommand) {
+        if ("FILTRO".equals(actionCommand)) {
+            // try {
+            IWindow v = PluginServices.getMDIManager().getActiveWindow();
+
+            if (v instanceof org.gvsig.app.project.documents.view.gui.DefaultViewPanel) {
+                ViewDocument pv =
+                    ((org.gvsig.app.project.documents.view.gui.DefaultViewPanel) v)
+                        .getModel();
+                filterTitle =
+                    ((org.gvsig.app.project.documents.view.gui.DefaultViewPanel) v)
+                        .getModel().getName();
+                FLayer layer = pv.getMapContext().getLayers().getActives()[0];
+                featureStore = ((FLyrVect) layer).getFeatureStore();// pv.getProject().getDataSourceByLayer(layer);
+                ((AbstractDocument) pv).setModified(true);
+            }
+            // } catch (ReadException e) {
+            // NotificationManager.addError("Error filtrando", e);
+            // }
+
+            doExecute();
+        }
+    }
+
+    /**
+     * "execute" method action.
+     * 
+     */
+    protected void doExecute() {
+        // DefaultExpressionDataSource ds = new DefaultExpressionDataSource();
+        // ds.setTable(featureStore);
+        FilterDialog dlg = new FilterDialog(filterTitle);
+        dlg.addExpressionListener(this);
+        dlg.addExceptionListener(new ExceptionListener() {
+
+            public void exceptionThrown(Throwable t) {
+                NotificationManager.addError(t.getMessage(), t);
+            }
+        });
+        dlg.setModel(featureStore);
+        PluginServices.getMDIManager().addWindow(dlg);
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    public boolean isEnabled() {
+        IWindow v = PluginServices.getMDIManager().getActiveWindow();
+
+        if (v == null) {
+            return false;
+        }
+
+        if (v instanceof org.gvsig.app.project.documents.view.gui.DefaultViewPanel) {
+            org.gvsig.app.project.documents.view.gui.DefaultViewPanel view =
+                (org.gvsig.app.project.documents.view.gui.DefaultViewPanel) v;
+            ViewDocument pv = view.getModel();
+            FLayer[] seleccionadas =
+                pv.getMapContext().getLayers().getActives();
+
+            if (seleccionadas.length == 1) {
+                if (seleccionadas[0].isAvailable()
+                    && (seleccionadas[0] instanceof FLyrVect)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    public boolean isVisible() {
+        IWindow v = PluginServices.getMDIManager().getActiveWindow();
+
+        if (v == null) {
+            return false;
+        }
+
+        if (v instanceof org.gvsig.app.project.documents.view.gui.DefaultViewPanel) {
+            org.gvsig.app.project.documents.view.gui.DefaultViewPanel view =
+                (org.gvsig.app.project.documents.view.gui.DefaultViewPanel) v;
+            ViewDocument pv = view.getModel();
+            FLayer[] seleccionadas =
+                pv.getMapContext().getLayers().getActives();
+
+            if (seleccionadas.length == 1) {
+                if (seleccionadas[0] instanceof FLyrVect) {
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param expression
+     *            DOCUMENT ME!
+     */
+    // By Pablo: if no filter expression -> no element selected
+    public void newSet(String expression) throws DataException {
+        if (!this.filterExpressionFromWhereIsEmpty(expression)) {
+            FeatureSet set = null;
+            try {
+                set = doSet(expression);
+
+                if (set == null) {
+                    // throw new RuntimeException("Not a 'where' clause?");
+                    return;
+                }
+                featureStore.setSelection(set);
+
+            } catch (Exception e) {
+                JOptionPane.showMessageDialog((Component) PluginServices
+                    .getMainFrame(),
+                    "Asegurate de que la consulta es correcta.");
+            } finally {
+                if (set != null) {
+                    set.dispose();
+                }
+            }
+        } else {
+            // By Pablo: if no expression -> no element selected
+            featureStore.getFeatureSelection().deselectAll();
+        }
+    }
+
+    /**
+     * @throws DataException
+     * @see org.gvsig.app.gui.filter.ExpressionListener#newSet(java.lang.String)
+     */
+    private FeatureSet doSet(String expression) throws DataException {
+        FeatureQuery query = featureStore.createFeatureQuery();
+        DataManager manager = DALLocator.getDataManager();
+        query.setFilter(manager.createExpresion(expression));
+        return featureStore.getFeatureSet(query);
+        // try {
+        // DataSource ds =
+        // LayerFactory.getDataSourceFactory().executeSQL(expression,
+        // DataSourceFactory.MANUAL_OPENING);
+        //
+        // return ds.getWhereFilter();
+        // } catch (DriverLoadException e) {
+        // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"driver_error")+"\n"+e.getMessage());
+        // } catch (ReadDriverException e) {
+        // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"driver_error")+"\n"+e.getMessage());
+        // } catch (ParseException e) {
+        // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"parse_expresion_error")+"\n"+e.getMessage());
+        // } catch (SemanticException e) {
+        // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"semantic_expresion_error")+"\n"+e.getMessage());
+        // } catch (IOException e) {
+        // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"input_output_error")+"\n"+e.getMessage());
+        // } catch (EvaluationException e) {
+        // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"parse_expresion_error")+"\n"+e.getMessage());
+        // } catch (com.hardcode.gdbms.parser.TokenMgrError e) {
+        // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"expresion_error")+"\n"+e.getMessage());
+        // }
+        // return null;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param expression
+     *            DOCUMENT ME!
+     * @throws DataException
+     */
+    public void addToSet(String expression) throws DataException {
+        // By Pablo: if no filter expression -> don't add more elements to set
+        if (!this.filterExpressionFromWhereIsEmpty(expression)) {
+            FeatureSet set = null;
+            try {
+                set = doSet(expression);
+
+                if (set == null) {
+                    // throw new RuntimeException("Not a 'where' clause?");
+                    return;
+                }
+                featureStore.getFeatureSelection().select(set);
+            } finally {
+                if (set != null) {
+                    set.dispose();
+                }
+            }
+
+            // FBitSet selection = new FBitSet();
+            //
+            // for (int i = 0; i < sel.length; i++) {
+            // selection.set((int) sel[i]);
+            // }
+            //
+            // FBitSet fbs = featureStore.getSelection();
+            // fbs.or(selection);
+            // featureStore.setSelection(fbs);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param expression
+     *            DOCUMENT ME!
+     */
+    public void fromSet(String expression) throws DataException {
+        // By Pablo: if no filter expression -> no element selected
+        try {
+            if (!this.filterExpressionFromWhereIsEmpty(expression)) {
+                // NotificationManager.showMessageInfo("Falta por implementar",
+                // null);
+
+                FeatureSet set = null;
+                set = doSet(expression);
+
+                if (set == null) {
+                    throw new RuntimeException("Not a 'where' clause?");
+                }
+
+                FeatureSelection oldSelection =
+                    featureStore.getFeatureSelection();
+
+                FeatureSelection newSelection =
+                    featureStore.createFeatureSelection();
+                Iterator iterator = set.iterator();
+                while (iterator.hasNext()) {
+                    Feature feature = (Feature) iterator.next();
+                    if (oldSelection.isSelected(feature)) {
+                        newSelection.select(feature);
+                    }
+                }
+                featureStore.setSelection(newSelection);
+                set.dispose();
+
+            } else {
+                // By Pablo: if no expression -> no element selected
+                featureStore.getFeatureSelection().deselectAll();
+                ;
+            }
+        } catch (DataException e) {
+            NotificationManager.addError(e);
+        }
+
+    }
+
+    /**
+     * Returns true if the WHERE subconsultation of the filterExpression is
+     * empty ("")
+     * 
+     * @author Pablo Piqueras Bartolom� (p_queras@hotmail.com)
+     * @param expression
+     *            An string
+     * @return A boolean value
+     */
+    private boolean filterExpressionFromWhereIsEmpty(String expression) {
+        String subExpression = expression.trim();
+        int pos;
+
+        // Remove last ';' if exists
+        if (subExpression.charAt(subExpression.length() - 1) == ';') {
+            subExpression =
+                subExpression.substring(0, subExpression.length() - 1).trim();
+        }
+
+        // If there is no 'where' clause
+        if ((pos = subExpression.indexOf("where")) == -1) {
+            return false;
+        }
+
+        // If there is no subexpression in the WHERE clause -> true
+        subExpression =
+            subExpression.substring(pos + 5, subExpression.length()).trim(); // +
+        // 5
+        // is
+        // the
+        // length
+        // of
+        // 'where'
+        if (subExpression.length() == 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/FiltroExtension.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewSelectionByTheme.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewSelectionByTheme.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewSelectionByTheme.java	(revision 38262)
@@ -0,0 +1,181 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+ *
+ * $Id: ViewSelectionControls.java 26282 2009-01-29 09:58:42Z vcaballero $
+ * $Log$
+ * Revision 1.16  2007-03-06 16:34:02  caballero
+ * Exceptions
+ *
+ * Revision 1.15  2007/01/04 07:24:32  caballero
+ * isModified
+ *
+ * Revision 1.14  2006/12/27 11:08:56  fdiaz
+ * Arreglado el metodo hasVectorLayers para que no se pare en los grupos de capas cuando estos no tienen capas vectoriales.
+ *
+ * Revision 1.13  2006/09/25 16:54:12  caballero
+ * invert selection
+ *
+ * Revision 1.12  2006/09/20 13:17:40  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.11  2006/09/20 10:56:56  sbayarri
+ * Refactorizaci�n clases View y ProjectView
+ *
+ * Revision 1.10  2006/09/15 10:40:03  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.9  2006/09/11 16:14:15  fjp
+ * Invertir seleccion. Falta subirlo al branch de la 1.0
+ *
+ * Revision 1.8  2006/09/11 06:53:13  fjp
+ * Antes del parto
+ *
+ * Revision 1.7  2006/09/04 16:26:54  fjp
+ * Seleccionar por pol�gono
+ *
+ * Revision 1.6  2006/08/29 07:56:27  cesar
+ * Rename the *View* family of classes to *Window* (ie: SingletonView to SingletonWindow, ViewInfo to WindowInfo, etc)
+ *
+ * Revision 1.5  2006/08/29 07:21:08  cesar
+ * Rename com.iver.cit.gvsig.fmap.Fmap class to com.iver.cit.gvsig.fmap.MapContext
+ *
+ * Revision 1.4  2006/08/29 07:13:53  cesar
+ * Rename class com.iver.andami.ui.mdiManager.View to com.iver.andami.ui.mdiManager.IWindow
+ *
+ * Revision 1.3  2006/08/18 08:40:04  jmvivo
+ * Actualizado para que el isEnabled tenga en cuenta que las capas esten 'avialable'
+ *
+ * Revision 1.2  2006/07/27 06:20:28  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.1  2006/07/26 09:53:05  jaume
+ * separadas las herramientas de selecci�n del viewControls al ViewSelectionControls
+ *
+ *
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.gui.selectionByTheme.DefaultSelectionByThemeModel;
+import org.gvsig.app.gui.selectionByTheme.MySelectionByThemeListener;
+import org.gvsig.app.gui.selectionByTheme.SelectionByTheme;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * Extension that handles the selection tools, selection tools have sense on
+ * vectorial layers only.
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class ViewSelectionByTheme extends Extension {
+    private static final Logger logger = LoggerFactory
+            .getLogger(ViewSelectionByTheme.class);
+    
+	private DefaultViewPanel vista;
+	public void initialize() {
+	}
+
+	public void execute(String actionCommand) {
+		logger.debug("Comand : " + actionCommand);
+		if (actionCommand.equals("SELECTIONBYSHAPE")) {
+			SelectionByTheme dlg = new SelectionByTheme();
+			dlg.setModel(new DefaultSelectionByThemeModel());
+			dlg.addSelectionListener(new MySelectionByThemeListener());
+			PluginServices.getMDIManager().addWindow(dlg);
+			((AbstractDocument)vista.getModel()).setModified(true);
+		}
+	}
+
+	public boolean isEnabled() {
+		ViewDocument model = vista.getModel();
+		MapContext mapa = model.getMapContext();
+
+		for (int i = 0; i < mapa.getLayers().getActives().length; i++) {
+			FLayer lyr = mapa.getLayers().getActives()[i];
+			if (lyr.isAvailable() && lyr instanceof FLyrVect){// && !lyr.isEditing()) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public boolean isVisible() {
+		IWindow f = PluginServices.getMDIManager().getActiveWindow();
+
+		if (f != null && f instanceof DefaultViewPanel) {
+			vista = (DefaultViewPanel) f;
+			ViewDocument model = vista.getModel();
+			MapContext mapa = model.getMapContext();
+
+			return hasVectorLayers(mapa.getLayers());
+
+		}
+		return false;
+	}
+
+	private boolean hasVectorLayers(FLayers layers) {
+		for (int i = 0; i < layers.getLayersCount(); i++) {
+			FLayer lyr =layers.getLayer(i);
+			if (lyr instanceof FLayers){
+				if (hasVectorLayers((FLayers) lyr)){
+					return true;
+				}
+			} else if (lyr instanceof FLyrVect) {
+				return true;
+			}
+		}
+		return false;
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewControls.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewControls.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewControls.java	(revision 38262)
@@ -0,0 +1,301 @@
+/*
+ * Created on 20-feb-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.preferences.IPreference;
+import org.gvsig.andami.preferences.IPreferenceExtension;
+import org.gvsig.app.gui.preferencespage.GridPage;
+import org.gvsig.app.gui.preferencespage.ViewPage;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.Encuadrator;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.ExtentListSelectorModel;
+import org.gvsig.app.project.documents.view.gui.FPanelExtentSelector;
+import org.gvsig.app.project.documents.view.gui.FPanelLocConfig;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.app.project.documents.view.toc.gui.FPopupMenu;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.Snapping;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+//import com.iver.utiles.FPanelExtentSelector;
+
+/**
+ * Extensi�n que controla las operaciones b�sicas realizadas sobre la vista.
+ *
+ * @author vcn
+ */
+public class ViewControls extends Extension implements IPreferenceExtension{
+    private static final Logger logger = LoggerFactory
+            .getLogger(ViewInvertSelection.class);
+    
+	private static ViewPage viewPropertiesPage = null;
+	private DefaultViewPanel vista;
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
+	 */
+	public void execute(String s) {
+		ViewDocument model = vista.getModel();
+		MapContext mapa = model.getMapContext();
+		MapControl mapCtrl = vista.getMapControl();
+		logger.debug("Comand : " + s);
+
+		if (s.equals("FULL") ) {
+			// mapa.beginAtomicEvent();
+			mapa.getViewPort().setEnvelope(mapa.getLayers().getFullEnvelope());
+			((AbstractDocument)vista.getModel()).setModified(true);
+			// mapa.endAtomicEvent();
+		} else if (s.equals("ENCUADRE") ) {
+			FPanelExtentSelector l = new FPanelExtentSelector();
+
+			ProjectExtension p = (ProjectExtension) PluginServices.getExtension(org.gvsig.app.extension.ProjectExtension.class);
+			Project project = p.getProject();
+			ExtentListSelectorModel modelo = new ExtentListSelectorModel(project);
+			//ProjectExtent[] extents = project.getExtents();
+			project.addPropertyChangeListener(modelo);
+			l.setModel(modelo);
+			l.addSelectionListener(new Encuadrator(project, mapa, vista));
+			((AbstractDocument)vista.getModel()).setModified(true);
+			PluginServices.getMDIManager().addWindow(l);
+		} else if (s.equals("CONFIG_LOCATOR") ) {
+			//Set up the map overview
+			FPanelLocConfig m_panelLoc = new FPanelLocConfig(vista.getMapOverview());
+			PluginServices.getMDIManager().addWindow(m_panelLoc);
+			m_panelLoc.setPreferredSize(m_panelLoc.getSize());
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("PAN") ) {
+			mapCtrl.setTool("pan");
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("ZOOM_IN") ) {
+			mapCtrl.setTool("zoomIn");
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("ZOOM_OUT") ) {
+			mapCtrl.setTool("zoomOut");
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("CAPAS_VISIBLES") ) {
+			setVisibles(true, mapa.getLayers());
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("CAPAS_NOVISIBLES") ) {
+			setVisibles(false, mapa.getLayers());
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("CAPAS_ACTIVAS") ) {
+			setActives(true, mapa.getLayers());
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("CAPAS_NOACTIVAS") ) {
+			setActives(false, mapa.getLayers());
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("SAVERASTER") ) {
+			mapCtrl.setTool("saveRaster");
+		} else if (s.equals("SELECTIMAGE") ) {
+			mapCtrl.setTool("selectImage");
+		} else if (s.equals("ACTION_ZOOM_IN") ) {
+			mapCtrl.zoomIn();
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.equals("ACTION_ZOOM_OUT") ) {
+			mapCtrl.zoomOut();
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (s.startsWith("CHANGE_SCALE_")){
+			String scl=s.replaceAll("CHANGE_SCALE_","");
+			long scale=Long.parseLong(scl);
+			mapa.setScaleView(scale);
+			((AbstractDocument)vista.getModel()).setModified(true);
+		}
+	}
+
+	private ViewPage getViewPropertiesPage(){
+		if(viewPropertiesPage==null){
+			viewPropertiesPage = new ViewPage();
+		}
+		return viewPropertiesPage;
+	}
+	/**
+	 * Pone todas las capas visibles o no visibles.
+	 *
+	 * @param visible true si que quieren poner a visibles.
+	 * @param mapa FMap sobre el que actuar.
+	 */
+	private void setVisibles(boolean visible, FLayers layers) {
+		int layerCount=layers.getLayersCount();
+		for (int i = 0; i < layerCount; i++) {
+			FLayer layer = layers.getLayer(i);
+			layer.setVisible(visible);
+			if (layer instanceof FLayers){
+				setVisibles(visible,(FLayers)layer);
+			}
+		}
+	}
+	
+	/**
+	 * Pone todas las capas activas o no activas.
+	 *
+	 * @param active true si que quieren poner a activas.
+	 * @param mapa FMap sobre el que actuar.
+	 */
+	private void setActives(boolean active, FLayers layers) {
+		int layerCount=layers.getLayersCount();
+		for (int i = 0; i < layerCount; i++) {
+			FLayer layer = layers.getLayer(i);
+			layer.setActive(active);
+			if (layer instanceof FLayers){
+				setActives(active,(FLayers)layer);
+			}
+		}
+	}
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+															 .getActiveWindow();
+
+		if (f!=null && f instanceof DefaultViewPanel) {
+			vista = (DefaultViewPanel) f;
+			ViewDocument model = vista.getModel();
+			MapContext mapa = model.getMapContext();
+
+			return mapa.getLayers().getLayersCount() > 0;
+		}
+			return false;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+
+		ExtensionPointManager epManager = ToolsLocator.getExtensionPointManager();
+
+		if (!epManager.has("View_TocActions")) {
+			epManager.add(
+					"View_TocActions",
+					"Context menu options of the TOC " +
+						" in the view window "+
+						"(register instances of " +
+						"org.gvsig.app.gui.toc.AbstractTocContextMenuAction)"
+			);
+		}
+
+		FPopupMenu.registerExtensionPoint();
+
+		registerIcons();
+		Snapping.register();
+	}
+
+	private void registerIcons(){
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-in",
+				this.getClass().getClassLoader().getResource("images/ZoomIn.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-out",
+				this.getClass().getClassLoader().getResource("images/ZoomOut.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-map-contents",
+				this.getClass().getClassLoader().getResource("images/MapContents.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-center-in",
+				this.getClass().getClassLoader().getResource("images/zoommas.png")
+			);
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-center-out",
+				this.getClass().getClassLoader().getResource("images/zoommenos.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-pan",
+				this.getClass().getClassLoader().getResource("images/Pan.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-manager",
+				this.getClass().getClassLoader().getResource("images/encuadre.png")
+			);
+		
+		PluginServices.getIconTheme().registerDefault(
+				"toc-layer-group",
+				this.getClass().getClassLoader().getResource("images/layerGroup.png")
+			);
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		ViewDocument model = vista.getModel();
+		MapContext mapa = model.getMapContext();
+
+		FLayers layers = mapa.getLayers();
+		for (int i=0;i<layers.getLayersCount();i++) {
+			if (layers.getLayer(i).isAvailable()) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public IPreference[] getPreferencesPages() {
+		IPreference[] preferences=new IPreference[2];
+		preferences[0]=getViewPropertiesPage();
+		GridPage gridPage=new GridPage();
+		preferences[1]=gridPage;
+		return preferences;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewControls.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/MeasureExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/MeasureExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/MeasureExtension.java	(revision 38262)
@@ -0,0 +1,161 @@
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontrol.MapControl;
+
+
+
+/**
+ * Extensi�n que controla las operaciones de medida realizadas sobre la vista.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class MeasureExtension extends Extension {
+    private void registerDistanceUnits() {
+    	MapContext.addDistanceUnit("Millas_Nauticas","nmi",1852);
+    	MapContext.addDistanceUnit("Decimetros","dm",0.1);
+    }
+private void registerAreaUnits(){
+	MapContext.addAreaUnit("Areas","a",false,10);
+	MapContext.addAreaUnit("Hectareas","ha",false,100);
+	MapContext.addAreaUnit("HanegadasV","hgV",false,28.8287);
+	MapContext.addAreaUnit("HanegadasC","hgC",false,80.2467);
+	MapContext.addAreaUnit("Decimetros","dm",true,0.1);
+	MapContext.addAreaUnit("Acres","acre",false,63.6149);
+	MapContext.addAreaUnit("Millas_Nauticas","nmi",true,1852);
+}
+	/* (non-Javadoc)
+     * @see com.iver.andami.plugins.IExtension#initialize()
+     */
+    public void initialize() {
+    	registerDistanceUnits();
+    	registerAreaUnits();
+    	PluginServices.getIconTheme().registerDefault(
+				"view-query-distance",
+				this.getClass().getClassLoader().getResource("images/Distancia.png")
+			);
+
+    	PluginServices.getIconTheme().registerDefault(
+				"view-query-area",
+				this.getClass().getClassLoader().getResource("images/Poligono16.png")
+			);
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)
+     */
+    public void execute(String s) {
+        org.gvsig.andami.ui.mdiManager.IWindow view = PluginServices.getMDIManager()
+                                                                   .getActiveWindow();
+
+        if (!(view instanceof DefaultViewPanel)) {
+            return;
+        }
+
+        DefaultViewPanel vista = (DefaultViewPanel) view;
+        MapControl mapCtrl = vista.getMapControl();
+
+        if (s.equals("MEDICION")) {
+            mapCtrl.setTool("medicion");
+        } else if (s.equals("AREA")) {
+            mapCtrl.setTool("area");
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.andami.plugins.IExtension#isEnabled()
+     */
+    public boolean isEnabled() {
+        org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+                                                                .getActiveWindow();
+
+        if (f == null) {
+            return false;
+        }
+
+        if (f instanceof DefaultViewPanel) {
+            DefaultViewPanel vista = (DefaultViewPanel) f;
+            ViewDocument model = vista.getModel();
+            MapContext mapa = model.getMapContext();
+
+            FLayers layers = mapa.getLayers();
+
+            for (int i = 0; i < layers.getLayersCount(); i++) {
+                if (layers.getLayer(i).isAvailable()) {
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.andami.plugins.IExtension#isVisible()
+     */
+    public boolean isVisible() {
+        org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+                                                                .getActiveWindow();
+
+        if (f == null) {
+            return false;
+        }
+
+        if (f instanceof DefaultViewPanel) {
+            DefaultViewPanel vista = (DefaultViewPanel) f;
+            ViewDocument model = vista.getModel();
+            MapContext mapa = model.getMapContext();
+
+            return mapa.getLayers().getLayersCount() > 0;
+        }
+
+        return false;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/MeasureExtension.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Preferences.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Preferences.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Preferences.java	(revision 38262)
@@ -0,0 +1,90 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.ViewPort;
+
+
+
+/**
+ * Extensi�n para que el usuario fije sus preferencias.
+ * La idea es usar algo como lo que tiene Eclipse, que
+ * permita a las extensiones registrar sus cuadros de
+ * di�logo de preferencias.
+ *
+ * @author Fjp
+ */
+public class Preferences extends Extension {
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+
+		return true;
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+			return true;
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
+	 */
+	public void execute(String arg0) {
+		DefaultViewPanel vista = (DefaultViewPanel) PluginServices.getMDIManager().getActiveWindow();
+		ViewPort vp = vista.getModel().getMapContext().getViewPort();
+		vp.setPreviousExtent();
+		((AbstractDocument)vista.getModel()).setModified(true);
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/Preferences.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/PaletteViewInfoExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/PaletteViewInfoExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/PaletteViewInfoExtension.java	(revision 38262)
@@ -0,0 +1,98 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+*
+* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+*
+* For more information, contact:
+*
+*  Generalitat Valenciana
+*   Conselleria d'Infraestructures i Transport
+*   Av. Blasco Ib��ez, 50
+*   46010 VALENCIA
+*   SPAIN
+*
+*      +34 963862235
+*   gvsig@gva.es
+*      www.gvsig.gva.es
+*
+*    or
+*
+*   IVER T.I. S.A
+*   Salamanca 50
+*   46005 Valencia
+*   Spain
+*
+*   +34 963163400
+*   dac@iver.es
+*/
+package org.gvsig.app.extension;
+
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.IWindowTransform;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+public class PaletteViewInfoExtension extends Extension{
+    private static final Logger logger = LoggerFactory
+            .getLogger(PaletteViewInfoExtension.class);
+    
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
+	 */
+	public void execute(String s) {
+		IWindow view = PluginServices.getMDIManager().getActiveWindow();
+        if (s.equals("PALETTE")){
+        	IWindowTransform vt=(IWindowTransform)view;
+        	vt.toPalette();
+        }
+        PluginServices.getMainFrame().enableControls();
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+       return true;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		IWindow f = PluginServices.getMDIManager().getFocusWindow();
+		if (f == null) {
+			return false;
+		}
+		if (f instanceof IWindowTransform) {
+			IWindowTransform vt=(IWindowTransform)f;
+			if (!vt.isPalette())
+				return true;
+		}
+		return false;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/PaletteViewInfoExtension.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ProjectExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ProjectExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ProjectExtension.java	(revision 38262)
@@ -0,0 +1,753 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.app.extension;
+
+import java.awt.Component;
+import java.io.File;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.prefs.Preferences;
+
+import javax.swing.JOptionPane;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.Launcher;
+import org.gvsig.andami.Launcher.TerminationProcess;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.plugins.IExtension;
+import org.gvsig.andami.plugins.status.IExtensionStatus;
+import org.gvsig.andami.plugins.status.IUnsavedData;
+import org.gvsig.andami.plugins.status.UnsavedData;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.andami.ui.wizard.UnsavedDataPanel;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.gui.ProjectWindow;
+import org.gvsig.app.project.documents.view.ViewManager;
+import org.gvsig.gui.beans.swing.JFileChooser;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.gvsig.utils.GenericFileFilter;
+import org.gvsig.utils.save.AfterSavingListener;
+import org.gvsig.utils.save.BeforeSavingListener;
+import org.gvsig.utils.save.SaveEvent;
+import org.gvsig.utils.swing.threads.IMonitorableTask;
+
+/**
+ * Extension que proporciona controles para crear proyectos nuevos, abrirlos y
+ * guardarlos. Adem�s los tipos de tabla que soporta el proyecto son a�adidos
+ * en esta clase.
+ * 
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class ProjectExtension extends Extension implements IExtensionStatus {
+    private static final Logger LOG =
+        LoggerFactory.getLogger(ProjectExtension.class);
+    
+    private static String projectPath = null;
+    private ProjectWindow projectFrame;
+    private Project p;
+    private String lastSavePath;
+    private WindowInfo seedProjectWindow;
+    public static final String PROJECT_FILE_CHOOSER_ID =
+        "PROJECT_FILECHOOSER_ID";
+    /**
+     * Use UTF-8 for encoding, as it can represent characters from
+     * any language.
+     * 
+     * Another sensible option would be
+     * encoding = System.getProperty("file.encoding");
+     * but this would need some extra testing.
+     * 
+     * @deprecated see PersistentManager
+     */
+    public static String PROJECTENCODING = "UTF-8";
+
+    private List<BeforeSavingListener> beforeSavingListeners =
+        new ArrayList<BeforeSavingListener>();
+
+    private List<AfterSavingListener> afterSavingListeners =
+        new ArrayList<AfterSavingListener>();
+
+    /**
+     * @see com.iver.mdiApp.plugins.IExtension#initialize()
+     */
+    public void initialize() {
+        try {
+            Class.forName("javax.media.jai.EnumeratedParameter");
+        } catch (ClassNotFoundException e) {
+            NotificationManager
+                .addError(
+                    "La m�quina virtual con la que se ejecuta gvSIG no tiene JAI instalado",
+                    e);
+        }
+
+        initializeDocumentActionsExtensionPoint();
+        registerIcons();
+    }
+
+    private void registerIcons() {
+        PluginServices.getIconTheme().registerDefault("project-new",
+            this.getClass().getClassLoader().getResource("images/new.png"));
+
+        PluginServices.getIconTheme().registerDefault("project-open",
+            this.getClass().getClassLoader().getResource("images/open.png"));
+
+        PluginServices.getIconTheme().registerDefault("project-save",
+            this.getClass().getClassLoader().getResource("images/save.png"));
+
+        PluginServices.getIconTheme().registerDefault("project-save-as",
+            this.getClass().getClassLoader().getResource("images/save.png"));
+
+        PluginServices.getIconTheme().registerDefault("application-exit",
+            this.getClass().getClassLoader().getResource("images/salir.png"));
+    }
+
+    private void loadInitialProject() {
+        String[] theArgs = PluginServices.getArguments();
+        String lastArg = theArgs[theArgs.length - 1];
+        if ((lastArg.toLowerCase().endsWith(Project.FILE_EXTENSION
+            .toLowerCase()))) {
+            PluginServices.getLogger().debug(
+                "Intentando cargar el proyecto " + lastArg);
+            // File projectFile = new File(lastArg);
+            setProject(readProject(lastArg));
+            PluginServices.getMainFrame().setTitle(p.getName());
+            projectPath = lastArg;
+        } else {
+            setProject(ProjectManager.getInstance().createProject());
+            p.setName(PluginServices.getText(this, "untitled"));
+            p.setModified(false);
+            PluginServices.getMainFrame().setTitle(
+                PluginServices.getText(this, "sin_titulo"));
+        }
+
+    }
+
+    /**
+     * @see com.iver.mdiApp.plugins.IExtension#postInitialize()
+     */
+    public void postInitialize() {
+        registerDocuments();
+        loadInitialProject();
+        getProjectFrame().setProject(p);
+        showProjectWindow();
+    }
+
+    public ProjectWindow getProjectFrame() {
+        if (projectFrame == null) {
+            projectFrame = new ProjectWindow();
+        }
+        return projectFrame;
+    }
+
+    /**
+     * Muestra la ventana con el gestor de proyectos.
+     */
+    public void showProjectWindow() {
+        if (seedProjectWindow != null) {
+            if (seedProjectWindow.isClosed()) {
+                // if it was closed, we just don't open the window now
+                seedProjectWindow.setClosed(false);
+                return;
+            }
+            WindowInfo winProps = seedProjectWindow;
+            seedProjectWindow = null;
+            PluginServices.getMDIManager().addWindow(getProjectFrame());
+            PluginServices.getMDIManager().changeWindowInfo(getProjectFrame(),
+                winProps);
+        } else {
+            PluginServices.getMDIManager().addWindow(getProjectFrame());
+        }
+    }
+
+    /**
+     * Muestra la ventana con el gestor de proyectos, con las propiedades
+     * de ventana especificadas.
+     */
+    public void showProjectWindow(WindowInfo wi) {
+        seedProjectWindow = wi;
+        showProjectWindow();
+    }
+
+    /**
+     * Guarda el proyecto actual en disco.
+     */
+    private boolean guardar() {
+        boolean saved = false;
+        // if (p.getPath() == null) {
+        if (projectPath == null) {
+            saved = guardarDialogo();
+        } else {
+            long t1, t2;
+            t1 = System.currentTimeMillis();
+            saved = writeProject(new File(projectPath), p, false);
+            t2 = System.currentTimeMillis();
+            PluginServices.getLogger().info(
+                "Project saved. " + (t2 - t1) + " miliseconds");
+            getProjectFrame().refreshControls();
+        }
+        return saved;
+    }
+
+    private boolean guardarDialogo() {
+        boolean saved = false;
+
+        if (lastSavePath == null) {
+            lastSavePath = projectPath;
+        }
+
+        Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
+        JFileChooser jfc =
+            new JFileChooser(PROJECT_FILE_CHOOSER_ID, prefs.get(
+                "ProjectsFolder", null));
+
+        jfc.setDialogTitle(PluginServices.getText(this, "guardar_proyecto"));
+        jfc.addChoosableFileFilter(new GenericFileFilter(
+            Project.FILE_EXTENSION, MessageFormat.format(
+                PluginServices.getText(this, "_gvSIG_file_project_({0})"),
+                Project.FILE_EXTENSION)));
+
+        if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
+            File file = jfc.getSelectedFile();
+            if (!(file.getPath().toLowerCase().endsWith(Project.FILE_EXTENSION
+                .toLowerCase()))) {
+                file = new File(file.getPath() + Project.FILE_EXTENSION);
+            }
+            saved = writeProject(file, p);
+            String filePath = file.getAbsolutePath();
+            lastSavePath =
+                filePath.substring(0, filePath.lastIndexOf(File.separatorChar));
+
+            getProjectFrame().refreshControls();
+        }
+        return saved;
+    }
+
+    /**
+     * Checks whether the project and related unsaved data is modified,
+     * and allows the user to save it.
+     * 
+     * @return true if the data has been correctly saved, false otherwise
+     */
+    private boolean askSave() {
+        if (p != null && p.hasChanged()) {
+            TerminationProcess process = Launcher.getTerminationProcess();
+            UnsavedDataPanel panel = process.getUnsavedDataPanel();
+            panel.setHeaderText(PluginServices.getText(this,
+                "Select_resources_to_save_before_closing_current_project"));
+            panel.setAcceptText(PluginServices.getText(this, "save_resources"),
+                PluginServices.getText(this,
+                    "Save_the_selected_resources_and_close_current_project"));
+            panel.setCancelText(PluginServices.getText(this, "Dont_close"),
+                PluginServices.getText(this, "Return_to_current_project"));
+            int closeCurrProj;
+            try {
+                closeCurrProj = process.manageUnsavedData();
+                if (closeCurrProj == JOptionPane.NO_OPTION) {
+                    // the user chose to return to current project
+                    return false;
+                }
+            } catch (Exception e) {
+                LOG.error("Some data can not be saved", e);
+            }           
+        }
+        return true;
+    }
+
+    /**
+     * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
+     */
+    public void execute(String actionCommand) {
+        if (actionCommand.equals("NUEVO")) {
+            if (!askSave()) {
+                return;
+            }
+
+            projectPath = null;
+            // ProjectDocument.initializeNUMS();
+            PluginServices.getMDIManager().closeAllWindows();
+            setProject(ProjectManager.getInstance().createProject());
+            getProjectFrame().setProject(p);
+            showProjectWindow();
+            PluginServices.getMainFrame().setTitle(
+                PluginServices.getText(this, "sin_titulo"));
+        } else
+            if (actionCommand.equals("ABRIR")) {
+                if (!askSave()) {
+                    return;
+                }
+
+                Preferences prefs =
+                    Preferences.userRoot().node("gvsig.foldering");
+                JFileChooser jfc =
+                    new JFileChooser(PROJECT_FILE_CHOOSER_ID, prefs.get(
+                        "ProjectsFolder", null));
+                jfc.addChoosableFileFilter(new GenericFileFilter(
+                    Project.FILE_EXTENSION, PluginServices.getText(this,
+                        "tipo_fichero_proyecto")));
+
+                if (jfc.showOpenDialog((Component) PluginServices
+                    .getMainFrame()) == JFileChooser.APPROVE_OPTION) {
+                    // ProjectDocument.initializeNUMS();
+                    PluginServices.getMDIManager().closeAllWindows();
+
+                    File projectFile = jfc.getSelectedFile();
+                    Project o = readProject(projectFile);
+                    setPath(projectFile.getAbsolutePath());
+                    // lastPath = getPath();
+                    if (o != null) {
+                        setProject(o);
+                    }
+
+                    getProjectFrame().setProject(p);
+                    PluginServices.getMainFrame().setTitle(p.getName());
+                    getProjectFrame().refreshControls();
+
+                    // p.restoreWindowProperties();
+                }
+            } else
+                if (actionCommand.equals("GUARDAR")) {
+                    guardar();
+                } else
+                    if (actionCommand.equals("GUARDAR_COMO")) {
+                        guardarDialogo();
+                    } else
+                        if (actionCommand.equals("SALIR")) {
+                            Launcher.closeApplication();
+                        }
+    }
+
+    /**
+     * Escribe el proyecto en XML.
+     * 
+     * @param file
+     *            Fichero.
+     * @param p
+     *            Proyecto.
+     */
+    public boolean writeProject(File file, Project p) {
+        return writeProject(file, p, true);
+    }
+
+    /**
+     * Escribe el proyecto en XML. Pero permite decidir si se
+     * pide confirmaci�n para sobreescribir
+     * 
+     * @param file
+     *            Fichero.
+     * @param p
+     *            Proyecto.
+     * @param askConfirmation
+     *            boolean
+     */
+    public boolean writeProject(File file, Project p, boolean askConfirmation) {
+        if (askConfirmation && file.exists()) {
+            int resp =
+                JOptionPane.showConfirmDialog((Component) PluginServices
+                    .getMainFrame(), PluginServices.getText(this,
+                    "fichero_ya_existe_seguro_desea_guardarlo"), PluginServices
+                    .getText(this, "guardar"), JOptionPane.YES_NO_OPTION);
+            if (resp != JOptionPane.YES_OPTION) {
+                return false;
+            }
+        }
+        NotificationManager.addInfo(PluginServices.getText(this,
+            "writinng_project") + ": " + file.getName());
+
+        // write it out as XML
+        try {
+            fireBeforeSavingFileEvent(new SaveEvent(this,
+                SaveEvent.BEFORE_SAVING, file));
+            p.saveState(file);
+            fireAfterSavingFileEvent(new SaveEvent(this,
+                SaveEvent.AFTER_SAVING, file));
+            PluginServices.getMainFrame().setTitle(file.getName());
+            setPath(file.toString());
+
+        } catch (PersistenceException e) {
+            String messagestack = e.getLocalizedMessageStack();
+            NotificationManager.addError(
+                PluginServices.getText(this, "error_writing_project") + ": "
+                    + file.getName() + "\n" + messagestack, e);
+            return false;
+        } catch (Exception e) {
+            NotificationManager.addError(
+                PluginServices.getText(this, "error_writing_project") + ": "
+                    + file.getName(), e);
+            return false;
+        }
+        NotificationManager.addInfo(PluginServices.getText(this,
+            "wrote_project") + ": " + file.getName());
+        return true;
+    }
+
+    public Project readProject(String path) {
+        Project project = ProjectManager.getInstance().createProject();
+
+        project.loadState(new File(path));
+        return (Project) project;
+    }
+
+    /**
+     * Lee del XML el proyecto.<br>
+     * <br>
+     * 
+     * Reads the XML of the project.<br>
+     * It returns a project object holding all needed info that is not linked to
+     * the Project Dialog. <br>
+     * In case you want the project to be
+     * linked to the window you must set this object to the extension:<br>
+     * 
+     * <b>Example:</b><br>
+     * 
+     * ...<br>
+     * ...<br>
+     * Project p = ProjectExtension.readProject(projectFile);<br>
+     * ProjectExtension.setProject(p);
+     * ...<br>
+     * ...<br>
+     * 
+     * @param file
+     *            Fichero.
+     * 
+     * @return Project
+     * 
+     */
+    public Project readProject(File file) {
+        Project project = ProjectManager.getInstance().createProject();
+
+        project.loadState(file);
+        return (Project) project;
+    }
+
+    /**
+     * Devuelve el proyecto.
+     * 
+     * @return Proyecto.
+     */
+    public Project getProject() {
+        return p;
+    }
+
+    /**
+     * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+     */
+    public boolean isEnabled() {
+        return true;
+    }
+
+    /**
+     * @see org.gvsig.andami.plugins.IExtension#isVisible()
+     */
+    public boolean isVisible() {
+        return true;
+    }
+
+    /**
+     * Sets the project
+     * 
+     * @param p
+     */
+    public void setProject(Project p) {
+        getProjectFrame().setProject(p);
+        this.p = p;
+    }
+
+    private void registerDocuments() {
+        ViewManager.register();
+    }
+
+    private void initializeDocumentActionsExtensionPoint() {
+        ExtensionPointManager epMan = ToolsLocator.getExtensionPointManager();
+        epMan.add("DocumentActions_View",
+            "Context menu options of the view document list"
+                + " in the project window " + "(register instances of "
+                + "org.gvsig.app.project.AbstractDocumentContextMenuAction)");
+    }
+
+    public static String getPath() {
+        return projectPath;
+    }
+
+    public static void setPath(String path) {
+        projectPath = path;
+    }
+
+    public IWindow getProjectWindow() {
+        return getProjectFrame();
+    }
+
+    public IExtensionStatus getStatus() {
+        return this;
+    }
+
+    public boolean hasUnsavedData() {
+        return p.hasChanged();
+    }
+
+    public IUnsavedData[] getUnsavedData() {
+        if (hasUnsavedData()) {
+            UnsavedProject data = new UnsavedProject(this);
+            IUnsavedData[] dataArray = { data };
+            return dataArray;
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Implements the IUnsavedData interface to show unsaved projects
+     * in the Unsavad Data dialog.
+     * 
+     * @author Cesar Martinez Izquierdo <cesar.martinez@iver.es>
+     */
+    public class UnsavedProject extends UnsavedData {
+
+        public UnsavedProject(IExtension extension) {
+            super(extension);
+        }
+
+        public String getDescription() {
+            if (getPath() == null) {
+                return PluginServices.getText(ProjectExtension.this,
+                    "Unnamed_new_gvsig_project_");
+            } else {
+                return PluginServices.getText(ProjectExtension.this,
+                    "Modified_project_");
+            }
+        }
+
+        public String getResourceName() {
+            if (getPath() == null) {
+                return PluginServices.getText(ProjectExtension.this, "Unnamed");
+            } else {
+                return getPath();
+            }
+
+        }
+
+        public boolean saveData() {
+            return guardar();
+        }
+
+        public String getIcon() {
+            return "images/logoGVA.gif";
+        }
+    }
+
+    public IMonitorableTask[] getRunningProcesses() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public boolean hasRunningProcesses() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /**
+     * Adds the specified before saving listener to receive
+     * "before saving file events" from
+     * this component.
+     * If l is null, no exception is thrown and no action is performed.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @param l
+     *            the before saving listener.
+     * @see SaveEvent
+     * @see BeforeSavingListener
+     * @see #removeListener(BeforeSavingListener)
+     * @see #getBeforeSavingListeners
+     */
+    public synchronized void addListener(BeforeSavingListener l) {
+        if (l == null) {
+            return;
+        }
+        if (!this.beforeSavingListeners.contains(l)) {
+            this.beforeSavingListeners.add(l);
+        }
+    }
+
+    /**
+     * Adds the specified after saving listener to receive
+     * "after saving file events" from
+     * this component.
+     * If l is null, no exception is thrown and no action is performed.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @param l
+     *            the after saving listener.
+     * @see SaveEvent
+     * @see AfterSavingListener
+     * @see #removeListener(AfterSavingListener)
+     * @see #getAfterSavingListeners()
+     */
+    public synchronized void addListener(AfterSavingListener l) {
+        if (l == null) {
+            return;
+        }
+
+        if (!this.afterSavingListeners.contains(l)) {
+            this.afterSavingListeners.add(l);
+        }
+
+    }
+
+    /**
+     * Returns an array of all the before saving listeners
+     * registered on this component.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @return all of this component's <code>BeforeSavingListener</code>s
+     *         or an empty array if no key
+     *         listeners are currently registered
+     * 
+     * @see #addBeforeSavingListener(BeforeSavingListener)
+     * @see #removeBeforeSavingListener(BeforeSavingListener)
+     */
+    public synchronized BeforeSavingListener[] getBeforeSavingListeners() {
+        return this.beforeSavingListeners
+            .toArray(new BeforeSavingListener[] {});
+    }
+
+    /**
+     * Returns an array of all the after saving listeners
+     * registered on this component.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @return all of this component's <code>AfterSavingListener</code>s
+     *         or an empty array if no key
+     *         listeners are currently registered
+     * 
+     * @see #addAfterSavingListener(AfterSavingListener)
+     * @see #removeAfterSavingListener
+     */
+    public synchronized AfterSavingListener[] getAfterSavingListeners() {
+        return this.afterSavingListeners.toArray(new AfterSavingListener[] {});
+
+    }
+
+    /**
+     * Removes the specified before saving listener so that it no longer
+     * receives save file events from this component. This method performs
+     * no function, nor does it throw an exception, if the listener
+     * specified by the argument was not previously added to this component.
+     * If listener <code>l</code> is <code>null</code>,
+     * no exception is thrown and no action is performed.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @param l
+     *            the before saving listener
+     * @see SaveEvent
+     * @see BeforeSavingListener
+     * @see #addListener(BeforeSavingListener)
+     * @see #getBeforeSavingListeners()
+     */
+    public synchronized void removeListener(BeforeSavingListener l) {
+        if (l == null) {
+            return;
+        }
+
+        this.beforeSavingListeners.remove(l);
+    }
+
+    /**
+     * Removes the specified after saving listener so that it no longer
+     * receives save file events from this component. This method performs
+     * no function, nor does it throw an exception, if the listener
+     * specified by the argument was not previously added to this component.
+     * If listener <code>l</code> is <code>null</code>,
+     * no exception is thrown and no action is performed.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @param l
+     *            the after saving listener
+     * @see SaveEvent
+     * @see AfterSavingListener
+     * @see #addListener(AfterSavingListener)
+     * @see #getAfterSavingListeners()
+     */
+    public synchronized void removeListener(AfterSavingListener l) {
+        if (l == null) {
+            return;
+        }
+
+        this.afterSavingListeners.remove(l);
+    }
+
+    /**
+     * Reports a before saving file event.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @param evt
+     *            the before saving file event
+     */
+    protected void fireBeforeSavingFileEvent(SaveEvent evt) {
+        if ((evt.getID() != SaveEvent.BEFORE_SAVING) || (evt.getFile() == null)) {
+            return;
+        }
+
+        Iterator<BeforeSavingListener> iter =
+            this.beforeSavingListeners.iterator();
+
+        while (iter.hasNext()) {
+            iter.next().beforeSaving(evt);
+        }
+    }
+
+    /**
+     * Reports a after saving file event.
+     * 
+     * @author Pablo Piqueras Bartolom� <pablo.piqueras@iver.es>
+     * 
+     * @param evt
+     *            the after saving file event
+     */
+    protected void fireAfterSavingFileEvent(SaveEvent evt) {
+        if ((evt.getID() != SaveEvent.AFTER_SAVING) || (evt.getFile() == null)) {
+            return;
+        }
+        Iterator<AfterSavingListener> iter =
+            this.afterSavingListeners.iterator();
+
+        while (iter.hasNext()) {
+            iter.next().afterSaving(evt);
+        }
+
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ProjectExtension.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewSelectionControls.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewSelectionControls.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewSelectionControls.java	(revision 38262)
@@ -0,0 +1,207 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.16  2007-03-06 16:34:02  caballero
+ * Exceptions
+ *
+ * Revision 1.15  2007/01/04 07:24:32  caballero
+ * isModified
+ *
+ * Revision 1.14  2006/12/27 11:08:56  fdiaz
+ * Arreglado el metodo hasVectorLayers para que no se pare en los grupos de capas cuando estos no tienen capas vectoriales.
+ *
+ * Revision 1.13  2006/09/25 16:54:12  caballero
+ * invert selection
+ *
+ * Revision 1.12  2006/09/20 13:17:40  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.11  2006/09/20 10:56:56  sbayarri
+ * Refactorizaci�n clases View y ProjectView
+ *
+ * Revision 1.10  2006/09/15 10:40:03  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.9  2006/09/11 16:14:15  fjp
+ * Invertir seleccion. Falta subirlo al branch de la 1.0
+ *
+ * Revision 1.8  2006/09/11 06:53:13  fjp
+ * Antes del parto
+ *
+ * Revision 1.7  2006/09/04 16:26:54  fjp
+ * Seleccionar por pol�gono
+ *
+ * Revision 1.6  2006/08/29 07:56:27  cesar
+ * Rename the *View* family of classes to *Window* (ie: SingletonView to SingletonWindow, ViewInfo to WindowInfo, etc)
+ *
+ * Revision 1.5  2006/08/29 07:21:08  cesar
+ * Rename com.iver.cit.gvsig.fmap.Fmap class to com.iver.cit.gvsig.fmap.MapContext
+ *
+ * Revision 1.4  2006/08/29 07:13:53  cesar
+ * Rename class com.iver.andami.ui.mdiManager.View to com.iver.andami.ui.mdiManager.IWindow
+ *
+ * Revision 1.3  2006/08/18 08:40:04  jmvivo
+ * Actualizado para que el isEnabled tenga en cuenta que las capas esten 'avialable'
+ *
+ * Revision 1.2  2006/07/27 06:20:28  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.1  2006/07/26 09:53:05  jaume
+ * separadas las herramientas de selecci�n del viewControls al ViewSelectionControls
+ *
+ *
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * Extension that handles the selection tools, selection tools have sense on
+ * vectorial layers only.
+ *
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ *
+ */
+public class ViewSelectionControls extends Extension {
+    private static final Logger logger = LoggerFactory
+            .getLogger(ViewSelectionControls.class);
+	private DefaultViewPanel vista;
+	public void initialize() {
+		// TODO Auto-generated method stub
+		registerIcons();
+	}
+
+	private void registerIcons(){
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-select-geometry",
+				this.getClass().getClassLoader().getResource("images/Select.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-select-by-rectangle",
+				this.getClass().getClassLoader().getResource("images/SelEspacial2b.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-select-by-polygon",
+				this.getClass().getClassLoader().getResource("images/SelectByPolygon.png")
+			);
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-select-invert",
+				this.getClass().getClassLoader().getResource("images/invertSelection.png")
+			);
+	}
+
+	public void execute(String actionCommand) {
+		MapControl mapCtrl = vista.getMapControl();
+		logger.debug("Comand : " + actionCommand);
+		if (actionCommand.equals("SELRECT")) {
+			mapCtrl.setTool("rectSelection");
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (actionCommand.equals("SELPOINT")) {
+			mapCtrl.setTool("pointSelection");
+			((AbstractDocument)vista.getModel()).setModified(true);
+		} else if (actionCommand.equals("SELPOL")) {
+			mapCtrl.setTool("polSelection");
+			((AbstractDocument)vista.getModel()).setModified(true);
+		}
+	}
+
+	public boolean isEnabled() {
+		ViewDocument model = vista.getModel();
+		MapContext mapa = model.getMapContext();
+
+		for (int i = 0; i < mapa.getLayers().getActives().length; i++) {
+			FLayer lyr = mapa.getLayers().getActives()[i];
+			if (lyr.isAvailable() && lyr instanceof FLyrVect) { // && !lyr.isEditing()) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public boolean isVisible() {
+		IWindow f = PluginServices.getMDIManager().getActiveWindow();
+
+		if (f != null && f instanceof DefaultViewPanel) {
+			vista = (DefaultViewPanel) f;
+			ViewDocument model = vista.getModel();
+			MapContext mapa = model.getMapContext();
+
+			return hasVectorLayers(mapa.getLayers());
+
+		}
+		return false;
+	}
+
+	private boolean hasVectorLayers(FLayers layers) {
+		for (int i = 0; i < layers.getLayersCount(); i++) {
+			FLayer lyr =layers.getLayer(i);
+			if (lyr instanceof FLayers){
+				if (hasVectorLayers((FLayers) lyr)){
+					return true;
+				}
+			} else if (lyr instanceof FLyrVect) {
+				return true;
+			}
+		}
+		return false;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewSelectionControls.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewInvertSelection.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewInvertSelection.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ViewInvertSelection.java	(revision 38262)
@@ -0,0 +1,202 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+ *
+ * $Id: ViewSelectionControls.java 26282 2009-01-29 09:58:42Z vcaballero $
+ * $Log$
+ * Revision 1.16  2007-03-06 16:34:02  caballero
+ * Exceptions
+ *
+ * Revision 1.15  2007/01/04 07:24:32  caballero
+ * isModified
+ *
+ * Revision 1.14  2006/12/27 11:08:56  fdiaz
+ * Arreglado el metodo hasVectorLayers para que no se pare en los grupos de capas cuando estos no tienen capas vectoriales.
+ *
+ * Revision 1.13  2006/09/25 16:54:12  caballero
+ * invert selection
+ *
+ * Revision 1.12  2006/09/20 13:17:40  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.11  2006/09/20 10:56:56  sbayarri
+ * Refactorizaci�n clases View y ProjectView
+ *
+ * Revision 1.10  2006/09/15 10:40:03  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.9  2006/09/11 16:14:15  fjp
+ * Invertir seleccion. Falta subirlo al branch de la 1.0
+ *
+ * Revision 1.8  2006/09/11 06:53:13  fjp
+ * Antes del parto
+ *
+ * Revision 1.7  2006/09/04 16:26:54  fjp
+ * Seleccionar por pol�gono
+ *
+ * Revision 1.6  2006/08/29 07:56:27  cesar
+ * Rename the *View* family of classes to *Window* (ie: SingletonView to SingletonWindow, ViewInfo to WindowInfo, etc)
+ *
+ * Revision 1.5  2006/08/29 07:21:08  cesar
+ * Rename com.iver.cit.gvsig.fmap.Fmap class to com.iver.cit.gvsig.fmap.MapContext
+ *
+ * Revision 1.4  2006/08/29 07:13:53  cesar
+ * Rename class com.iver.andami.ui.mdiManager.View to com.iver.andami.ui.mdiManager.IWindow
+ *
+ * Revision 1.3  2006/08/18 08:40:04  jmvivo
+ * Actualizado para que el isEnabled tenga en cuenta que las capas esten 'avialable'
+ *
+ * Revision 1.2  2006/07/27 06:20:28  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.1  2006/07/26 09:53:05  jaume
+ * separadas las herramientas de selecci�n del viewControls al ViewSelectionControls
+ *
+ *
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.dal.DataStore;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * Extension that handles the selection tools, selection tools have sense on
+ * vectorial layers only.
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class ViewInvertSelection extends Extension {
+    private static final Logger logger = LoggerFactory
+            .getLogger(ViewInvertSelection.class);
+	private DefaultViewPanel vista;
+	public void initialize() {
+	}
+
+	public void execute(String actionCommand) {
+		ViewDocument model = vista.getModel();
+		MapContext mapa = model.getMapContext();
+		logger.debug("Comand : " + actionCommand);
+		if (actionCommand.equals("INVERT_SELECTION")) {
+			FLayer[] actives = mapa.getLayers().getActives();
+			for (int i = 0; i < actives.length; i++) {
+				FLayer lyr = actives[i];
+				if (lyr.isAvailable() && lyr instanceof SingleLayer) {
+					SingleLayer lyrSingle = (SingleLayer) lyr;
+					DataStore ds = lyrSingle.getDataStore();
+					if (ds instanceof FeatureStore) {
+						try {
+							((FeatureStore) ds).getFeatureSelection().reverse();
+							((AbstractDocument) vista.getModel())
+									.setModified(true);
+						} catch (DataException e) {
+							e.printStackTrace();
+							NotificationManager.addError(e);
+						}
+					} else {
+						// TODO Not supported yet
+					}
+
+
+				}
+			}
+			((AbstractDocument)vista.getModel()).setModified(true);
+		}
+	}
+
+	public boolean isEnabled() {
+		ViewDocument model = vista.getModel();
+		MapContext mapa = model.getMapContext();
+
+		for (int i = 0; i < mapa.getLayers().getActives().length; i++) {
+			FLayer lyr = mapa.getLayers().getActives()[i];
+			if (lyr.isAvailable() && lyr instanceof FLyrVect){// && !lyr.isEditing()) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public boolean isVisible() {
+		IWindow f = PluginServices.getMDIManager().getActiveWindow();
+
+		if (f != null && f instanceof DefaultViewPanel) {
+			vista = (DefaultViewPanel) f;
+			ViewDocument model = vista.getModel();
+			MapContext mapa = model.getMapContext();
+
+			return hasVectorLayers(mapa.getLayers());
+
+		}
+		return false;
+	}
+
+	private boolean hasVectorLayers(FLayers layers) {
+		for (int i = 0; i < layers.getLayersCount(); i++) {
+			FLayer lyr =layers.getLayer(i);
+			if (lyr instanceof FLayers){
+				if (hasVectorLayers((FLayers) lyr)){
+					return true;
+				}
+			} else if (lyr instanceof FLyrVect) {
+				return true;
+			}
+		}
+		return false;
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ShowDevelInfoExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ShowDevelInfoExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ShowDevelInfoExtension.java	(revision 38262)
@@ -0,0 +1,471 @@
+package org.gvsig.app.extension;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextPane;
+
+import org.gvsig.andami.iconthemes.IIconTheme;
+import org.gvsig.andami.iconthemes.IconThemeManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.MDIManager.UIActionTool;
+import org.gvsig.andami.ui.mdiManager.MDIManagerFactory;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.DataTypesManager;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.PersistenceFactory;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.Persistent;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ShowDevelInfoExtension extends Extension {
+
+	private Logger logger = LoggerFactory
+			.getLogger(ShowDevelInfoExtension.class);
+
+	public void initialize() {
+		// Do nothing
+	}
+
+	public void postInitialize() {
+		super.postInitialize();
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+
+		try {
+			manager.setAutoValidation(PersistenceManager.MANDATORY_IF_DECLARED);
+		} catch (PersistenceException e) {
+			logger.warn(
+					"Error modificando el modo de autovalidacion de persistencia.",
+					e);
+		}
+
+	}
+
+	public void execute(String actionCommand) {
+		if ("ShowPersistenceFactories".equalsIgnoreCase(actionCommand)) {
+			showInfoPanel("Persistence factories", WindowManager.MODE.WINDOW,
+					this.getPersistenceFactories());
+		} else if ("ShowIconThemeInformation".equalsIgnoreCase(actionCommand)) {
+			showInfoPanel("Icon theme information", WindowManager.MODE.WINDOW,
+					this.getIconThemeInformation());
+		} else if ("ShowActionsInformation".equalsIgnoreCase(actionCommand)) {
+			showInfoPanel("Actions information", WindowManager.MODE.WINDOW,
+					this.getActionsInformation());
+		}
+
+	}
+
+	private String getActionsInformation() {
+		StringBuffer buffer = new StringBuffer();
+
+		buffer.append("<html>\n");
+		buffer.append("<body>\n");
+		buffer.append("<h2>Actions information</h2>\n");
+		buffer.append("<br>\n");
+
+		buffer.append("<table border=\"0\">\n");
+		buffer.append("  <tr>\n");
+		buffer.append("    <td>Name</td>\n");
+		buffer.append("    <td>Extension</td>\n");
+		buffer.append("    <td>Position</td>\n");
+		buffer.append("    <td>Text</td>\n");
+		buffer.append("    <td>Command</td>\n");
+		buffer.append("    <td>Icon</td>\n");
+		buffer.append("    <td>Tip</td>\n");
+		buffer.append("    <td>Enabled text</td>\n");
+		buffer.append("  </tr>\n");
+		Iterator<UIActionTool> actions = MDIManagerFactory.createManager()
+				.getActionTools();
+		while (actions.hasNext()) {
+			UIActionTool action = actions.next();
+			buffer.append("  <tr>\n");
+			buffer.append("    <td>").append(action.getName())
+					.append("</td>\n");
+			buffer.append("    <td>").append(action.getExtensionName())
+					.append("</td>\n");
+			buffer.append("    <td>").append(action.getPosition())
+					.append("</td>\n");
+			buffer.append("    <td>").append(action.getText())
+					.append("</td>\n");
+			buffer.append("    <td>").append(action.getCommand())
+					.append("</td>\n");
+			buffer.append("    <td>").append(action.getIconName())
+					.append("</td>\n");
+			buffer.append("    <td>").append(action.getTooptip())
+					.append("</td>\n");
+			buffer.append("    <td>").append(action.getEnableText())
+					.append("</td>\n");
+			buffer.append("  </tr>\n");
+		}
+		buffer.append("</table>\n");
+		buffer.append("</body>\n");
+		buffer.append("</html>\n");
+
+		save2file("actionsinfo", buffer.toString());
+
+		return buffer.toString();
+	}
+
+	private String getIconThemeInformation() {
+		StringBuffer buffer = new StringBuffer();
+
+		IconThemeManager manager = IconThemeManager.getIconThemeManager();
+		IIconTheme theme = manager.getCurrent();
+
+		buffer.append("<html>\n");
+		buffer.append("<body>\n");
+		buffer.append("<h2>Icon theme information</h2>\n");
+		buffer.append("<br>\n");
+		buffer.append("Theme: ");
+		buffer.append(theme.getName());
+		buffer.append("<br>\n");
+		buffer.append("Description: ");
+		buffer.append(theme.getDescription());
+		buffer.append("<br>\n");
+		buffer.append("Version: ");
+		buffer.append(theme.getVersion());
+		buffer.append("<br>\n");
+
+		buffer.append("<table border=\"0\">\n");
+		buffer.append("  <tr>\n");
+		buffer.append("    <td>Name</td>\n");
+		buffer.append("    <td>Resource id</td>\n");
+		buffer.append("  </tr>\n");
+		Iterator<String> names = theme.iterator();
+		while (names.hasNext()) {
+			String name = names.next();
+			buffer.append("  <tr>\n");
+			buffer.append("    <td>").append(name).append("</td>\n");
+			buffer.append("    <td>").append(theme.getResourceID(name))
+					.append("</td>\n");
+			buffer.append("  </tr>\n");
+		}
+		buffer.append("</table>\n");
+		buffer.append("</body>\n");
+		buffer.append("</html>\n");
+
+		save2file("iconthemeinfo", buffer.toString());
+
+		return buffer.toString();
+	}
+
+	private void save2file(String name, String contents) {
+		File file;
+		try {
+			file = File.createTempFile("gvsig-" + name, ".html");
+			FileWriter fwriter = new FileWriter(file);
+			fwriter.append(contents);
+			fwriter.close();
+		} catch (IOException e) {
+			logger.warn("Can't save contents to temp file gvsig-" + name, e);
+		}
+	}
+
+	public boolean isEnabled() {
+		return true;
+	}
+
+	public boolean isVisible() {
+		return true;
+	}
+
+	private void showInfoPanel(String title, WindowManager.MODE mode,
+			String html) {
+		JPanel panel = new JInfoPanel(html);
+		WindowManager wm = ToolsSwingLocator.getWindowManager();
+		wm.showWindow(panel, title, mode);
+	}
+
+	private class JInfoPanel extends JPanel {
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = 7164653790859770568L;
+
+		private JButton accept = null;
+		private JButton copy = null;
+		private JTextPane text = null;
+
+		public JInfoPanel(final String html) {
+			this.setLayout(new BorderLayout());
+			this.setPreferredSize(new Dimension(500, 300));
+			this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
+
+			text = new JTextPane();
+			text.setContentType("text/html");
+			text.setEditable(false);
+			text.setText(html);
+			text.setCaretPosition(0);
+
+			JScrollPane scrollPane = new JScrollPane(text);
+			scrollPane.setPreferredSize(new Dimension(500, 220));
+
+			accept = new JButton("Accept");
+			accept.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent arg0) {
+					setVisible(false);
+				}
+			});
+			copy = new JButton("Copy to clipboard");
+			copy.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent arg0) {
+					ApplicationLocator.getManager().putInClipboard(
+							text.getText());
+				}
+			});
+
+			JPanel buttonsPanel = new JPanel();
+			buttonsPanel.setLayout(new BoxLayout(buttonsPanel,
+					BoxLayout.LINE_AXIS));
+			buttonsPanel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
+
+			buttonsPanel.add(Box.createHorizontalGlue());
+			buttonsPanel.add(copy);
+			buttonsPanel.add(accept);
+
+			this.add(scrollPane, BorderLayout.CENTER);
+			this.add(buttonsPanel, BorderLayout.SOUTH);
+			this.setVisible(true);
+		}
+	}
+
+	public class PersistenceInfo implements Comparable<PersistenceInfo> {
+		PersistenceFactory factory;
+		@SuppressWarnings("rawtypes")
+		Class theClass;
+		DynStruct definition;
+
+		PersistenceInfo(PersistenceFactory factory,
+				@SuppressWarnings("rawtypes") Class theClass,
+				DynStruct definition) {
+			this.factory = factory;
+			this.theClass = theClass;
+			this.definition = definition;
+		}
+
+		String getDefinitionName() {
+			if (definition == null) {
+				return "";
+			}
+			return definition.getFullName();
+		}
+
+		String getDefinitionDescription() {
+			if (definition == null) {
+				return "";
+			}
+			return definition.getDescription();
+		}
+
+		String getClassName() {
+			if (theClass == null) {
+				return "";
+			}
+			return theClass.getName();
+		}
+
+		String getFactoryName() {
+			if (factory == null) {
+				return "";
+			}
+			return factory.getClass().getName();
+		}
+
+		public int compareTo(PersistenceInfo other) {
+			int r = this.factory.getClass().getName()
+					.compareTo(other.factory.getClass().getName());
+			if (r == 0) {
+				return this.theClass.getName().compareTo(
+						other.theClass.getName());
+			}
+			return r;
+		}
+	}
+
+	@SuppressWarnings("rawtypes")
+	public class ClassComparator implements Comparator {
+
+		public int compare(Object o1, Object o2) {
+			if (o1 == null || o2 == null || ((Class) o1).getName() == null) {
+				logger.warn("Esto no deberia estar pasando.");
+				return 0; // FIXME
+			}
+			return ((Class) o1).getName().compareTo(((Class) o2).getName());
+		}
+
+	}
+
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	private String getPersistenceFactories() {
+		int warningsCounter = 0;
+		List<PersistenceInfo> classes = new ArrayList<PersistenceInfo>();
+		Set<Class> referencedClasses = new TreeSet<Class>(new ClassComparator());
+
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+
+		List<PersistenceFactory> factories = manager.getFactories();
+		for (PersistenceFactory factory : factories) {
+			List<Class> theClasses = factory.getManagedClasses();
+			for (Class theClass : theClasses) {
+
+				DynStruct definition = manager.getDefinition(theClass);
+				List defs = factory.getDefinitions();
+				if (definition == null && defs != null && !defs.isEmpty()) {
+					for (int i = 0; i < defs.size(); i++) {
+						definition = (DynStruct) defs.get(i);
+						classes.add(new PersistenceInfo(factory, theClass,
+								definition));
+					}
+				} else {
+					classes.add(new PersistenceInfo(factory, theClass,
+							definition));
+				}
+			}
+		}
+		Collections.sort(classes);
+
+		StringBuffer buffer = new StringBuffer();
+		StringBuffer warnings = new StringBuffer();
+
+		buffer.append("<html>\n");
+		buffer.append("<body>\n");
+		buffer.append("<h2>Supported persistent classes</h2>\n");
+		buffer.append("<br>\n");
+
+		buffer.append("<ol>\n");
+		for (PersistenceInfo classInfo : classes) {
+			StringBuffer classBuffer = new StringBuffer();
+			boolean warning = false;
+			classBuffer.append("  <li>\n    ");
+			classBuffer.append("Class: <i>");
+			classBuffer.append(classInfo.getClassName());
+			classBuffer.append("</i><br>\n    Persistent: <i>");
+			if (Persistent.class.isAssignableFrom(classInfo.theClass)) {
+				classBuffer.append(" yes.");
+			} else {
+				classBuffer.append(" through a factory.");
+			}
+			classBuffer.append("<br>\n    Factory: <i>");
+			classBuffer.append(classInfo.getFactoryName()).append(
+					"</i><br>\n    Definition name: <i>");
+			classBuffer.append(classInfo.getDefinitionName()).append(
+					"</i><br>\n    Description: \n");
+			classBuffer.append(classInfo.getDefinitionDescription()).append(
+					"<br>\n    ");
+			DataTypesManager dataTypesManager = ToolsLocator
+					.getDataTypesManager();
+			DynStruct definition = classInfo.definition;
+			if (definition == null) {
+				classBuffer.append("Definition for ")
+						.append(classInfo.getClassName())
+						.append(" is null.<br>\n    ");
+				warningsCounter++;
+				warning = true;
+			} else {
+				DynField[] fields = definition.getDynFields();
+				for (int i = 0; i < fields.length; i++) {
+					DynField field = fields[i];
+					if (dataTypesManager.isContainer(field.getType())) {
+						if (field.getClassOfItems() == null) {
+							classBuffer
+									.append("Field <b>")
+									.append(field.getName())
+									.append("</b>, container,  can't has class for value of items.<br>\n    ");
+							warningsCounter++;
+							warning = true;
+						} else {
+							classBuffer.append("Field ")
+									.append(field.getName())
+									.append(", container of '")
+									.append(field.getClassOfItems().getName())
+									.append("'.<br>\n    ");
+							referencedClasses.add(field.getClassOfItems());
+						}
+					} else if (dataTypesManager.isObject(field.getType())) {
+						if (field.getClassOfValue() == null) {
+							classBuffer
+									.append("Field <b>")
+									.append(field.getName())
+									.append("</b> can't has class of value.<br>\n    ");
+							warningsCounter++;
+							warning = true;
+						} else {
+							classBuffer.append("Field ")
+									.append(field.getName()).append(" of '")
+									.append(field.getClassOfValue())
+									.append("'.<br>\n    ");
+							referencedClasses.add(field.getClassOfValue());
+						}
+					}
+				}
+			}
+			classBuffer.append("<br>\n  </li>\n");
+			buffer.append(classBuffer);
+			if (warning) {
+				warnings.append(classBuffer);
+			}
+		}
+		buffer.append("</ol>\n");
+		buffer.append("<br>\n");
+		buffer.append("<br>\n");
+
+		buffer.append("<h2>Persistent classes with problems</h2>\n");
+		buffer.append("<ol>\n");
+		buffer.append(warnings);
+		buffer.append("</ol>\n");
+		buffer.append("<br>\n<p>Total warnigs: ").append(warningsCounter)
+				.append("</p>");
+
+		buffer.append("<h2>Not persistents used classes</h2>\n");
+		buffer.append("<ol>\n");
+		for (Class theClass : referencedClasses) {
+			// if( manager.canPersist(theClass) ) {
+			// continue;
+			// }
+			if (Persistent.class.isAssignableFrom(theClass)) {
+				continue;
+			}
+			if (manager.getFactories().get(theClass) != null) {
+				continue;
+			}
+			buffer.append("  <li>\n");
+			buffer.append("    <i>").append(theClass.getName())
+					.append("</i><br>\n");
+			buffer.append("  </li>\n");
+			warningsCounter++;
+		}
+		buffer.append("</ol>\n");
+
+		buffer.append("</body>\n");
+		buffer.append("</html>\n");
+
+		save2file("persistenceinfo", buffer.toString());
+
+		return buffer.toString();
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ShowDevelInfoExtension.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/About.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/About.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/About.java	(revision 38262)
@@ -0,0 +1,224 @@
+/*
+ * Created on 17-feb-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.net.URL;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+
+import org.gvsig.about.AboutLocator;
+import org.gvsig.about.AboutManager;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+
+
+
+/**
+ * Extensi�n que abre una nueva ventana mostrando la informaci�n sobre el
+ * gvSIG.
+ *
+ */
+public class About extends Extension {
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		return true;
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		return true;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+	}
+
+	private URL getResource(String name) {
+        URL resource = this.getClass().getClassLoader().getResource(name);
+		return resource;
+	}
+	
+	public void postInitialize() {
+		super.postInitialize();
+		ApplicationManager application = ApplicationLocator.getManager();
+		
+		Version version = application.getVersion();
+		AboutManager about = application.getAbout();
+		
+        about.setProject("gvSIG desktop", getResource("about.htm"),
+            getResource("images/gvsig.png"));
+		about.getProject().set("build",version.getBuildId());
+		about.getProject().set("version",version.getFormat());
+        about.getProject().set("java.version",
+            System.getProperty("java.version"));
+		
+		about.addSponsor(
+			"CIT GVA", //"Conselleria d'infraestructures i transport de la Generalitat Valenciana",
+			getResource("gva-cit.html"),
+			1
+		);
+
+		about.addDeveloper(
+			"IVER",
+			getResource("iver.html"),
+			1
+		);
+		
+		about.addDeveloper(
+			"PRODEVELOP",
+			getResource("prodevelop.html"),
+			2
+		);
+		
+		about.addDeveloper(
+			"Software Colaborativo",
+			getResource("scolab.html"),
+			3
+		);
+		
+		about.addDeveloper(
+			"DISID",
+			getResource("disid.html"),
+			4
+		);
+	}
+
+	public void execute(String actionCommand) {
+		ApplicationManager application = ApplicationLocator.getManager();
+		
+		application.getUIManager().addCentredWindow(new AboutWindow());
+	}
+    
+	class AboutWindow extends JPanel implements IWindow {
+
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = -3577229971045886621L;
+
+		AboutWindow() {
+			AboutManager aboutManager = AboutLocator.getManager();
+
+			this.setLayout(new BorderLayout());
+			this.add(aboutManager.getAboutPanel(), BorderLayout.CENTER);
+			this.add(new JPanelButtons(), BorderLayout.SOUTH);
+		}
+		
+		public WindowInfo getWindowInfo() {
+			WindowInfo winfo = new WindowInfo(
+					WindowInfo.MODALDIALOG|WindowInfo.RESIZABLE
+			);
+			winfo.setTitle(PluginServices.getText(this,"acerca_de"));
+            winfo.setHeight(500);
+            winfo.setWidth(750);
+			return winfo;
+		}
+
+		public Object getWindowProfile() {
+			return WindowInfo.DIALOG_PROFILE;
+		}
+		
+		public void closeWindow() {
+			PluginServices.getMDIManager().closeWindow(this);
+		}
+
+		class JPanelButtons extends JPanel {
+			/**
+			 * 
+			 */
+			private static final long serialVersionUID = 1529755877776747074L;
+			JButton close = null;
+			JButton installedPlugins = null;
+
+			JPanelButtons() {
+                this.setLayout(new FlowLayout(FlowLayout.RIGHT));
+				this.close = getCloseButton();
+				this.installedPlugins = getInstalledPluginsButton();
+                this.add(this.close);
+				this.add(this.installedPlugins);
+			}
+
+			private JButton getCloseButton() {
+				JButton button = new JButton(
+						PluginServices.getText(this, "Close"));
+				button.addActionListener(new ActionListener() {
+					public void actionPerformed(ActionEvent e) {
+						closeWindow();
+					}
+				});
+				return button;
+			}
+
+			private JButton getInstalledPluginsButton() {
+				JButton button = new JButton(PluginServices.getText(this,
+						"Installed plugins"));
+				button.addActionListener(new ActionListener() {
+					public void actionPerformed(ActionEvent e) {
+						// TODO: Need implementation
+					}
+				});
+				return button;
+			}
+
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/About.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitialWarningExtension.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitialWarningExtension.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitialWarningExtension.java	(revision 38262)
@@ -0,0 +1,210 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.4  2006-10-02 13:52:34  jaume
+* organize impots
+*
+* Revision 1.3  2006/08/29 07:56:27  cesar
+* Rename the *View* family of classes to *Window* (ie: SingletonView to SingletonWindow, ViewInfo to WindowInfo, etc)
+*
+* Revision 1.2  2006/08/29 07:13:53  cesar
+* Rename class com.iver.andami.ui.mdiManager.View to com.iver.andami.ui.mdiManager.IWindow
+*
+* Revision 1.1  2006/05/25 16:27:21  jaume
+* *** empty log message ***
+*
+*
+*/
+package org.gvsig.app.extension;
+
+import java.awt.Color;
+import java.awt.Window;
+
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JWindow;
+import javax.swing.border.TitledBorder;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+
+
+public class InitialWarningExtension extends Extension {
+//	public static Preferences fPrefs = Preferences.userRoot().node( "gvsig.initial_warkning" );
+//	private boolean show = fPrefs.getBoolean( "show_panel", true);
+	private DlgWaring dlgWarning;
+    /**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		return true;
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		return true;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+//		if (show) {
+			dlgWarning = new DlgWaring();
+			dlgWarning.setText(PluginServices.getText(this, "initial_warning"));
+			dlgWarning.setVisible(true);
+			//			PluginServices.getMDIManager().addWindow(dlgWarning);
+//		}
+
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
+	 */
+	public void execute(String actionCommand) {
+
+	}
+
+	private class DlgWaring extends JWindow{
+
+		private JButton btnOk = null;
+		private JCheckBox chkBoxShowAgain = null;
+		private JLabel lblText = null;
+		private JPanel panel=null;
+		private JPanel panel2;
+		/**
+		 * This is the default constructor
+		 */
+		public DlgWaring() {
+			super((Window)PluginServices.getMainFrame());
+			Window window=(Window)PluginServices.getMainFrame();
+			setLocation(window.getWidth()/2+window.getX()-150,window.getHeight()/2+window.getY()-150);
+			initialize();
+			this.setAlwaysOnTop(true);
+		}
+
+		public void setText(String string) {
+			lblText.setText(string);
+		}
+
+		/**
+		 * This method initializes this
+		 *
+		 * @return void
+		 */
+		private void initialize() {
+			panel=new JPanel();
+			panel.setBackground(Color.black);
+			panel.setLayout(null);
+			panel.setBounds(0,0,300,300);
+			panel2=new JPanel();
+			panel2.setLayout(null);
+			panel2.setBounds(2,2,298,298);
+			lblText = new JLabel();
+			lblText.setBounds(15, 15, 271, 200);
+			lblText.setText("JLabel");
+			lblText.setBorder(new TitledBorder(PluginServices.getText(this, "warning")));
+			panel2.add(lblText);
+			panel2.setSize((int)(panel.getSize().getWidth()-4),(int)(panel.getSize().getHeight()-4));
+			panel.add(panel2);
+			this.setLayout(null);
+			this.setSize(300, 300);
+			this.add(getBtnOk(), null);
+//			this.add(getChkBoxShowAgain(), null);
+			this.add(panel, null);
+		}
+
+		/**
+		 * This method initializes btnOk
+		 *
+		 * @return javax.swing.JButton
+		 */
+		private JButton getBtnOk() {
+			if (btnOk == null) {
+				btnOk = new JButton();
+				btnOk.setBounds(100, 250, 100, 20);
+				btnOk.setText(PluginServices.getText(this, "aceptar"));
+				btnOk.addActionListener(new java.awt.event.ActionListener() {
+					public void actionPerformed(java.awt.event.ActionEvent e) {
+						dlgWarning.setVisible(false);
+						dlgWarning.dispose();
+						//						PluginServices.getMDIManager().closeWindow(dlgWarning);
+					}
+				});
+			}
+			return btnOk;
+		}
+
+		/**
+		 * This method initializes chkBoxShowAgain
+		 *
+		 * @return javax.swing.JCheckBox
+		 */
+//		private JCheckBox getChkBoxShowAgain() {
+//			if (chkBoxShowAgain == null) {
+//				chkBoxShowAgain = new JCheckBox();
+//				chkBoxShowAgain.setBounds(44, 116, 241, 21);
+//				chkBoxShowAgain.setSelected(true);
+//				chkBoxShowAgain.setText(PluginServices.getText(this, "show_this_dialog_next_startup"));
+//			}
+//			return chkBoxShowAgain;
+//		}
+
+		public WindowInfo getWindowInfo() {
+			WindowInfo vi = new WindowInfo(WindowInfo.MODALDIALOG);
+			vi.setWidth(300+8);
+			vi.setHeight(250);
+			vi.setTitle(PluginServices.getText(this, "warning"));
+			return vi;
+		}
+
+	}  //  @jve:decl-index=0:visual-constraint="10,10"
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/InitialWarningExtension.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomPrev.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomPrev.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomPrev.java	(revision 38262)
@@ -0,0 +1,104 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.ViewPort;
+
+
+
+/**
+ * Extensi�n que cambia el extent de la vista al extent anterior.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ZoomPrev extends Extension {
+	private DefaultViewPanel vista;
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		ViewPort vp = vista.getModel().getMapContext().getViewPort();
+
+		return vp.getExtents().hasPrevious();
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+															 .getActiveWindow();
+
+		if (f!=null && f instanceof DefaultViewPanel) {
+			vista = (DefaultViewPanel) f;
+
+			MapContext mapa = vista.getModel().getMapContext();
+
+			return mapa.getLayers().getLayersCount() > 0;
+		}
+		return false;
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
+	 */
+	public void execute(String arg0) {
+		ViewPort vp = vista.getModel().getMapContext().getViewPort();
+		vp.setPreviousExtent();
+		((AbstractDocument)vista.getModel()).setModified(true);
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-zoom-back",
+				this.getClass().getClassLoader().getResource("images/ZoomPrevio.png")
+			);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/ZoomPrev.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/LinkControls.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/LinkControls.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/LinkControls.java	(revision 38262)
@@ -0,0 +1,155 @@
+/*
+ * Created on 01-jun-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.extension;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+/**
+ * Extensi�n para gestionar los hiperlinks.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class LinkControls extends Extension {
+    private static final Logger logger = LoggerFactory
+            .getLogger(LinkControls.class);
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
+	 */
+	public void execute(String s) {
+		DefaultViewPanel vista = (DefaultViewPanel) PluginServices.getMDIManager().getActiveWindow();
+		//ProjectView model = vista.getModel();
+		//FMap mapa = model.getMapContext();
+		MapControl mapCtrl = vista.getMapControl();
+		logger.debug("Comand : " + s);
+
+		if (s.compareTo("LINK") == 0) {
+			mapCtrl.setTool("link");
+		}
+	}
+
+	/**
+	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
+	 */
+	public boolean isVisible() {
+		org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
+															 .getActiveWindow();
+
+		if (f == null) {
+			return false;
+		}
+
+		if (f instanceof DefaultViewPanel) {
+
+		  MapContext mapa = ((DefaultViewPanel) f).getModel().getMapContext();
+
+		  return mapa.getLayers().getLayersCount() > 0;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
+	 */
+	public boolean isEnabled() {
+		DefaultViewPanel f = (DefaultViewPanel) PluginServices.getMDIManager().getActiveWindow();
+
+		if (f == null) {
+			return false;
+		}
+
+		if (f instanceof org.gvsig.app.project.documents.view.gui.DefaultViewPanel) {
+			org.gvsig.app.project.documents.view.gui.DefaultViewPanel view = (org.gvsig.app.project.documents.view.gui.DefaultViewPanel) f;
+			ViewDocument model = view.getModel();
+			Boolean p=null;
+
+
+			FLayer[] activas = model.getMapContext().getLayers().getActives();
+
+			//Utilizo esta comprobaci�n para poner el bot�n de la herramienta desactivado
+			//cuando se carga la ventana (comprobar que hay alguna capa activa)
+			if(activas.length==0)
+				return false;
+
+			for (int i = 0; i < activas.length; i++) {
+				if (!activas[i].isAvailable()) {
+					return false;
+				}
+				if(!activas[i].allowLinks())return false;
+				if(activas[i].getLinkProperties()==null || activas[i].getLinkProperties().getField()==null)
+					return false;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * @see org.gvsig.andami.plugins.IExtension#initialize()
+	 */
+	public void initialize() {
+		registerIcons();
+	}
+
+	private void registerIcons(){
+
+		PluginServices.getIconTheme().registerDefault(
+				"view-query-link",
+				this.getClass().getClassLoader().getResource("images/Link.png")
+			);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/extension/LinkControls.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/panelGroup/PanelGroupDialog.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/panelGroup/PanelGroupDialog.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/panelGroup/PanelGroupDialog.java	(revision 38262)
@@ -0,0 +1,590 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.io.Serializable;
+import java.util.Hashtable;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.IWindowListener;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.gui.beans.Messages;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
+import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
+import org.gvsig.gui.beans.buttonspanel.IButtonsPanel;
+import org.gvsig.gui.beans.defaultbuttonspanel.DefaultButtonsPanel;
+import org.gvsig.gui.beans.panelGroup.AbstractPanelGroup;
+import org.gvsig.gui.beans.panelGroup.IPanelGroup;
+import org.gvsig.gui.beans.panelGroup.exceptions.EmptyPanelGroupException;
+import org.gvsig.gui.beans.panelGroup.exceptions.EmptyPanelGroupGUIException;
+import org.gvsig.gui.beans.panelGroup.exceptions.ListCouldntAddPanelException;
+import org.gvsig.gui.beans.panelGroup.loaders.IPanelGroupLoader;
+import org.gvsig.gui.beans.panelGroup.panels.IPanel;
+import org.gvsig.tools.exception.BaseException;
+
+
+/**
+ * <p>Graphical component that is represented as an {@link IWindow IWindow}, and that has two immediate internal
+ *  panels, the top is a {@link PanelGroup PanelGroup}, and the bottom is a {@link PanelGroupDialog PanelGroupDialog}
+ *  of <code>PanelGroupDialog.BUTTONS_ACCEPTCANCELAPPLY</code> type.</p>
+ *
+ * @see DefaultButtonsPanel
+ *
+ * @version 15/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+ */
+public class PanelGroupDialog extends DefaultButtonsPanel implements ButtonsPanelListener, IWindow, IWindowListener, IPanelGroup, IButtonsPanel, Serializable {
+	private static final long serialVersionUID = 6267404338808012765L;
+
+	/**
+	 * <p>Default width.</p>
+	 */
+	protected static int defaultWidth = 530;
+
+	/**
+	 * <p>Default height.</p>
+	 */
+	protected static int defaultHeight = 432;
+
+	/**
+	 * <p>This graphical component has a panel that allows work {@link IPanel IPanel}.</p>
+	 *
+	 * @see #getPanelGroup()
+	 */
+	protected IPanelGroup panelGroup;
+
+	/**
+	 * <p>Properties about the managing of this dialog by <i>Andami</i>.</p>
+	 */
+	private WindowInfo windowInfo;
+
+	/**
+	 * <p>Default constructor with two parameters, that creates a panel with an {@link AbstractPanelGroup AbstractPanelGroup}
+	 *  on top and another with <i>accept</i>, <i>apply</i>, and <i>cancel</i> buttons on bottom.</p>
+	 *
+	 * @param windowTitle title for this <code>IWindow</code>
+	 * @param PanelGroup kind of panel for work with this <code>IWindow</code>
+	 */
+	public PanelGroupDialog(String windowTitle, IPanelGroup panelGroup) {
+		super(ButtonsPanel.BUTTONS_ACCEPTCANCELAPPLY);
+
+		windowInfo = new WindowInfo();
+		windowInfo.setTitle(PluginServices.getText(this, windowTitle));
+		windowInfo.setWidth(defaultWidth);
+		windowInfo.setHeight(defaultHeight);
+
+		this.panelGroup = panelGroup;
+
+		initialize();
+	}
+
+	/**
+	 * <p>Default constructor with six parameters, that creates a panel with an {@link AbstractPanelGroup AbstractPanelGroup}
+	 *  on top and another with <i>accept</i>, <i>apply</i>, and <i>cancel</i> buttons on bottom.</p>
+	 * <p>Last parameter is the {@link PanelGroup PanelGroup} graphical component that
+	 *  this panel will have, and the previous are information to initialize this {@link IWindow IWindow}.</p>
+	 *
+	 * @param additionalInfo additional information about this <code>IWindow</code>
+	 * @param windowTitle title for this <code>IWindow</code>
+	 * @param width width for this component
+	 * @param height height for this component
+	 * @param windowInfoProperties properties about the managing of this dialog by <i>Andami</i>
+	 * @param PanelGroup kind of panel for work with this <code>IWindow</code>
+	 */
+	public PanelGroupDialog(String additionalInfo, String windowTitle, int  width, int height, byte windowInfoProperties, IPanelGroup panelGroup) {
+		super(ButtonsPanel.BUTTONS_ACCEPTCANCELAPPLY);
+
+		windowInfo = new WindowInfo(windowInfoProperties);
+		windowInfo.setAdditionalInfo(additionalInfo);
+		windowInfo.setTitle(PluginServices.getText(this, windowTitle));
+		windowInfo.setWidth(width);
+		windowInfo.setHeight(height);
+
+		this.panelGroup = panelGroup;
+
+		initialize();
+	}
+
+	/**
+	 * <p>This method is used to execute initialization tasks of this graphical component.</p>
+	 */
+	private void initialize() {
+		setLayout(new BorderLayout());
+		addButtonPressedListener(this);
+
+		this.panelGroup.setParentPanelGroup(this);
+
+		// Mask possible extra exceptions
+		if (panelGroup != null) {
+			add((AbstractPanelGroup)panelGroup, BorderLayout.CENTER);
+
+			// Holds the preferred size
+			if ((windowInfo.getWidth() > getPreferredSize().width) || (windowInfo.getHeight() > getPreferredSize().height)) {
+				setPreferredSize(new Dimension(Math.max(windowInfo.getWidth(), getWidth()), Math.max(windowInfo.getHeight(), getHeight())));
+			}
+		}
+	}
+
+	/**
+	 * <p>Determinates if this panel is resizable or not.</p>
+	 *
+	 * @return <code>true</code> if it's resizable; <code>false</code> otherwise.
+	 */
+	public boolean isResizable() {
+		return windowInfo.isResizable();
+	}
+
+	/**
+	 * <p>Closes this {@link IWindow IWindow}.</p>
+	 */
+	public void close() {
+		PluginServices.getMDIManager().closeWindow(this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.andami.ui.mdiManager.IWindow#getWindowInfo()
+	 */
+	public WindowInfo getWindowInfo() {
+		return windowInfo;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
+	 */
+	public void actionButtonPressed(ButtonsPanelEvent e) {
+		// Masks possible extra exceptions
+		if (panelGroup != null) {
+			switch (e.getButton()) {
+			case ButtonsPanel.BUTTON_ACCEPT:
+				accept();
+				close();
+				break;
+			case ButtonsPanel.BUTTON_APPLY:
+				apply();
+				break;
+			case ButtonsPanel.BUTTON_CANCEL:
+				cancel();
+				close();
+				break;
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.andami.ui.mdiManager.IWindowListener#windowActivated()
+	 */
+	public void windowActivated() {}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.andami.ui.mdiManager.IWindowListener#windowClosed()
+	 */
+	public void windowClosed() {
+		// Masks possible extra exceptions
+		if (panelGroup != null) {
+			if (!panelGroup.isAccepted()) {
+				panelGroup.cancel();
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#accept()
+	 */
+	public void accept() {
+		panelGroup.accept();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#addPanel(org.gvsig.gui.beans.panelGroup.panels.IPanel)
+	 */
+	public void addPanel(IPanel panel) throws BaseException {
+		panelGroup.addPanel(panel);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#apply()
+	 */
+	public void apply() {
+		panelGroup.apply();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#cancel()
+	 */
+	public void cancel() {
+		panelGroup.cancel();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#getActivePanel()
+	 */
+	public IPanel getActivePanel() {
+		return panelGroup.getActivePanel();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#getProperties()
+	 */
+	public Hashtable getProperties() {
+		return panelGroup.getProperties();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#getReference()
+	 */
+	public Object getReference() {
+		return panelGroup.getReference();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#updateReference(java.lang.Object)
+	 */
+	public void updateReference(Object reference) {
+		panelGroup.updateReference(reference);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#isAccepted()
+	 */
+	public boolean isAccepted() {
+		return panelGroup.isAccepted();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#loadPanels(org.gvsig.gui.beans.panelGroup.loaders.IPanelGroupLoader)
+	 */
+	public void loadPanels(IPanelGroupLoader loader) throws ListCouldntAddPanelException, EmptyPanelGroupException, EmptyPanelGroupGUIException {
+		try {
+			panelGroup.loadPanels(loader);
+
+			if (panelGroup.getPanelInGUICount() == 0) {
+				close();
+			}
+		}
+		catch (BaseException be) {
+			be.setTranslator(new Messages());
+
+			JOptionPane.showMessageDialog(this, be.getLocalizedMessageStack());
+
+			// Don't show the dialog if there is no panels in the GUI
+			if (panelGroup.getPanelInGUICount() == 0) {
+				close();
+			}
+		}
+		catch (Exception e) {
+			NotificationManager.showMessageError(e.getMessage(), e);
+
+			// Don't show the dialog if there is no panels in the GUI
+			if (panelGroup.getPanelInGUICount() == 0) {
+				close();
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#removePanel(org.gvsig.gui.beans.panelGroup.panels.IPanel)
+	 */
+	public void removePanel(IPanel panel) {
+		panelGroup.removePanel(panel);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#isPanelInGUI(org.gvsig.gui.beans.panelGroup.panels.IPanel)
+	 */
+	public boolean isPanelInGUI(IPanel panel) {
+		return panelGroup.isPanelInGUI(panel);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#setPanelInGUI(org.gvsig.gui.beans.panelGroup.panels.IPanel, boolean)
+	 */
+	public void setPanelInGUI(IPanel panel, boolean b) {
+		panelGroup.setPanelInGUI(panel, b);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#getPanelCount()
+	 */
+	public int getPanelCount() {
+		return panelGroup.getPanelCount();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#getPanelInGUICount()
+	 */
+	public int getPanelInGUICount() {
+		return panelGroup.getPanelInGUICount();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see javax.swing.JComponent#setPreferredSize(java.awt.Dimension)
+	 */
+	public void setPreferredSize(Dimension preferredSize) {
+		super.setPreferredSize(preferredSize);
+
+		windowInfo.setWidth(preferredSize.width);
+		windowInfo.setHeight(preferredSize.height);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.IPanelGroup#setParentPanelGroup(org.gvsig.gui.beans.panelGroup.IPanelGroup)
+	 */
+	public void setParentPanelGroup(IPanelGroup parent) {
+		panelGroup.setParentPanelGroup(parent);
+
+//		this.addComponentListener(new ComponentAdapter())
+	}
+
+	///// BEGIN: Buttons Enable/Disable functionality /////
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledAcceptButton()
+	 */
+	public boolean isEnabledAcceptButton() {
+		return getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).isEnabled();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledApplyButton()
+	 */
+	public boolean isEnabledApplyButton() {
+		return getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).isEnabled();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledCancelButton()
+	 */
+	public boolean isEnabledCancelButton() {
+		return getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL).isEnabled();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledCloseButton()
+	 */
+	public boolean isEnabledCloseButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledExitButton()
+	 */
+	public boolean isEnabledExitButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledHideDetailsButton()
+	 */
+	public boolean isEnabledHideDetailsButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledNoButton()
+	 */
+	public boolean isEnabledNoButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledPauseButton()
+	 */
+	public boolean isEnabledPauseButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledRestartButton()
+	 */
+	public boolean isEnabledRestartButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledSaveButton()
+	 */
+	public boolean isEnabledSaveButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledSeeDetailsButton()
+	 */
+	public boolean isEnabledSeeDetailsButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#isEnabledYesButton()
+	 */
+	public boolean isEnabledYesButton() {
+		/* Unimplemented */
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledAcceptButton(boolean)
+	 */
+	public void setEnabledAcceptButton(boolean b) {
+		getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).setEnabled(b);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledApplyButton(boolean)
+	 */
+	public void setEnabledApplyButton(boolean b) {
+		getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).setEnabled(b);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledCancelButton(boolean)
+	 */
+	public void setEnabledCancelButton(boolean b) {
+		getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL).setEnabled(b);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledCloseButton(boolean)
+	 */
+	public void setEnabledCloseButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledExitButton(boolean)
+	 */
+	public void setEnabledExitButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledHideDetailsButton(boolean)
+	 */
+	public void setEnabledHideDetailsButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledNoButton(boolean)
+	 */
+	public void setEnabledNoButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledPauseButton(boolean)
+	 */
+	public void setEnabledPauseButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledRestartButton(boolean)
+	 */
+	public void setEnabledRestartButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledSaveButton(boolean)
+	 */
+	public void setEnabledSaveButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledSeeDetailsButton(boolean)
+	 */
+	public void setEnabledSeeDetailsButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.buttonspanel.IButtonsPanel#setEnabledYesButton(boolean)
+	 */
+	public void setEnabledYesButton(boolean b) {
+		/* Unimplemented */
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.PROPERTIES_PROFILE;
+	}
+	///// END: Buttons Enable/Disable functionality /////
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/panelGroup/loaders/PanelGroupLoaderFromExtensionPoint.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/panelGroup/loaders/PanelGroupLoaderFromExtensionPoint.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/panelGroup/loaders/PanelGroupLoaderFromExtensionPoint.java	(revision 38262)
@@ -0,0 +1,172 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.panelGroup.loaders;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.gui.beans.panelGroup.exceptions.ListCouldntLoadPanelException;
+import org.gvsig.gui.beans.panelGroup.exceptions.PanelBaseException;
+import org.gvsig.gui.beans.panelGroup.loaders.IPanelGroupLoader;
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+import org.gvsig.gui.beans.panelGroup.panels.IPanel;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * <p>
+ * Panel loader version that loads {@link AbstractPanel AbstractPanel} classes
+ * registered as a extension point.
+ * </p>
+ *
+ * @see IPanelGroupLoader
+ *
+ * @version 15/10/2007
+ * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+ */
+public class PanelGroupLoaderFromExtensionPoint implements IPanelGroupLoader, Serializable {
+    private static final Logger logger = LoggerFactory
+            .getLogger(PanelGroupLoaderFromExtensionPoint.class);
+    
+	private static final long serialVersionUID = 6810333457209196344L;
+
+	/**
+	 * Extension point id
+	 */
+	private String id;
+
+	/**
+	 * <p>
+	 * Initializes this loader.
+	 * </p>
+	 *
+	 * @param id
+	 *            extension point identifier
+	 */
+	public PanelGroupLoaderFromExtensionPoint(String id) {
+		this.id = id;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.gui.beans.panelGroup.loaders.IPanelGroupLoader#loadPanels(java.util.ArrayList)
+	 */
+	public void loadPanels(ArrayList<IPanel> panels) throws ListCouldntLoadPanelException {
+		if (id == null) {
+			return;
+		}
+
+		ExtensionPointManager ePManager = ToolsLocator
+				.getExtensionPointManager();
+		ListCouldntLoadPanelException lCLPException = null;
+		Iterator<Extension> iterator = null;
+
+		try {
+			if (!ePManager.has(id)) {
+				return;
+			}
+
+			iterator = ePManager.get(id).iterator();
+		} catch (Exception e) {
+			logger.debug(PluginServices
+                    .getText(this, "panel_loading_exception"), e);
+
+			if ( lCLPException == null ) {
+				lCLPException = new ListCouldntLoadPanelFromExtensionPointException();
+			}
+
+			lCLPException.add(e);
+		}
+
+		AbstractPanel panel = null;
+
+		while (iterator.hasNext()) {
+			try {
+
+				panel = (AbstractPanel) ((iterator.next()).create());
+				panels.add(panel);
+			} catch (Exception e) {
+				logger.debug(PluginServices.getText(this,
+                        "panel_loading_exception"), e);
+
+				if ( lCLPException == null ) {
+					lCLPException = new ListCouldntLoadPanelFromExtensionPointException();
+				}
+
+				PanelBaseException bew = null;
+
+				if (panel == null) {
+					bew = new PanelBaseException(e, "");
+				} else {
+					bew = new PanelBaseException(e, panel.getLabel());
+				}
+
+				lCLPException.add(bew);
+			}
+		}
+
+		if ( lCLPException != null ) {
+			throw lCLPException;
+		}
+
+	}
+
+	/**
+	 * <p>
+	 * Exception produced when fails the load of a panel by a loader of type
+	 * <code>PanelGroupLoaderFromExtensionPoint</code>.
+	 * </p>
+	 *
+	 * @version 27/11/2007
+	 * @author Pablo Piqueras Bartolom� (pablo.piqueras@iver.es)
+	 */
+	public class ListCouldntLoadPanelFromExtensionPointException extends ListCouldntLoadPanelException {
+		private static final long serialVersionUID = -1513294728326593385L;
+
+		private static final String formatString = "Couldn't load some panels from an extension point of classes:";
+		private static final String messageKey = "couldnt_load_panels_from_extension_point_exception";
+
+		/**
+		 * <p>
+		 * Creates an initializes a new instance of
+		 * <code>ListCouldntLoadPanelFromExtensionPointException</code>.
+		 * </p>
+		 */
+		public ListCouldntLoadPanelFromExtensionPointException() {
+			super(formatString, messageKey, serialVersionUID);
+		}
+
+		/*
+		 * (non-Javadoc)
+		 *
+		 * @see org.gvsig.tools.exceptions.BaseException#values()
+		 */
+		protected Map<String, String> values() {
+			return null;
+		}
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStoreParameters.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStoreParameters.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStoreParameters.java	(revision 38262)
@@ -0,0 +1,45 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+package org.gvsig.app.prepareAction;
+
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.extensionpoint.ExtensionBuilder;
+
+public interface PrepareDataStoreParameters extends ExtensionBuilder {
+	void pre(DataStoreParameters storeParamters, PrepareContext context);
+	
+	void post(DataStoreParameters storeParamters, PrepareContext context);
+	
+	DataStoreParameters prepare(DataStoreParameters storeParamters,
+			PrepareContext context) throws BaseException;
+
+	String getName();
+
+	String getDescription();
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStoreParameters.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareLayer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareLayer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareLayer.java	(revision 38262)
@@ -0,0 +1,41 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+package org.gvsig.app.prepareAction;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.extensionpoint.ExtensionBuilder;
+
+public interface PrepareLayer extends ExtensionBuilder {
+	FLayer prepare(FLayer layer, PrepareContextView context)
+			throws BaseException;
+
+	String getName();
+
+	String getDescription();
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareLayer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/prepareAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/prepareAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/prepareAction.java	(revision 38262)
@@ -0,0 +1,11 @@
+package org.gvsig.app.prepareAction;
+
+
+public interface prepareAction {
+	Object execute(PrepareContext context, Object data);
+	
+	String getName();
+
+	String getDescription();
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/prepareAction.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContextView.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContextView.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContextView.java	(revision 38262)
@@ -0,0 +1,49 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+/**
+ *
+ */
+package org.gvsig.app.prepareAction;
+
+import org.gvsig.fmap.mapcontrol.MapControl;
+
+/**
+ * @author jmvivo
+ *
+ */
+public interface PrepareContextView extends PrepareContext {
+
+	/**
+	 *
+	 *
+	 * @return
+	 */
+
+	MapControl getMapControl();
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContextView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContext.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContext.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContext.java	(revision 38262)
@@ -0,0 +1,52 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+package org.gvsig.app.prepareAction;
+
+import java.awt.Window;
+
+import org.cresques.cts.IProjection;
+
+public interface PrepareContext {
+	/**
+	 * Return a {@link java.awt.Dialog} or a {@link java.awt.Frame} to use like
+	 * owner for any created dialogs.
+	 * 
+	 * @return <ul>
+	 *         <li>null</li>
+	 *         <li>{@link java.awt.Dialog} instance</li>
+	 *         <li>{@link java.awt.Frame} instance</li>
+	 *         </ul>
+	 */
+	Window getOwnerWindow();
+	
+	/**
+	 * Gets the view projection
+	 * @return IProjection
+	 */
+	public IProjection getViewProjection();
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareContext.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStore.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStore.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStore.java	(revision 38262)
@@ -0,0 +1,41 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+package org.gvsig.app.prepareAction;
+
+import org.gvsig.fmap.dal.DataStore;
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.extensionpoint.ExtensionBuilder;
+
+public interface PrepareDataStore extends ExtensionBuilder {
+	DataStore prepare(DataStore store, PrepareContext context)
+			throws BaseException;
+
+	String getName();
+
+	String getDescription();
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/prepareAction/PrepareDataStore.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/util/BaseOpenErrorHandler.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/util/BaseOpenErrorHandler.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/util/BaseOpenErrorHandler.java	(revision 38262)
@@ -0,0 +1,137 @@
+package org.gvsig.app.util;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.fmap.dal.DataParameters;
+import org.gvsig.fmap.dal.OpenErrorHandler;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.OpenException;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.swing.FilesystemExplorerWizardPanel;
+import org.gvsig.fmap.dal.store.shp.SHPStoreParameters;
+import org.gvsig.fmap.dal.store.shp.utils.SHP;
+import org.gvsig.gui.beans.swing.JFileChooser;
+import org.gvsig.i18n.Messages;
+import org.gvsig.utils.SimpleFileFilter;
+
+public class BaseOpenErrorHandler implements OpenErrorHandler{
+	
+	
+	private DataParameters parameters;
+	private Exception exception;
+
+	public BaseOpenErrorHandler() {
+		exception=null;
+		parameters=null;
+		
+	}
+
+	public boolean canRetryOpen(Exception e, DataParameters parameters) {
+		this.exception=e;
+		this.parameters=parameters;
+		Throwable cause = null;
+
+		if (this.exception instanceof InvocationTargetException){
+			cause = this.exception.getCause();
+		} else {
+			cause = this.exception;
+		}
+		if (cause instanceof InitializeException){
+			if (cause.getCause() instanceof OpenException){
+				if ( this.parameters instanceof FilesystemStoreParameters){
+					FilesystemStoreParameters filesystemStoreParameters = (FilesystemStoreParameters)this.parameters;
+					File searchedFile = filesystemStoreParameters.getFile();
+					File file = null;
+					if( searchedFile != null && !searchedFile.exists() ){
+						file = chooseAlternateFile(searchedFile);
+						if( file!=null){
+							filesystemStoreParameters.setFile(file);
+						} else {
+							return false;
+						}
+					}
+
+					if (this.parameters instanceof SHPStoreParameters){
+						SHPStoreParameters shpStoreParameters = (SHPStoreParameters)this.parameters;
+						File searchedDBFFile = shpStoreParameters.getDBFFile();
+						if (searchedDBFFile!=null && !searchedDBFFile.exists()){
+							File possibleDbfFile = null;
+							if (file != null){
+								possibleDbfFile = SHP.getDbfFile(file);
+							}
+							if (possibleDbfFile != null && possibleDbfFile.exists()){
+								shpStoreParameters.setDBFFile(possibleDbfFile);
+							} else {
+								File dbfFile = chooseAlternateFile(searchedDBFFile);
+								if (dbfFile != null){
+									shpStoreParameters.setDBFFile(dbfFile);
+								} else {
+									return false;
+								}
+							}
+						}
+						File searchedSHXFile = shpStoreParameters.getSHXFile();
+						if (searchedDBFFile!=null && !searchedSHXFile.exists()){
+							File possibleShxFile = null;
+							if (file != null){
+								possibleShxFile = SHP.getShxFile(file);
+							}
+							if (possibleShxFile != null && possibleShxFile.exists()){
+								shpStoreParameters.setSHXFile(possibleShxFile);
+							} else {
+								File shxFile = chooseAlternateFile(searchedSHXFile);
+								if (shxFile != null){
+									shpStoreParameters.setSHXFile(shxFile);
+								} else {
+									return false;
+								}
+							}
+						}
+					}
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+	
+	private File chooseAlternateFile(File searchedFile){
+			int resp = JOptionPane.showConfirmDialog(
+					null,
+					Messages.getText("dont_find_the_file")+"\n"+
+					searchedFile.getName()+"\n"+
+					Messages.getText("do_you_want_to_locate_the_file"),
+					Messages.getText("dont_find_the_file"),
+					JOptionPane.YES_NO_OPTION,
+					JOptionPane.QUESTION_MESSAGE);
+			if (resp == JOptionPane.OK_OPTION){
+				JFileChooser fileChooser = new JFileChooser(FilesystemExplorerWizardPanel.OPEN_LAYER_FILE_CHOOSER_ID,
+						searchedFile.getParentFile());
+				File parentFile = searchedFile.getParentFile();
+				if (parentFile.exists()){
+					fileChooser.setLastPath(parentFile);
+				}
+				fileChooser.setMultiSelectionEnabled(false);
+				fileChooser.setAcceptAllFileFilterUsed(false);
+				fileChooser.setDialogTitle("dont_find_the_file: "+searchedFile.getAbsolutePath());
+
+				String searchedFileName = searchedFile.getName();
+				String ext = searchedFileName.substring(searchedFileName.lastIndexOf(".")+1);
+				SimpleFileFilter fileFilter = new SimpleFileFilter(ext, ext);
+				fileChooser.addChoosableFileFilter(fileFilter);
+				fileChooser.setFileFilter(fileFilter);
+				
+				int result = fileChooser.showOpenDialog(null);
+				if (result == JFileChooser.APPROVE_OPTION) {
+		            File file = fileChooser.getSelectedFile();
+		            return file;
+		        }
+			}
+		return null;
+	}
+}
+
+
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationManager.java	(revision 38262)
@@ -0,0 +1,305 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+package org.gvsig.app;
+
+import java.util.List;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.about.AboutManager;
+import org.gvsig.andami.iconthemes.IconThemeManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.MDIManager;
+import org.gvsig.app.extension.Version;
+import org.gvsig.app.gui.WizardPanel;
+import org.gvsig.app.prepareAction.PrepareContext;
+import org.gvsig.app.prepareAction.PrepareContextView;
+import org.gvsig.app.prepareAction.PrepareDataStore;
+import org.gvsig.app.prepareAction.PrepareDataStoreParameters;
+import org.gvsig.app.prepareAction.PrepareLayer;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.gui.IDocumentWindow;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataStore;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.mapcontext.MapContextManager;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.gui.IColorTablesFactory;
+import org.gvsig.tools.dataTypes.DataTypesManager;
+import org.gvsig.tools.dispose.DisposableManager;
+import org.gvsig.tools.dynobject.DynObjectManager;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+
+public interface ApplicationManager {
+
+    /**
+     * Return the version of the application.
+     * 
+     * @return the version
+     */
+	public Version getVersion() ;
+
+    /**
+     * Return the active window, IWindow, in the application.
+     * 
+     * @return the active window
+     */
+	public IWindow getActiveWindow();
+
+	/**
+	 * Return the project that is loaded and in use in the application.
+	 * 
+	 * @return the project 
+	 */
+    public Project getCurrentProject();
+
+    /**
+     * Returns the active document of the application or null 
+     * if there is no active document.
+     * 
+     * @return the active document
+     */
+    public Document getActiveDocument();
+
+    /**
+     * Returns the active document of the application that is of the 
+     * requested type or null if there is no active document or the
+     * active document is not of the requested type.
+     * 
+     * @param documentTypeName, type name of the document requested.
+     * @return the active document
+     */
+    public Document getActiveDocument(String documentTypeName);
+
+    /**
+     * Returns the active document of the application that is of the 
+     * requested type or null if there is no active document or the
+     * active document is not of the requested type.
+     * 
+     * @param documentClass, class of the document requested.
+     * @return the active document
+     */
+    public Document getActiveDocument(Class<? extends Document> documentClass);
+    
+    /**
+     * Returns the window associated with the document passed as 
+     * parameter or null if there is no window associated with 
+     * the document.
+     * 
+     * @param document to search the window
+     * @return window associated to the document
+     */
+    public IDocumentWindow getDocumentWindow(Document document);
+    
+    
+    /**
+     * Return the root of the nodes of preferences in the application.
+     * 
+     * @return the root of preferences.
+     */
+    PreferencesNode getPreferences();
+	
+    /**
+     * Search and return the node of preferences required as nodeName.
+     *  
+     * @param nodeName, name of the node to return
+     * @return the preferences node requested
+     */
+	PreferencesNode getPreferences(String nodeName);
+	
+	/**
+	 * Return the arguments passed to the application in the command line
+	 *  
+	 * @return arguments as a string array
+	 */
+	public String[] getArguments();
+	
+	/**
+	 * Return the value of the argument passed in the command line by
+	 * the name indicated as the parameter. This is passed as:
+	 * <code>
+	 * application --name=value
+	 * </code>
+	 * @param name of the requested argument
+	 * @return value of the requested argument
+	 */
+	public String getArgument(String name);
+	
+	/**
+	 * Get the value of the system clipboard as a string.
+	 * 
+	 * @return the clipboard value
+	 */
+	public String getFromClipboard();
+	
+	/**
+	 * Put the string value passed as parameter in the clipboard of
+	 * the system.
+	 * 
+	 * @param data to put in the clipboard.
+	 */
+	public void putInClipboard(String data) ;
+
+	/**
+	 * Obtain the projection associated by the code of projection
+	 * Passed as parameter. If passed code of projection it not
+	 * a valid projection code null is returned.
+	 * 
+	 * @param code of the projection requested
+	 * @return the requested projection or null
+	 */
+    public IProjection getCRS(String code);
+    
+	/**
+     * Utility method to obtain the DataManager used in the application at this moment.
+     * 
+     * @return the DataManager
+	 */
+	public DataManager getDataManager();
+    
+    /**
+     * Utility method to obtain the ProjectManager used in the application at this moment.
+     * 
+     * @return the ProjectManager
+     */
+    public ProjectManager getProjectManager();
+
+    /**
+     * Utility method to obtain the UIManager used in the application at this moment.
+     * 
+     * @return the UIManager
+     */
+    public MDIManager getUIManager();
+    
+    /**
+     * Utility method to obtain the GeometryManager used in the application at this moment.
+     * 
+     * @return the GeometryManager
+     */
+    public GeometryManager getGeometryManager();
+    
+    /**
+     * Utility method to obtain the PersistenceManager used in the application at this moment.
+     * 
+     * @return the PersistenceManager
+     */
+    public PersistenceManager getPersistenceManager();
+    
+    /**
+     * Utility method to obtain the DisposableManager used in the application at this moment.
+     * 
+     * @return the DisposableManager
+     */
+    public DisposableManager getDisposableManager() ;
+
+    /**
+     * Utility method to obtain the DynObjectManager used in the application at this moment.
+     * 
+     * @return the DynObjectManager
+     */
+    public DynObjectManager getDynObjectManager() ;
+
+    /**
+     * Utility method to obtain the ExtensionPointManager used in the application at this moment.
+     * 
+     * @return the ExtensionPointManager
+     */
+    public ExtensionPointManager getExtensionPointManager();
+
+    /**
+     * Utility method to obtain the MapContextManager used in the application at this moment.
+     * 
+     * @return the MapContextManager
+     */
+    public MapContextManager getMapContextManager();
+    
+    /**
+     * Utility method to obtain the AboutManager used in the application at this moment.
+     * 
+     * @return the AboutManager
+     */
+    public AboutManager getAbout();
+
+    public DataTypesManager getDataTypesManager();
+    
+    /**
+     * Utility method to obtain the IconThemeManager used in the application at this moment.
+     * 
+     * @return the IconThemeManager
+     */
+    IconThemeManager getIconThemeManager();
+    
+	void registerAddTableWizard(String name, String description,
+			Class<? extends WizardPanel> wpClass);
+
+	List<WizardPanel> getWizardPanels() throws Exception;
+
+
+
+	void registerPrepareOpenDataStore(PrepareDataStore action);
+	void registerPrepareOpenDataStoreParameters(	PrepareDataStoreParameters action);
+	void registerPrepareOpenLayer(PrepareLayer action);
+
+	DataStore pepareOpenDataSource(DataStore store,
+			PrepareContext context)
+			throws Exception;
+
+	DataStoreParameters prepareOpenDataStoreParameters(
+			DataStoreParameters storeParameters, PrepareContext context)
+			throws Exception;
+	
+	List<DataStoreParameters> prepareOpenDataStoreParameters(
+			List<DataStoreParameters> storeParameters, PrepareContext context)
+			throws Exception;
+
+	FLayer prepareOpenLayer(FLayer layer,
+			PrepareContextView context)
+			throws Exception;
+	
+	
+	public IColorTablesFactory getColorTablesFactory();
+	
+	public void registerColorTablesFactory(IColorTablesFactory factory);
+
+	public String getLocaleLanguage();
+
+    /**
+     * Adds message to status bar
+     * @param message
+     * @param message_type One of: JOptionPane.ERROR_MESSAGE),
+     * JOptionPane.WARNING_MESSAGE, JOptionPane.INFORMATION_MESSAGE 
+     */
+    public void message(String message, int message_type);
+	
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationManager.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/sqlQueryValidation/SQLQueryValidation.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/sqlQueryValidation/SQLQueryValidation.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/sqlQueryValidation/SQLQueryValidation.java	(revision 38262)
@@ -0,0 +1,254 @@
+package org.gvsig.app.sqlQueryValidation;
+
+import java.io.ByteArrayInputStream;
+
+import org.gvsig.andami.PluginServices;
+
+import Zql.ZqlParser;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/**
+ * Class for validate a complete query or the sentence of a query from WHERE 
+ *
+ * @author Pablo Piqueras Bartolom� (p_queras@hotmail.com)
+ */
+public class SQLQueryValidation {
+	private String query;
+	private boolean onlyWhereStatement;
+	private int[] errorPosition; //[0] -> line, [1] -> column        ( (-1, -1) -> no error ) ( (-2, -2) -> error: query = null)
+	private String errorMessage;
+	private String errorPositionAsMessage;
+	private String token;
+	private final String preQuery = "SELECT a FROM b WHERE ";
+	private final int preQueryLenght = preQuery.length();
+	
+	/**
+	 * Default constructor with a parameter
+	 * 
+	 * @param _query The query to validate
+	 * @param _onlyWhereStatement If the query is only the part of WHERE ... in a query
+	 */
+	public SQLQueryValidation(String _query, boolean _onlyWhereStatement) {
+		query = new String(_query);
+		onlyWhereStatement = _onlyWhereStatement;
+		
+		// By default no error position
+		errorPosition = new int[2];
+		errorPosition[0] = -1;
+		errorPosition[1] = -1;
+		
+		errorPositionAsMessage = null;
+		
+		// By default no error message
+		errorMessage = null;
+		
+		// By default no error symbol
+		token = null;
+	}
+		
+	/**
+	 * Validates a query
+	 * 
+	 * Returns 'null' if there has been some error
+	 */
+	public boolean validateQuery() {
+		String completeQuery = new String();
+		
+		// If the query is null -> error 
+		if (query == null)	{
+			errorPosition[0] = -2;
+			errorPosition[1] = -2;
+			defineErrorPositionAsMessageAttribute(errorPosition);
+			errorMessage = new String( PluginServices.getText(null, "queryIsNull"));
+			
+			return false;
+		}
+		
+		// If no query itsn't considered as a error
+		if ((query.compareTo("")) == 0) {
+			errorPosition[0] = -1;
+			errorPosition[1] = -1;
+			defineErrorPositionAsMessageAttribute(errorPosition);
+			errorMessage = null;
+			
+			return true;
+		}
+
+		// Converts all apostrophes between aphostrophes to double inverted commas ( " )
+		int index = 0;
+		boolean is_word = false; // by default isn't a word
+		String formatted_query = new String();
+		char c;
+		
+		while (index < query.length()) {
+			c = query.charAt(index);
+			if (c == '\'') {
+				if (is_word == false) {
+					if ((index > 0) && ((query.charAt(index-1) == ' ') || (query.charAt(index-1) == '(')) ) {
+						is_word = true;
+					}
+					
+					formatted_query += c;
+				}
+				else {
+					if (index == (query.length() -1)) {
+//						is_word = false;
+						formatted_query += c;
+					}
+					else {
+						if (((query.charAt(index+1) == ' ') || (query.charAt(index+1) == ')')) ) {
+							is_word = false;
+							formatted_query += c;
+						}
+						else {
+							formatted_query += "\""; // Convert ' to "
+						}
+					}
+				}
+			}
+			else {
+				formatted_query += c;
+			}
+			
+			index ++;
+		}		
+		
+		// Converts all ocurrences of the symbol " ( double inverted commas ) to space because Zql doesn't support that symbol
+		if (onlyWhereStatement)
+			completeQuery = preQuery + formatted_query.trim().replaceAll("\"", " ");
+		else
+			completeQuery = formatted_query.trim().replaceAll("\"", " ");
+
+		if ((completeQuery.length() > 0) && (completeQuery.charAt(completeQuery.length() - 1) != ';'))
+			completeQuery += ";";
+
+		try {
+			// Starts the parser
+			ZqlParser p = new ZqlParser();
+			p.initParser(new ByteArrayInputStream(completeQuery.getBytes()));
+	      
+			// Analyzes the query
+			p.readStatement();
+			
+			// If arrives here -> there has been no errors
+			errorPosition[0] = -1;
+			errorPosition[1] = -1;
+			defineErrorPositionAsMessageAttribute(errorPosition);
+			errorMessage = null;
+			return true;
+		} catch (Exception e) {
+			// Defines the error message
+			errorMessage = e.getMessage();
+			
+			// Get the token that produced the error
+			int ini_pos = e.getMessage().indexOf('\"') +1;
+			token = new String(errorMessage.substring(ini_pos, errorMessage.indexOf('\"', ini_pos)));
+
+			// Get the line an column where the syntax error starts
+			String line = new String(errorMessage.substring(e.getMessage().indexOf("line"), errorMessage.indexOf(',')));
+			line = line.substring(line.indexOf(' ')+1, line.length());
+			
+			String column = new String(e.getMessage().substring(errorMessage.indexOf("column"), errorMessage.indexOf('.')));
+			column = column.substring(column.indexOf(' ')+1, column.length());			
+
+			// Get the line an column of the error
+			errorPosition[0] = Integer.valueOf(line.trim()).intValue();			
+			errorPosition[1] = Integer.valueOf(column.trim()).intValue();
+			
+			if (onlyWhereStatement) {
+				this.errorPosition[1] -= this.preQueryLenght; // Substract the lenght of the pre-query added
+			}
+			
+			defineErrorPositionAsMessageAttribute(this.errorPosition);
+
+			return false;
+		}
+	}
+	
+	/**
+	 * Returns an string with an error message if there has been an error, or 'null' if there hasn't been
+	 * 
+	 * @return An string or null
+	 */
+	public String getErrorMessage() {
+		return this.errorMessage;
+	}
+	
+	/**
+	 * Returns an string with a text describing the (first) position of the error
+	 * 
+	 * @return An string or null
+	 */
+	public String getErrorPositionAsMessage() {
+		return this.errorPositionAsMessage;
+	}
+	
+	/**
+	 * Returns the error position (line, column) or (-1, -1) if there hasn't been any error
+	 * 
+	 * @return An array of 2 integer values (first: line, second: column) 
+	 */
+	public int[] getErrorPosition() {
+		return errorPosition;
+	}
+	
+	/**
+	 * Returns the token where the validator failed
+	 * 
+	 * @return An string
+	 */
+	public String getTokenThatProducedTheSyntacticError() {
+		return token;
+	}
+	
+	/**
+	 * Creates a message with information about the message
+	 * 
+	 * @param position An array with 2 elements: (row, column)
+	 */
+	private void defineErrorPositionAsMessageAttribute(int position[]) {
+		// Defines the error message
+		errorPositionAsMessage = new String( PluginServices.getText(null, "line") + ": " + errorPosition[0] + ", " + PluginServices.getText(null, "column") + ": " + errorPosition[1] );
+	}
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/sqlQueryValidation/SQLQueryValidation.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/tools/swing/serv/field/crs/JCRSDynFieldComponent.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/tools/swing/serv/field/crs/JCRSDynFieldComponent.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/tools/swing/serv/field/crs/JCRSDynFieldComponent.java	(revision 38262)
@@ -0,0 +1,227 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * 2010 Institute of New Imaging Technologies (INIT): 
+ *   http://www.init.uji.es
+ * Geographic Information research group: 
+ *   http://www.geoinfo.uji.es
+ * Universitat Jaume I, Spain
+ */
+
+/**
+ * 
+ */
+package org.gvsig.app.tools.swing.serv.field.crs;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JComponent;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.gui.panels.CRSSelectPanel;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.service.ServiceException;
+import org.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponent;
+import org.gvsig.tools.swing.api.dynobject.dynfield.ValueField;
+import org.gvsig.tools.swing.spi.AbstractJDynFieldComponent;
+
+/**
+ * @author <a href="mailto:reinhold@uji.es">cmartin</a>
+ * 
+ */
+public class JCRSDynFieldComponent extends AbstractJDynFieldComponent implements
+    JDynFieldComponent, IWindow, ActionListener {
+
+    private CRSSelectPanel panel;
+    private JButton button;
+
+    /**
+     * @param proj
+     */
+
+    public JCRSDynFieldComponent(DynField definition, ValueField value, boolean writeable)
+        throws ServiceException {
+        super(definition, value, writeable);
+    }
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
+     * org.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponent#saveStatus
+     * ()
+     */
+    public void saveStatus() {
+    	if (isValid()){
+        	setFieldValue(this.getValue());    		
+    	}
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.gvsig.tools.swing.api.dynobject.dynfield.ValueField#getValue()
+     */
+    public Object getValue() {
+        return this.getCurProj();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.gvsig.tools.swing.api.dynobject.dynfield.ValueField#setNullValue(java
+     * .lang.Object)
+     */
+    public void setNullValue() {
+        this.setCurProj(null);
+    }
+
+    public void setNonNullValue(Object value) {
+        if (value instanceof IProjection) {
+            setCurProj((IProjection) value);
+        } else {
+            setNullValue();
+        }
+    }
+
+    public void setCurProj(IProjection projection) {
+        panel.setCurProj(projection);
+        this.fireValueChangedEvent();
+    }
+
+    public IProjection getCurProj() {
+        return panel.getCurProj();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.gvsig.tools.swing.api.dynobject.dynfield.JComponent#getComponent()
+     */
+    public Object getComponent() {
+        return panel;
+    }
+
+    @Override
+    protected void setJDynFieldComponentListeners() {
+
+    }
+    
+    public void setValue(Object value){
+    	Object oldValue = getValue();
+    	if (value == null){
+    		setNullValue();
+    	}else{
+    		setNonNullValue(value);
+    	}
+    	if (oldValue!=value){
+        	this.fireValueChangedEvent();    		
+    	}
+    }
+
+    @Override
+    protected void afterUI() {
+        this.panel.getJLabel().setVisible(false);
+    }
+
+    @Override
+    protected void initData() {
+    }
+
+    @Override
+    protected void initUI() {
+        IProjection proj = (IProjection) this.getFieldValue();
+        if (proj==null){
+            proj = (IProjection) this.getDefaultFieldValue();
+        }
+        panel = initJPanelProj(proj);
+    }
+
+    protected void setReadOnly() {
+        this.button.setVisible(false);
+    }
+
+    public void requestFocus() {
+        this.panel.requestFocus();
+    }
+
+    public void setEnabled(boolean isEnabled) {
+        this.panel.setEnabled(isEnabled);
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        setValue(panel.getCurProj());
+    }
+
+
+    public WindowInfo getWindowInfo() {
+        WindowInfo m_ViewInfo =
+            new WindowInfo(WindowInfo.MODALDIALOG | WindowInfo.RESIZABLE);
+        m_ViewInfo.setTitle(PluginServices.getText(this, "acerca_de"));
+
+        return m_ViewInfo;
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.DIALOG_PROFILE;
+    }
+
+    public JComponent asJComponent() {
+        return panel;
+    }
+    
+    /**
+     * This method initializes jPanel4
+     *
+     * @return javax.swing.JPanel
+     */
+    private CRSSelectPanel initJPanelProj(IProjection proj) {
+        if (panel == null) {
+            panel = CRSSelectPanel.getPanel(proj);
+            panel.setTransPanelActive(true);
+            panel.setPreferredSize(new java.awt.Dimension(330,35));
+            panel.addActionListener(new java.awt.event.ActionListener() {
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    if (panel.isOkPressed()) {
+                        setValue(panel.getCurProj());
+                        fireValueChangedEvent();
+                    }
+                }
+            });
+        }
+        return panel;
+    }
+    
+	@Override
+	public boolean isValid() {
+		return this.getValue()!=null;
+	}
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/tools/swing/serv/field/crs/JCRSDynFieldComponentFactory.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/tools/swing/serv/field/crs/JCRSDynFieldComponentFactory.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/tools/swing/serv/field/crs/JCRSDynFieldComponentFactory.java	(revision 38262)
@@ -0,0 +1,100 @@
+package org.gvsig.app.tools.swing.serv.field.crs;
+
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+/*
+ * AUTHORS (In addition to CIT):
+ * 2010 Institute of New Imaging Technologies (INIT): 
+ *   http://www.init.uji.es
+ * Geographic Information research group: 
+ *   http://www.geoinfo.uji.es
+ * Universitat Jaume I, Spain
+ */
+
+/**
+ * 
+ */
+
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.service.ServiceException;
+import org.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponent;
+import org.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponentFactory;
+import org.gvsig.tools.swing.api.dynobject.dynfield.ValueField;
+import org.gvsig.tools.swing.spi.AbstractJDynFieldComponentFactory;
+
+/**
+ * @author <a href="mailto:reinhold@uji.es">cmartin</a>
+ * 
+ */
+public class JCRSDynFieldComponentFactory extends
+    AbstractJDynFieldComponentFactory implements JDynFieldComponentFactory {
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.gvsig.tools.swing.spi.AbstractSwingServiceFactory#getFactoryDescription
+     * ()
+     */
+    @Override
+    public String getFactoryDescription() {
+        return null;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.gvsig.tools.swing.spi.AbstractSwingServiceFactory#getFactorySubType()
+     */
+    @Override
+    public String getFactorySubType() {
+        return null;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.gvsig.tools.swing.spi.AbstractSwingServiceFactory#getFactoryType()
+     */
+    @Override
+    public Integer getFactoryType() {
+        return DataTypes.CRS;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponentFactory
+     * #createJDynFieldComponent(org.gvsig.tools.dynobject.DynField,
+     * org.gvsig.tools.swing.api.dynobject.dynfield.ValueField)
+     */
+    public JDynFieldComponent createJDynFieldComponent(DynField definition, ValueField valueField,
+        boolean writable) throws ServiceException {
+        // TODO: take into account the writable flag
+        return new JCRSDynFieldComponent(definition, valueField, writable);
+    }
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TextFieldEdit.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TextFieldEdit.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TextFieldEdit.java	(revision 38262)
@@ -0,0 +1,123 @@
+package org.gvsig.app.gui.panels;
+
+import java.awt.Dimension;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.geom.Point2D;
+
+import javax.swing.BorderFactory;
+import javax.swing.FocusManager;
+import javax.swing.JComponent;
+import javax.swing.JPopupMenu;
+import javax.swing.JTextField;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+//TODO comentado para que compile
+public class TextFieldEdit extends JPopupMenu implements KeyListener {
+    private JTextField txt = new JTextField();
+//    private FLyrAnnotation lyr;
+    /**
+     * This is the default constructor
+     */
+//    public TextFieldEdit(FLyrAnnotation lyr) {
+//        super();
+//        this.lyr=lyr;
+//        initialize();
+//    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        this.setSize(100, 20);
+        txt.setPreferredSize(new Dimension(100, 20));
+//        txt.addActionListener(new java.awt.event.ActionListener() {
+//        	public void actionPerformed(java.awt.event.ActionEvent e) {
+//        		 try {
+//        				VectorialEditableAdapter vea=(VectorialEditableAdapter)lyr.getSource();
+//        				int index=lyr.getInEdition();
+//        				IRowEdited row = vea.getRow(index); //.getAttribute(columnIndex);
+//        		        Value[] values = row.getAttributes();
+//        		        int columnText=lyr.getMapping().getColumnText();
+//        		        int type=vea.getRecordset().getFieldType(columnText);
+//        		        values[columnText] = ValueFactory.createValueByType(txt.getText(),type);
+//
+//        		        IRow newRow = null;
+//
+//        		        if (row.getLinkedRow() instanceof IFeature) {
+//        		            IGeometry geometry = ((DefaultFeature) row.getLinkedRow()).getGeometry();
+//        		            newRow = new DefaultFeature(geometry, values);
+//        		        } else {
+//        		            newRow = new DefaultRow(values);
+//        		        }
+//
+//
+//        					vea.modifyRow(index, newRow,"Editar valor de texto", EditionEvent.GRAPHIC);
+//        				} catch (ReadDriverException e1) {
+//        					e1.printStackTrace();
+//        				}  catch (ParseException e1) {
+//							e1.printStackTrace();
+//						} catch (NumberFormatException e1) {
+//							NotificationManager.addError("no_es_de_tipo_numerico",e1);
+//						} catch (ValidateRowException e1) {
+//							e1.printStackTrace();
+//						}
+//        				View view=(View)PluginServices.getMDIManager().getActiveWindow();
+//        				TextFieldEdit.this.show(false);
+//        				// view.getMapControl().drawMap(true);
+//        				lyr.setDirty(true);
+//        				view.getMapControl().rePaintDirtyLayers();
+//
+//        				PluginServices.getMainFrame().enableControls();
+//        	}
+//        });
+        this.add(txt);
+        this.setBorderPainted(false);
+        this.setBorder(BorderFactory.createEmptyBorder());
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param p DOCUMENT ME!
+     * @param component DOCUMENT ME!
+     */
+    public void show(Point2D p, JComponent component) {
+
+//    	VectorialEditableAdapter vea=(VectorialEditableAdapter)lyr.getSource();
+//		int index=lyr.getInEdition();
+//		Value value=null;
+//		try {
+//			int columnText=lyr.getMapping().getColumnText();
+//			value = vea.getRecordset().getFieldValue(index,columnText);
+//			txt.setText(value.toString());
+//		} catch (ReadDriverException e) {
+//			e.printStackTrace();
+//		}
+
+		this.show(component, (int)p.getX(), (int)p.getY()-20);
+        FocusManager fm = FocusManager.getCurrentManager();
+        fm.focusPreviousComponent(txt);
+    }
+
+	public void keyPressed(KeyEvent arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void keyReleased(KeyEvent arg0) {
+		 FocusManager fm = FocusManager.getCurrentManager();
+	     fm.focusPreviousComponent(txt);
+	}
+
+	public void keyTyped(KeyEvent arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TextFieldEdit.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/FPanelAbout.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/FPanelAbout.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/FPanelAbout.java	(revision 38262)
@@ -0,0 +1,254 @@
+/*
+ * Created on 02-sep-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.panels;
+
+import java.awt.BorderLayout;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URL;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JEditorPane;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.event.HyperlinkEvent;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.extension.Version;
+import org.gvsig.utils.BrowserControl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author FJP
+ *
+ * A Window with panels showing web pages. A developer
+ * can write a web page with information about his/her plugin
+ * and call addAboutUrl to add his/her about to gvSIG's about and
+ * others.
+ * 
+ * @deprecated see the AboutManager
+ */
+public class FPanelAbout extends JPanel implements IWindow {
+    private static final Logger logger = LoggerFactory
+    .getLogger(FPanelAbout.class);
+    
+	private JEditorPane jEditorPane = null;
+	private JScrollPane jScrollPane = null;
+	private JEditorPane jEditorPane1 = null;
+	private JPanel jPanel = null;
+	private JButton jButton = null;
+
+	private JLabel jLblVersion = null;
+	private JLabel jLblJavaVersion = null;
+    private JTabbedPane jTabbedPane = null;
+	/**
+	 * This is the default constructor
+	 * @throws FileNotFoundException
+	 */
+	public FPanelAbout(){
+		super();
+		initialize();
+	}
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 * @throws FileNotFoundException
+	 */
+	private  void initialize(){
+		this.setLayout(new BorderLayout());
+		this.setSize(600, 450);
+		this.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);
+
+		this.add(getJPanel(), java.awt.BorderLayout.SOUTH);
+	}
+
+	/**
+	 * This method initializes jScrollPane
+	 *
+	 * @return javax.swing.JScrollPane
+	 */
+	private JScrollPane getJScrollPane(URL url) {
+		// if (jScrollPane == null) {
+			jScrollPane = new JScrollPane();
+			jScrollPane.setPreferredSize(new java.awt.Dimension(300,400));
+			jScrollPane.setViewportView(getJEditorPane(url));
+		// }
+		return jScrollPane;
+	}
+	/**
+	 * This method initializes jEditorPane1
+	 *
+	 * @return javax.swing.JEditorPane
+	 */
+		private JEditorPane getJEditorPane(URL aboutURL) {
+			// if (jEditorPane == null) {
+				jEditorPane = new JEditorPane();
+
+				jEditorPane.setEditable(false);
+				jEditorPane.setContentType("text/html");
+				jEditorPane.setPreferredSize(new java.awt.Dimension(300,200));
+
+				if (aboutURL != null) {
+				    try {
+				    	jEditorPane.setPage(aboutURL);
+				    	jEditorPane.addHyperlinkListener(new javax.swing.event.HyperlinkListener() {
+				    		public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent e) {
+				    			if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
+				    			{
+				    	 		      JEditorPane pane = (JEditorPane) e.getSource();
+				    	 		      System.out.println("hyperlinkUpdate()"); // TODO Auto-generated Event stub hyperlinkUpdate()
+				    	 		      BrowserControl.displayURL(e.getURL().toString());
+				    	 		      // if (e instanceof HTMLFrameHyperlinkEvent) {
+				    			}
+
+
+				    		}
+				    	});
+				    } catch (IOException e) {
+				        System.err.println("Attempted to read a bad URL: " + aboutURL);
+				    }
+				} else {
+				    System.err.println("Couldn't find file: about.html" + aboutURL.getPath());
+				}
+
+			// }
+			return jEditorPane;
+		}
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel() {
+		if (jPanel == null) {
+			jLblVersion = new JLabel();
+			jLblJavaVersion = new JLabel();
+			jPanel = new JPanel();
+			jPanel.setLayout(null);
+			jPanel.setPreferredSize(new java.awt.Dimension(10,50));
+			jLblVersion.setBounds(10, 16, 205, 17);
+			jLblVersion.setText("Version "+Version.longFormat());
+			jLblJavaVersion.setBounds(415, 16, 150, 17);
+			jLblJavaVersion.setText("Java "+System.getProperties().get("java.version"));
+			jPanel.add(getJButton(), null);
+			jPanel.add(jLblVersion, null);
+			jPanel.add(jLblJavaVersion, null);
+		}
+		return jPanel;
+	}
+	/**
+	 * This method initializes jButton
+	 *
+	 * @return javax.swing.JButton
+	 */
+	private JButton getJButton() {
+		if (jButton == null) {
+			jButton = new JButton();
+			jButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+			jButton.setText(PluginServices.getText(this,"Cerrar"));
+			jButton.setBounds(266, 12, 94, 25);
+			jButton.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
+					if (PluginServices.getMainFrame() != null)
+					{
+						PluginServices.getMDIManager().closeWindow(FPanelAbout.this);
+					}
+					else
+					{
+						((JDialog) (getParent().getParent().getParent().getParent())).dispose();
+					}
+
+				}
+			});
+		}
+		return jButton;
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.mdiApp.ui.MDIManager.View#getViewInfo()
+	 */
+	public WindowInfo getWindowInfo() {
+		WindowInfo m_ViewInfo = new WindowInfo(WindowInfo.MODALDIALOG|WindowInfo.RESIZABLE);
+		m_ViewInfo.setTitle(PluginServices.getText(this,"acerca_de"));
+
+		return m_ViewInfo;
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.mdiApp.ui.MDIManager.View#viewActivated()
+	 */
+	public void viewActivated() {
+		// TODO Auto-generated method stub
+
+	}
+    public void addAboutUrl(String pluginName, URL url)
+    {
+        getJTabbedPane().addTab(pluginName, getJScrollPane(url));
+        // this.add(getJScrollPane(url), java.awt.BorderLayout.CENTER);
+    }
+    /**
+     * This method initializes jTabbedPane
+     *
+     * @return javax.swing.JTabbedPane
+     */
+    private JTabbedPane getJTabbedPane() {
+    	if (jTabbedPane == null) {
+    		jTabbedPane = new JTabbedPane();
+    		jTabbedPane.setPreferredSize(new java.awt.Dimension(5,50));
+    	}
+    	return jTabbedPane;
+    }
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+}  //  @jve:decl-index=0:visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/FPanelAbout.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/MappingFieldsToAnotation.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/MappingFieldsToAnotation.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/MappingFieldsToAnotation.java	(revision 38262)
@@ -0,0 +1,396 @@
+package org.gvsig.app.gui.panels;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.fmap.mapcontext.layers.MappingAnnotation;
+
+
+//TODO comentado para que compile
+public class MappingFieldsToAnotation extends JPanel implements IWindow{
+
+	private JComboBox cmbText = null;
+	private JComboBox cmbAngle = null;
+	private JLabel jLabel = null;
+	private JLabel jLabel1 = null;
+	private JLabel jLabel2 = null;
+	private JComboBox cmbColor = null;
+	private JLabel jLabel3 = null;
+	private JComboBox cmbHeight = null;
+	private JLabel jLabel4 = null;
+	private JComboBox cmbFont = null;
+	private JButton bOk = null;
+	private JButton bCancel = null;
+//	private SelectableDataSource sds=null;
+//	private FLyrAnnotation la;
+	private int[] mapText;
+	private int[] mapAngle;
+	private int[] mapColor;
+	private int[] mapHeight;
+	private int[] mapFont;
+	private JPanel jPanel = null;
+	private JLabel jLabel5 = null;
+	private JTextField txtName = null;
+	//private JCheckBox chbPixels = null;
+	private JRadioButton rbMapUnits = null;
+	private JRadioButton rbPixels = null;
+	private boolean isOk=false;
+	/**
+	 * This is the default constructor
+	 */
+//	public MappingFieldsToAnotation(FLyrAnnotation la) {
+//		super();
+//		this.la=la;
+//		try {
+//			this.sds=la.getRecordset();
+//			initialize();
+//		} catch (ReadDriverException e) {
+//			e.printStackTrace();
+//		}
+//
+//	}
+
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private void initialize() {
+		jLabel4 = new JLabel();
+		jLabel4.setBounds(new java.awt.Rectangle(15,259,166,20));
+		jLabel4.setText("fuente");
+		jLabel3 = new JLabel();
+		jLabel3.setBounds(new java.awt.Rectangle(15,197,166,20));
+		jLabel3.setText("alto");
+		jLabel2 = new JLabel();
+		jLabel2.setBounds(new java.awt.Rectangle(15,135,166,20));
+		jLabel2.setText("color");
+		jLabel1 = new JLabel();
+		jLabel1.setBounds(new java.awt.Rectangle(15,73,166,20));
+		jLabel1.setText("angulo");
+		jLabel = new JLabel();
+		jLabel.setBounds(new java.awt.Rectangle(15,11,166,20));
+		jLabel.setText("texto");
+		this.setLayout(null);
+		this.setSize(544, 368);
+		this.add(getCmbText(), null);
+		this.add(getCmbAngle(), null);
+		this.add(jLabel, null);
+		this.add(jLabel1, null);
+		this.add(jLabel2, null);
+		this.add(getCmbColor(), null);
+		this.add(jLabel3, null);
+		this.add(getCmbHeight(), null);
+		this.add(jLabel4, null);
+		this.add(getCmbFont(), null);
+		this.add(getBOk(), null);
+		this.add(getBCancel(), null);
+		this.add(getJPanel(), null);
+	}
+
+	public WindowInfo getWindowInfo() {
+		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
+		m_viewinfo.setTitle(PluginServices.getText(this,
+				"indexar_campos"));
+
+		return m_viewinfo;
+	}
+
+	/**
+	 * This method initializes cmbOrigin
+	 *
+	 * @return javax.swing.JComboBox
+	 */
+	private JComboBox getCmbText() {
+		if (cmbText == null) {
+			cmbText = new JComboBox();
+//			try {
+//				mapText=new int[sds.getFieldCount()];
+//				int num=-1;
+//				for (int i = 0; i < sds.getFieldCount(); i++) {
+//					cmbText.addItem(sds.getFieldName(i));
+//					num++;
+//					mapText[i]=num;
+//				}
+//				//cmbText.addItem("- Defaulf -");
+//			} catch (ReadDriverException e) {
+//				e.printStackTrace();
+//			}
+			cmbText.setBounds(new java.awt.Rectangle(15,42,166,20));
+
+		}
+		return cmbText;
+	}
+
+	/**
+	 * This method initializes cmbEnd
+	 *
+	 * @return javax.swing.JComboBox
+	 */
+	private JComboBox getCmbAngle() {
+		if (cmbAngle == null) {
+			cmbAngle = new JComboBox();
+//			try {
+//				mapAngle=new int[sds.getFieldCount()];
+//				int num=-1;
+//			for (int i = 0; i < sds.getFieldCount(); i++) {
+//				if (sds.getFieldType(i) == Types.DOUBLE){
+//					cmbAngle.addItem(sds.getFieldName(i));
+//					num++;
+//					mapAngle[i]=num;
+//				}
+//			}
+//			cmbAngle.addItem("- Default -");
+//			cmbAngle.setSelectedItem("- Default -");
+//			} catch (ReadDriverException e) {
+//				e.printStackTrace();
+//			}
+			cmbAngle.setBounds(new java.awt.Rectangle(15,104,166,20));
+		}
+		return cmbAngle;
+	}
+
+	/**
+	 * This method initializes cmbColor
+	 *
+	 * @return javax.swing.JComboBox
+	 */
+	private JComboBox getCmbColor() {
+		if (cmbColor == null) {
+			cmbColor = new JComboBox();
+			cmbColor.setBounds(new java.awt.Rectangle(15,166,166,20));
+//			try {
+//				mapColor=new int[sds.getFieldCount()];
+//				int num=-1;
+//				for (int i = 0; i < sds.getFieldCount(); i++) {
+//					if (sds.getFieldType(i) == Types.DOUBLE){
+//						cmbColor.addItem(sds.getFieldName(i));
+//						num++;
+//						mapColor[i]=num;
+//					}
+//				}
+//				cmbColor.addItem("- Default -");
+//				cmbColor.setSelectedItem("- Default -");
+//			} catch (ReadDriverException e) {
+//				e.printStackTrace();
+//			}
+		}
+		return cmbColor;
+	}
+
+	/**
+	 * This method initializes cmbHeight
+	 *
+	 * @return javax.swing.JComboBox
+	 */
+	private JComboBox getCmbHeight() {
+		if (cmbHeight == null) {
+			cmbHeight = new JComboBox();
+//			try {
+//				mapHeight=new int[sds.getFieldCount()];
+//				int num=-1;
+//				for (int i = 0; i < sds.getFieldCount(); i++) {
+//					if (sds.getFieldType(i) == Types.DOUBLE){
+//						cmbHeight.addItem(sds.getFieldName(i));
+//						num++;
+//						mapHeight[i]=num;
+//					}
+//				}
+//				cmbHeight.addItem("- Default -");
+//				cmbHeight.setSelectedItem("- Default -");
+//			} catch (ReadDriverException e) {
+//				e.printStackTrace();
+//			}
+			cmbHeight.setBounds(new java.awt.Rectangle(15,228,166,20));
+		}
+		return cmbHeight;
+	}
+
+	/**
+	 * This method initializes cmbFont
+	 *
+	 * @return javax.swing.JComboBox
+	 */
+	private JComboBox getCmbFont() {
+		if (cmbFont == null) {
+			cmbFont = new JComboBox();
+//			try {
+//				mapFont=new int[sds.getFieldCount()];
+//				int num=-1;
+//				for (int i = 0; i < sds.getFieldCount(); i++) {
+//					if (sds.getFieldType(i) == Types.VARCHAR){
+//						cmbFont.addItem(sds.getFieldName(i));
+//						num++;
+//						mapFont[i]=num;
+//					}
+//				}
+//				cmbFont.addItem("- Default -");
+//				cmbFont.setSelectedItem("- Default -");
+//			} catch (ReadDriverException e) {
+//				e.printStackTrace();
+//			}
+			cmbFont.setBounds(new java.awt.Rectangle(15,290,166,20));
+		}
+		return cmbFont;
+	}
+
+	/**
+	 * This method initializes bOk
+	 *
+	 * @return javax.swing.JButton
+	 */
+	private JButton getBOk() {
+		if (bOk == null) {
+			bOk = new JButton();
+			bOk.setBounds(new java.awt.Rectangle(119,326,92,24));
+			bOk.setText("Aceptar");
+			bOk.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					MappingAnnotation mapping=new MappingAnnotation();
+					if (getCmbText().getSelectedItem().equals("")) {
+						mapping.setColumnText(-1);
+					} else {
+						mapping.setColumnText(mapText[getCmbText().getSelectedIndex()]);
+					}
+					if (!getCmbAngle().getSelectedItem().equals("- Default -")) {
+						mapping.setColumnRotate(mapAngle[getCmbAngle().getSelectedIndex()]);
+					}
+					if (!getCmbColor().getSelectedItem().equals("- Default -")) {
+						mapping.setColumnColor(mapColor[getCmbColor().getSelectedIndex()]);
+					}
+					if (!getCmbHeight().getSelectedItem().equals("- Default -")) {
+						mapping.setColumnHeight(mapHeight[getCmbHeight().getSelectedIndex()]);
+					}
+					if (!getCmbFont().getSelectedItem().equals("- Default -")) {
+						mapping.setColumnTypeFont(mapFont[getCmbFont().getSelectedIndex()]);
+					}
+					//Falta el estilo, si es necesario.
+//					la.setInPixels(rbPixels.isSelected());
+//					la.setMapping(mapping);
+//					la.setName(getTxtName().getText());
+					isOk=true;
+					PluginServices.getMDIManager().closeWindow(MappingFieldsToAnotation.this);
+				}
+			});
+		}
+		return bOk;
+	}
+
+	/**
+	 * This method initializes bCancel
+	 *
+	 * @return javax.swing.JButton
+	 */
+	private JButton getBCancel() {
+		if (bCancel == null) {
+			bCancel = new JButton();
+			bCancel.setBounds(new java.awt.Rectangle(330,325,93,25));
+			bCancel.setText("cancelar");
+			bCancel.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					isOk=false;
+					PluginServices.getMDIManager().closeWindow(MappingFieldsToAnotation.this);
+				}
+			});
+		}
+		return bCancel;
+	}
+
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel() {
+		if (jPanel == null) {
+			jLabel5 = new JLabel();
+			jLabel5.setBounds(new java.awt.Rectangle(15,10,228,22));
+			jLabel5.setText("nombre");
+			jPanel = new JPanel();
+			jPanel.setLayout(null);
+			jPanel.setBounds(new java.awt.Rectangle(234,14,251,141));
+			jPanel.add(jLabel5, null);
+			jPanel.add(getTxtName(), null);
+			//jPanel.add(getChbPixels(), null);
+			jPanel.add(getRbMapUnits(), null);
+			jPanel.add(getRbPixels(), null);
+			ButtonGroup bg=new ButtonGroup();
+			bg.add(getRbMapUnits());
+			bg.add(getRbPixels());
+		}
+		return jPanel;
+	}
+
+	/**
+	 * This method initializes txtName
+	 *
+	 * @return javax.swing.JTextField
+	 */
+	private JTextField getTxtName() {
+		if (txtName == null) {
+			txtName = new JTextField();
+			//txtName.setText(la.get.getName());
+			txtName.setBounds(new java.awt.Rectangle(15,42,227,22));
+		}
+		return txtName;
+	}
+
+	/**
+	 * This method initializes chbPixels
+	 *
+	 * @return javax.swing.JCheckBox
+	 */
+	/*private JCheckBox getChbPixels() {
+		if (chbPixels == null) {
+			chbPixels = new JCheckBox();
+			chbPixels.setBounds(new java.awt.Rectangle(15,138,226,25));
+			chbPixels.setText("pixels");
+		}
+		return chbPixels;
+	}
+*/
+	/**
+	 * This method initializes rbMapUnits
+	 *
+	 * @return javax.swing.JRadioButton
+	 */
+	private JRadioButton getRbMapUnits() {
+		if (rbMapUnits == null) {
+			rbMapUnits = new JRadioButton();
+			rbMapUnits.setBounds(new java.awt.Rectangle(15,74,167,22));
+			rbMapUnits.setText("unidades_mapa");
+		}
+		return rbMapUnits;
+	}
+
+	/**
+	 * This method initializes rbPixels
+	 *
+	 * @return javax.swing.JRadioButton
+	 */
+	private JRadioButton getRbPixels() {
+		if (rbPixels == null) {
+			rbPixels = new JRadioButton();
+			rbPixels.setBounds(new java.awt.Rectangle(15,106,167,22));
+			rbPixels.setText("pixels");
+			rbPixels.setSelected(true);
+		}
+		return rbPixels;
+	}
+
+	public boolean isOk() {
+		return isOk;
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+}  //  @jve:decl-index=0:visual-constraint="-150,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/MappingFieldsToAnotation.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/CRSSelectPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/CRSSelectPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/CRSSelectPanel.java	(revision 38262)
@@ -0,0 +1,141 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2006 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.panels;
+
+import java.awt.event.ActionListener;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.gui.panels.crs.CrsUIFactory;
+import org.gvsig.app.gui.panels.crs.ICrsUIFactory;
+import org.gvsig.app.gui.panels.crs.ISelectCRSButton;
+import org.gvsig.app.gui.panels.crs.ISelectCrsPanel;
+import org.gvsig.app.project.documents.view.info.gui.CSSelectionDialog;
+import org.gvsig.gui.beans.swing.JButton;
+
+
+/**
+ * 
+ * @author Luis W. Sevilla <sevilla_lui@gva.es>
+ */
+public abstract class CRSSelectPanel extends JPanel 
+   implements ISelectCRSButton {
+	private static Class panelClass = ProjChooserPanel.class;
+	private static Class uiFactory = CrsUIFactory.class;
+	private boolean transPanelActive = false;
+
+	protected ActionListener actionListener = null;
+	
+	public static void registerPanelClass(Class panelClass) {
+		CRSSelectPanel.panelClass = panelClass;
+	}
+
+	public static void registerUIFactory(Class uiFactory) {
+		CRSSelectPanel.uiFactory = uiFactory;
+	}
+	
+	public static CRSSelectPanel getPanel(IProjection proj) {
+		CRSSelectPanel panel = null;
+		Class [] args = {IProjection.class};
+		Object [] params = {proj};
+		try {
+			panel = (CRSSelectPanel) panelClass.getConstructor(args).newInstance(params);
+		} catch (IllegalArgumentException e) {
+			PluginServices.getLogger().error("Error creating CRS selection button", e);
+		} catch (SecurityException e) {
+			PluginServices.getLogger().error("Error creating CRS selection button", e);
+		} catch (InstantiationException e) {
+			PluginServices.getLogger().error("Error creating CRS selection button", e);
+		} catch (IllegalAccessException e) {
+			PluginServices.getLogger().error("Error creating CRS selection button", e);
+		} catch (InvocationTargetException e) {
+			PluginServices.getLogger().error("Error creating CRS selection button", e);
+		} catch (NoSuchMethodException e) {
+			PluginServices.getLogger().error("Error creating CRS selection button", e);
+		}
+		return panel;
+	}
+	
+	public CRSSelectPanel(IProjection proj) {
+		super();
+	}
+	
+	abstract public JButton getJBtnChangeProj();
+	
+	abstract public JLabel getJLabel();
+	
+	abstract public IProjection getCurProj();
+	
+	abstract public boolean isOkPressed();
+	/**
+	 * @param actionListener The actionListener to set.
+	 */
+	public void addActionListener(ActionListener actionListener) {
+		this.actionListener = actionListener;
+	}
+
+	public boolean isTransPanelActive() {
+		return transPanelActive;
+	}
+
+	public void setTransPanelActive(boolean transPanelActive) {
+		this.transPanelActive = transPanelActive;
+	}
+	
+	public static ICrsUIFactory getUIFactory() {
+		ICrsUIFactory factory;
+		try {
+			factory = (ICrsUIFactory) uiFactory.newInstance();
+		} catch (InstantiationException e) {
+			PluginServices.getLogger().error("Error creating CRS UI factory. Switching to default factory", e);
+			 factory = new CrsUIFactory();
+		} catch (IllegalAccessException e) {
+			PluginServices.getLogger().error("Error creating CRS UI factory. Switching to default factory", e);
+			factory =  new CrsUIFactory();
+		}
+		return factory;
+	}
+	
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/CRSSelectPanel.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ICrsUIFactory.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ICrsUIFactory.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ICrsUIFactory.java	(revision 38262)
@@ -0,0 +1,7 @@
+package org.gvsig.app.gui.panels.crs;
+
+import org.cresques.cts.IProjection;
+
+public interface ICrsUIFactory {
+	public ISelectCrsPanel getSelectCrsPanel(IProjection projection, boolean isTransPanelActive);
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ISelectCRSButton.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ISelectCRSButton.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ISelectCRSButton.java	(revision 38262)
@@ -0,0 +1,13 @@
+package org.gvsig.app.gui.panels.crs;
+
+import javax.swing.JButton;
+
+import org.cresques.cts.IProjection;
+
+public interface ISelectCRSButton {
+	 public boolean isTransPanelActive();
+	 public void setTransPanelActive(boolean transPanelActive);
+	 public IProjection getCurProj();
+	 public boolean isOkPressed();
+	 public void setCurProj(IProjection curProj);
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/CrsUIFactory.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/CrsUIFactory.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/CrsUIFactory.java	(revision 38262)
@@ -0,0 +1,17 @@
+package org.gvsig.app.gui.panels.crs;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.app.project.documents.view.info.gui.CSSelectionDialog;
+
+
+public class CrsUIFactory implements ICrsUIFactory {
+
+
+	public ISelectCrsPanel getSelectCrsPanel(IProjection projection,
+			boolean isTransPanelActive) {
+		CSSelectionDialog panel = new CSSelectionDialog();
+		panel.setProjection(projection);
+		return panel;
+	}
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ISelectCrsPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ISelectCrsPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/crs/ISelectCrsPanel.java	(revision 38262)
@@ -0,0 +1,11 @@
+package org.gvsig.app.gui.panels.crs;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+
+
+public interface ISelectCrsPanel extends IWindow {
+	public IProjection getProjection();
+    public void setProjection(IProjection proj);
+    public boolean isOkPressed();
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TransparencyPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TransparencyPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TransparencyPanel.java	(revision 38262)
@@ -0,0 +1,126 @@
+/*
+ * The Unified Mapping Platform (JUMP) is an extensible, interactive GUI
+ * for visualizing and manipulating spatial features with geometry and attributes.
+ *
+ * Copyright (C) 2003 Vivid Solutions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC  V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.panels;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+
+import javax.swing.JPanel;
+import javax.swing.JSlider;
+
+
+public class TransparencyPanel extends JPanel {
+    JPanel opaquePanel = new JPanel();
+    JPanel transparentPanel = new JPanel();
+    GridBagLayout gridBagLayout3 = new GridBagLayout();
+    JSlider transparencySlider = new JSlider();
+
+    public TransparencyPanel() {
+    	transparencySlider.setSize(100,30);
+    	transparencySlider.setPreferredSize(new Dimension(100,30));
+        transparencySlider.setMaximum(255);
+        transparencySlider.setPreferredSize(new Dimension(100, 24));
+        setLayout(gridBagLayout3);
+        add(opaquePanel,
+            new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,
+                GridBagConstraints.CENTER, GridBagConstraints.NONE,
+                new Insets(0, 0, 0, 0), 0, 0));
+        add(transparencySlider,
+            new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0,
+                GridBagConstraints.CENTER, GridBagConstraints.NONE,
+                new Insets(0, 0, 0, 0), 0, 0));
+        add(transparentPanel,
+            new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0,
+                GridBagConstraints.CENTER, GridBagConstraints.NONE,
+                new Insets(0, 0, 0, 0), 0, 0));
+        opaquePanel.setBackground(Color.black);
+        opaquePanel.setMinimumSize(new Dimension(11, 11));
+        opaquePanel.setMaximumSize(new Dimension(11, 11));
+        opaquePanel.setPreferredSize(new Dimension(11, 11));
+        transparentPanel.setBackground(Color.white);
+        transparentPanel.setForeground(Color.white);
+        transparentPanel.setMaximumSize(new Dimension(11, 11));
+        transparentPanel.setMinimumSize(new Dimension(11, 11));
+        transparentPanel.setPreferredSize(new Dimension(11, 11));
+    }
+
+    public void setColor(Color color) {
+        opaquePanel.setBackground(color);
+    }
+
+    public JSlider getSlider() {
+        return transparencySlider;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/TransparencyPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/PanelLinkProperties.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/PanelLinkProperties.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/PanelLinkProperties.java	(revision 38262)
@@ -0,0 +1,189 @@
+package org.gvsig.app.gui.panels;
+
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+//TODO comentado para que compile
+public class PanelLinkProperties extends JPanel {
+
+	FLayer layer=null;
+	private JPanel jPanel1 = null;
+	private JLabel jLabelCampo1 = null;
+	private JComboBox jComboBoxCampo1 = null;
+	private JLabel jLabelExtension1 = null;
+	private JTextField jTextFieldExtension1 = null;
+	private JLabel jLabelAccion1 = null;
+	private JComboBox jComboBoxAccion1 = null;
+	private ViewDocument view;
+
+	/**
+	 * This is the default constructor
+	 */
+	public PanelLinkProperties(FLayer flayer, ViewDocument vista) {
+		super();
+//		this.setLayout(new GridBagLayout());
+		this.layer=flayer;
+		view=vista;
+		initialize();
+	}
+
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private void initialize() {
+		this.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED), PluginServices.getText(this, "Hiperenlace"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
+		this.setBounds(315, 195, 313, 154);
+		this.add(getJPanel1(), null);
+	}
+
+	/**
+	 * This method initializes jPanel1
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel1() {
+		if (jPanel1 == null) {
+			jLabelAccion1 = new JLabel();
+			jLabelAccion1.setText(PluginServices.getText(this, "Accion_Predefinida") + "  ");
+			jLabelExtension1 = new JLabel();
+			jLabelExtension1.setText(PluginServices.getText(this,"extension"));
+			jLabelCampo1 = new JLabel();
+			jLabelCampo1.setText(PluginServices.getText(this, "Campo") + "   ");
+			jPanel1 = new JPanel();
+		}
+		jPanel1.setBounds(315, 195, 313, 154);
+		jPanel1.setPreferredSize(new java.awt.Dimension(300,120));
+		//jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
+		jPanel1.add(jLabelCampo1, null);
+		jPanel1.add(getJComboBoxCampo1(), null);
+		jPanel1.add(jLabelExtension1, null);
+		jPanel1.add(getJTextFieldExtension1(), null);
+		jPanel1.add(jLabelAccion1, null);
+		jPanel1.add(getJComboBoxAccion1(), null);
+		return jPanel1;
+	}
+
+	/**
+	 * This method initializes jComboBoxCampo1
+	 *
+	 * @return javax.swing.JComboBox
+	 */
+	private JComboBox getJComboBoxCampo1() {
+		if (jComboBoxCampo1 == null) {
+			jComboBoxCampo1 = new JComboBox();
+			jComboBoxCampo1.setPreferredSize(new java.awt.Dimension(80,25));
+
+			if (PluginServices.getMainFrame() != null) {
+				if  (PluginServices.getMDIManager().getActiveWindow() instanceof AbstractViewPanel ){
+				    AbstractViewPanel theView = (AbstractViewPanel)PluginServices.getMDIManager().getActiveWindow();
+				    view = theView.getModel();
+//				    try {
+//                		if (layer instanceof FLyrVect) {
+//                    		FLyrVect ad = (FLyrVect) layer;
+//                    		DataSource ds;
+//                    		ds = ad.getRecordset();
+//                    		String[] names = new String[ds.getFieldCount()];
+//                    		for (int i = 0; i < ds.getFieldCount(); i++) {
+//                    			names[i] = ds.getFieldName(i);
+//                    		}
+//                    		//jComboBox = new javax.swing.JComboBox(names);
+//                    		DefaultComboBoxModel defaultModel = new DefaultComboBoxModel(names);
+//                    		jComboBoxCampo1.setModel(defaultModel);
+//                    		if (view.getSelectedField() != null) {
+//                    			jComboBoxCampo1.setSelectedItem(view.getSelectedField());
+//                    			//layer.setField(view.getSelectedField());
+//                    		}
+//                			}else{
+//                				jComboBoxCampo1 = new javax.swing.JComboBox();
+//                			}
+//				    } catch (ReadException e) {
+//				    	NotificationManager.addError("No se pudo obtener la tabla", e);
+//				    }
+				}
+			}
+			}
+		return jComboBoxCampo1;
+	}
+
+	/**
+	 * This method initializes jTextFieldExtension1
+	 *
+	 * @return javax.swing.JTextField
+	 */
+	private JTextField getJTextFieldExtension1() {
+		if (jTextFieldExtension1 == null) {
+			jTextFieldExtension1 = new JTextField();
+			jTextFieldExtension1.setPreferredSize(new java.awt.Dimension(40,25));
+		}
+		return jTextFieldExtension1;
+	}
+
+	/**
+	 * This method initializes jComboBoxAccion1
+	 *
+	 * @return javax.swing.JComboBox
+	 */
+	private JComboBox getJComboBoxAccion1() {
+		if (jComboBoxAccion1 == null) {
+			jComboBoxAccion1 = new JComboBox();
+			jComboBoxAccion1.setPreferredSize(new java.awt.Dimension(120,25));
+			ComboActionModel t=new ComboActionModel();
+			DefaultComboBoxModel defaultModel1 = new DefaultComboBoxModel(t.getModel());
+			jComboBoxAccion1.setModel(defaultModel1);
+
+		}
+		return jComboBoxAccion1;
+	}
+}
+
+	class ComboActionModel{
+		private String types[] = null;
+
+		ComboActionModel(){
+			types[0]="Enlazar a ficheros de im�gen";
+			types[1]="Enlazar a ficheros de texto";
+		}
+		String toString(int ind){
+			return types[ind];
+		}
+		public String[] getModel(){
+			return types;
+		}
+
+		public int getOrder(String field){
+			if (field.compareTo(types[0])==0){
+				return 0;
+			}
+			else if (field.compareTo(types[1])==0) {
+				return 1;
+			}
+			return 1;
+		}
+
+
+	}
+
+	class ComboActionItem {
+		private String text=null;
+		private int cont;
+
+		public ComboActionItem(String texto, int contador){
+			text = texto;
+			cont = contador;
+		}
+
+		public String toString() {
+			return this.text;
+		}
+	}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/PanelLinkProperties.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/ConfigureLabel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/ConfigureLabel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/ConfigureLabel.java	(revision 38262)
@@ -0,0 +1,326 @@
+package org.gvsig.app.gui.panels.annotation;
+
+import java.awt.Dimension;
+import java.awt.Rectangle;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+
+import org.gvsig.andami.PluginServices;
+
+import jwizardcomponent.JWizardComponents;
+import jwizardcomponent.JWizardPanel;
+
+
+
+//TODO comentado para que compile
+public class ConfigureLabel extends JWizardPanel {
+
+	public ConfigureLabel(JWizardComponents wizardComponents) {
+		super(wizardComponents);
+		// TODO Auto-generated constructor stub
+	}
+
+	public static final String TEXT_FOR_DEFAULT_VALUE = "- Default -";
+
+//	private FLyrAnnotation layer;
+
+	private HashMap fieldsNames = new HashMap() ;
+	private JLabel lblDescription;
+
+	private JLabel lblAngle;
+
+	private JLabel lblColor;
+
+	private JLabel lblSize;
+
+	private JLabel lblSizeUnits;
+
+	private JLabel lblFont;
+
+	private JLabel lblStep1;
+
+	private JLabel lblStep2;
+
+	private JLabel lblStep3;
+
+	private JLabel lblStep4;
+
+	private JComboBox cmbAngle = null;
+	private JComboBox cmbColor = null;
+	private JComboBox cmbSize = null;
+	private JComboBox cmbSizeUnits = null;
+	private JComboBox cmbFont = null;
+
+
+
+	private static final Rectangle lblDescriptionPosition = new Rectangle(4,4,355,60);
+
+	private static final Rectangle lblStep1Position = new Rectangle(4,90,15,15);
+	private static final Rectangle lblAnglePosition = new Rectangle(30,90,355,30);
+	private static final Rectangle cmbAnglePosition = new Rectangle(30,124,170,18);
+
+
+	private static final Rectangle lblStep2Position = new Rectangle(4,150,15,15);
+	private static final Rectangle lblColorPosition = new Rectangle(30,150,355,30);
+	private static final Rectangle cmbColorPosition = new Rectangle(30,184,170,18);
+
+	private static final Rectangle lblStep3Position = new Rectangle(4,210,15,15);
+	private static final Rectangle lblSizePosition = new Rectangle(30,210,355,30);
+	private static final Rectangle cmbSizePosition = new Rectangle(30,244,170,18);
+	private static final Rectangle lblSizeUnitsPosition = new Rectangle(204,244,80,15);
+	private static final Rectangle cmbSizeUnitsPosition = new Rectangle(305,244,80,18);
+
+	private static final Rectangle lblStep4Position = new Rectangle(4,270,15,15);
+	private static final Rectangle lblFontPosition = new Rectangle(30,270,355,30);
+	private static final Rectangle cmbFontPosition = new Rectangle(30,304,170,18);
+
+
+	private void updateButtonsState() {
+		setBackButtonEnabled(true);
+		setNextButtonEnabled(false);
+		setFinishButtonEnabled(checkIsOkPanelData());
+	}
+
+
+
+	protected boolean checkIsOkPanelData() {
+		if (!((String)this.getCmbSize().getSelectedItem()).equals(ConfigureLabel.TEXT_FOR_DEFAULT_VALUE)) {
+			return (((String)this.getCmbSizeUnits().getSelectedItem()).trim().length() > 0);
+		}
+		return true;
+	}
+
+
+	private class EventsListener implements ItemListener
+	{
+
+		public void itemStateChanged(ItemEvent e) {
+			updateButtonsState();
+		}
+
+	}
+
+	private EventsListener eventsListener = new EventsListener();
+
+
+//	public ConfigureLabel(JWizardComponents arg0,FLyrAnnotation layer) {
+//		super(arg0);
+//		this.layer =layer;
+//		this.initialize();
+//	}
+
+	protected void initialize() {
+		this.setLayout(null);
+		this.setSize(new Dimension(358,263));
+		this.addLabels();
+
+		this.add(getCmbAngle(),null);
+		this.add(getCmbColor(),null);
+		this.add(getCmbSize(),null);
+		this.add(getCmbSizeUnits(),null);
+		this.add(getCmbFont(),null);
+
+		checkIsOkPanelData();
+	}
+
+
+	protected void addLabels() {
+		this.lblDescription = new JLabel();
+		this.lblStep1 = new JLabel();
+		this.lblAngle = new JLabel();
+		this.lblStep2 = new JLabel();
+		this.lblColor= new JLabel();
+		this.lblStep3 = new JLabel();
+		this.lblSize= new JLabel();
+		this.lblSizeUnits= new JLabel();
+		this.lblStep4 = new JLabel();
+		this.lblFont= new JLabel();
+
+		this.lblDescription.setText(PluginServices.getText(this,"descripcion_de_configuracion_capa_de_anotaciones"));
+		this.lblStep1.setText("1.");
+		this.lblAngle.setText(PluginServices.getText(this,"seleccione_el_campo_angulo_de_la_capa_de_anotaciones"));
+		this.lblStep2.setText("2.");
+		this.lblColor.setText(PluginServices.getText(this,"seleccione_el_campo_color_de_la_capa_de_anotaciones"));
+		this.lblStep3.setText("3.");
+		this.lblSize.setText(PluginServices.getText(this,"seleccione_el_campo_tamano_de_la_capa_de_anotaciones"));
+		this.lblSizeUnits.setText(PluginServices.getText(this,"en_unidades"));
+		this.lblStep4.setText("4.");
+		this.lblFont.setText(PluginServices.getText(this,"seleccione_el_campo_fuente_de_la_capa_de_anotaciones"));
+
+		//TODO: Posicionar
+		this.lblDescription.setBounds(lblDescriptionPosition);
+		this.lblStep1.setBounds(lblStep1Position);
+		this.lblAngle.setBounds(lblAnglePosition);
+		this.lblStep2.setBounds(lblStep2Position);
+		this.lblColor.setBounds(lblColorPosition);
+		this.lblStep3.setBounds(lblStep3Position);
+		this.lblSize.setBounds(lblSizePosition);
+		this.lblSizeUnits.setBounds(lblSizeUnitsPosition);
+		this.lblStep4.setBounds(lblStep4Position);
+		this.lblFont.setBounds(lblFontPosition);
+
+
+
+		this.add(lblDescription,null);
+		this.add(lblStep1,null);
+		this.add(lblAngle,null);
+		this.add(lblStep2,null);
+		this.add(lblColor,null);
+		this.add(lblStep3,null);
+		this.add(lblSize,null);
+		this.add(lblSizeUnits,null);
+		this.add(lblStep4,null);
+		this.add(lblFont,null);
+
+
+	}
+
+	private void fillFieldsNames(JComboBox cmb,int[] types) {
+		cmb.addItem(ConfigureLabel.TEXT_FOR_DEFAULT_VALUE);
+		Collection names;
+		if (types == null) {
+
+			String[] allNames = (String[])this.fieldsNames.get("ALL");
+//			if (allNames == null) {
+//				try {
+//					SelectableDataSource dataSource = this.layer.getRecordset();
+//
+//					allNames = dataSource.getFieldNames();
+//					this.fieldsNames.put("ALL",allNames);
+//
+//				} catch (ReadDriverException e) {
+//					e.printStackTrace();
+//				}
+//			}
+			for (int i=0; i < allNames.length; i++) {
+				cmb.addItem(allNames[i]);
+			}
+			return;
+		}
+		Integer typeKey;
+		for (int i=0; i < types.length; i++) {
+			typeKey = new Integer(types[i]);
+			if (!this.fieldsNames.containsKey(typeKey)){
+				names = this.getFieldsFromType(types[i]);
+				this.fieldsNames.put(typeKey,names);
+			}else{
+				names = (Collection)this.fieldsNames.get(typeKey);
+			}
+			if (names != null) {
+				Iterator name = names.iterator();
+				while (name.hasNext()){
+					cmb.addItem(name.next());
+				}
+			}
+
+		}
+	}
+	private Collection getFieldsFromType(int type){
+		ArrayList result = new ArrayList();
+//		try {
+//			SelectableDataSource dataSource = this.layer.getRecordset();
+//
+//			for (int i=0; i < dataSource.getFieldCount(); i++) {
+//				if (dataSource.getFieldType(i) == type){
+//					result.add(dataSource.getFieldName(i));
+//				}
+//			}
+//		} catch (ReadDriverException e) {
+//			e.printStackTrace();
+//		}
+		if (result.size() == 0){
+			return null;
+		}
+		return result;
+
+	}
+
+	private JComboBox getCmbAngle() {
+		if (this.cmbAngle == null) {
+			this.cmbAngle= new JComboBox();
+			this.cmbAngle.setEditable(false);
+			this.cmbAngle.setBounds(cmbAnglePosition);
+			this.fillFieldsNames(this.cmbAngle,new int[]{Types.INTEGER,Types.DOUBLE});
+			this.cmbAngle.addItemListener(this.eventsListener);
+		}
+		return this.cmbAngle;
+	}
+
+	public String getAngleFieldName(){
+		return (String)this.getCmbAngle().getSelectedItem();
+	}
+
+	private JComboBox getCmbColor() {
+		if (this.cmbColor == null) {
+			this.cmbColor= new JComboBox();
+			this.cmbColor.setEditable(false);
+			this.cmbColor.setBounds(cmbColorPosition);
+			this.fillFieldsNames(this.cmbColor,new int[]{Types.INTEGER});
+			this.cmbColor.addItemListener(this.eventsListener);
+		}
+		return this.cmbColor;
+	}
+
+	public String getColorFieldName(){
+		return (String)this.getCmbColor().getSelectedItem();
+	}
+
+
+	private JComboBox getCmbSize() {
+		if (this.cmbSize == null) {
+			this.cmbSize= new JComboBox();
+			this.cmbSize.setEditable(false);
+			this.cmbSize.setBounds(cmbSizePosition);
+			this.fillFieldsNames(this.cmbSize,new int[]{Types.INTEGER,Types.DOUBLE});
+			this.cmbSize.addItemListener(this.eventsListener);
+		}
+		return this.cmbSize;
+	}
+
+
+	public String getSizeFieldName(){
+		return (String)this.getCmbSize().getSelectedItem();
+	}
+
+	private JComboBox getCmbSizeUnits() {
+		if (this.cmbSizeUnits == null) {
+			this.cmbSizeUnits= new JComboBox();
+			this.cmbSizeUnits.setEditable(false);
+			this.cmbSizeUnits.setBounds(cmbSizeUnitsPosition);
+			this.cmbSizeUnits.addItem(PluginServices.getText(this,"pixels"));
+			this.cmbSizeUnits.addItem(PluginServices.getText(this,"metros"));
+			this.cmbSizeUnits.addItemListener(this.eventsListener);
+		}
+		return this.cmbSizeUnits;
+	}
+
+	public boolean sizeUnitsInPixels(){
+		return (this.getCmbSize().getSelectedIndex() == 0);
+	}
+
+
+	private JComboBox getCmbFont() {
+		if (this.cmbFont == null) {
+			this.cmbFont= new JComboBox();
+			this.cmbFont.setEditable(false);
+			this.cmbFont.setBounds(cmbFontPosition);
+			this.fillFieldsNames(this.cmbFont,new int[]{Types.VARCHAR,Types.LONGVARCHAR});
+			this.cmbFont.addItemListener(this.eventsListener);
+		}
+		return this.cmbFont;
+	}
+
+	public String getFontFieldName(){
+		return (String)this.getCmbFont().getSelectedItem();
+	}
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/ConfigureLabel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/SelectAnnotationLayerNameAndField.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/SelectAnnotationLayerNameAndField.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/SelectAnnotationLayerNameAndField.java	(revision 38262)
@@ -0,0 +1,183 @@
+package org.gvsig.app.gui.panels.annotation;
+
+import java.awt.Dimension;
+import java.awt.Rectangle;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JTextField;
+import javax.swing.event.CaretEvent;
+import javax.swing.event.CaretListener;
+
+import org.gvsig.andami.PluginServices;
+
+import jwizardcomponent.JWizardComponents;
+import jwizardcomponent.JWizardPanel;
+
+
+//TODO comentado para que compile
+public class SelectAnnotationLayerNameAndField extends JWizardPanel {
+//	private FLyrAnnotation layer;
+
+	public SelectAnnotationLayerNameAndField(JWizardComponents wizardComponents) {
+		super(wizardComponents);
+		// TODO Auto-generated constructor stub
+	}
+
+
+	private JLabel lblDescription = null;
+	private JLabel lblStep1 = null;
+	private JLabel lblNewLayerName = null;
+	private JLabel lblStep2 = null;
+	private JLabel lblField = null;
+
+	private JTextField txtNewLayerName = null;
+	private JComboBox cmbField = null;
+
+
+	private static final Rectangle lblDescriptionPosition = new Rectangle(4,4,355,75);
+
+	private static final Rectangle lblStep1Position = new Rectangle(4,90,15,15);
+	private static final Rectangle lblNewLayerNamePosition = new Rectangle(30,90,355,15);
+	private static final Rectangle txtNewLayerNamePosition = new Rectangle(30,109,250,18);
+
+
+	private static final Rectangle lblStep2Position = new Rectangle(4,135,15,12);
+	private static final Rectangle lblFieldPosition = new Rectangle(30,135,355,30);
+	private static final Rectangle cmbFieldPosition = new Rectangle(30,169,170,18);
+
+
+
+
+	private class EventsListener implements CaretListener,ItemListener
+	{
+		public void caretUpdate(CaretEvent arg0) {
+			updateButtonsState();
+		}
+
+		public void itemStateChanged(ItemEvent e) {
+			updateButtonsState();
+		}
+
+	}
+
+
+	private void updateButtonsState() {
+		setBackButtonEnabled(false);
+		boolean enabled =checkIsOkPanelData();
+		setNextButtonEnabled(enabled);
+		setFinishButtonEnabled(enabled);
+	}
+
+
+	private EventsListener eventsListener = new EventsListener();
+
+
+	protected boolean checkIsOkPanelData() {
+		if (txtNewLayerName.getText().trim().length() < 1) {
+			return false;
+		}
+		if (((String)cmbField.getSelectedItem()).trim().length() < 1) {
+			return false;
+		}
+		return true;
+	}
+
+
+//	public SelectAnnotationLayerNameAndField(JWizardComponents arg0,FLyrAnnotation layer) {
+//		super(arg0);
+//		this.layer =layer;
+//		this.initialize();
+//	}
+
+	protected void initialize() {
+		this.setLayout(null);
+		this.setSize(new Dimension(358,263));
+		this.addLabels();
+
+		this.add(getTxtNewLayerName(),null);
+		this.add(getCmbField(),null);
+
+		checkIsOkPanelData();
+	}
+
+	private JTextField getTxtNewLayerName() {
+		if (this.txtNewLayerName == null) {
+			this.txtNewLayerName = new JTextField();
+			this.txtNewLayerName.setBounds(txtNewLayerNamePosition);
+			this.txtNewLayerName.setText("NuevaCapa");
+			this.txtNewLayerName.addCaretListener(eventsListener);
+		}
+		return this.txtNewLayerName;
+	}
+
+	public String getNewLayerName() {
+		return this.getTxtNewLayerName().getText();
+	}
+
+
+	private JComboBox getCmbField() {
+		if (this.cmbField == null) {
+			this.cmbField = new JComboBox();
+			this.cmbField.setEditable(false);
+			this.cmbField.setBounds(cmbFieldPosition);
+			this.cmbField.addItemListener(this.eventsListener);
+			this.cmbField.addItem("");
+
+
+//			try {
+//				SelectableDataSource dataSource = this.layer.getRecordset();
+//
+//				String[] fieldsNames = dataSource.getFieldNames();
+//
+//				for (int i=0; i < fieldsNames.length; i++) {
+//					this.cmbField.addItem(fieldsNames[i]);
+//				}
+//
+//			} catch (ReadDriverException e) {
+//				// TODO Auto-generated catch block
+//				e.printStackTrace();
+//			}
+
+		}
+		return this.cmbField;
+	}
+
+	public String getField() {
+		return (String)this.getCmbField().getSelectedItem();
+	}
+
+
+	protected void addLabels() {
+		this.lblDescription = new JLabel();
+		this.lblStep1 = new JLabel();
+		this.lblNewLayerName = new JLabel();
+		this.lblStep2 = new JLabel();
+		this.lblField= new JLabel();
+
+		this.lblDescription.setText(PluginServices.getText(this,"descripcion_de_crear_capa_de_anotaciones"));
+		this.lblStep1.setText("1.");
+		this.lblNewLayerName.setText(PluginServices.getText(this,"introduzca_el_nombre_de_la_nueva_capa_de_anotaciones"));
+		this.lblStep2.setText("2.");
+		this.lblField.setText(PluginServices.getText(this,"seleccione_el_campo_de_texto_que_desea_que_se_utilize_para_mostrar_la_nueva_capa_virtual"));
+
+		this.lblDescription.setBounds(lblDescriptionPosition);
+		this.lblStep1.setBounds(lblStep1Position);
+		this.lblNewLayerName.setBounds(lblNewLayerNamePosition);
+		this.lblStep2.setBounds(lblStep2Position);
+		this.lblField.setBounds(lblFieldPosition);
+
+
+		this.add(lblDescription,null);
+		this.add(lblStep1,null);
+		this.add(lblNewLayerName,null);
+		this.add(lblStep2,null);
+		this.add(lblField,null);
+
+	}
+
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/annotation/SelectAnnotationLayerNameAndField.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/LinkPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/LinkPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/LinkPanel.java	(revision 38262)
@@ -0,0 +1,539 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.panels;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.RenderingHints;
+import java.awt.event.ComponentEvent;
+import java.awt.event.ComponentListener;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextPane;
+import javax.swing.event.HyperlinkEvent;
+
+import org.apache.batik.bridge.BridgeContext;
+import org.apache.batik.bridge.DocumentLoader;
+import org.apache.batik.bridge.GVTBuilder;
+import org.apache.batik.bridge.UserAgentAdapter;
+import org.apache.batik.bridge.ViewBox;
+import org.apache.batik.gvt.GraphicsNode;
+import org.apache.batik.gvt.renderer.StaticRenderer;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.project.documents.gui.PDFViewerWindow;
+import org.gvsig.app.project.documents.view.toolListeners.LinkListener;
+import org.gvsig.utils.BrowserControl;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.svg.SVGDocument;
+
+import com.sun.jimi.core.Jimi;
+
+
+/**
+ * This class extends JPanel. This class implements a Panel to show the content of the URI
+ * that the constructor of the class receives. The URI is interpreted according to the type
+ * of the HyperLink. The allowed types are Text, WWW, image (jpg,gif,tiff,bmp,ico), PDF
+ * documents and SVG images. Implements listener to resize the component that contains the
+ * text when resize the window.
+ *
+ * @author Vicente Caballero Navarro
+ *
+ */
+public class LinkPanel extends JPanel implements IWindow, ComponentListener {
+    private static final Logger logger = LoggerFactory
+            .getLogger(LinkPanel.class);
+    
+	private JPanel jPane = null;
+	private JScrollPane jScrollPane = null;
+//	private JEditorPane jEditorPane1 = null;
+	private JPanel jPanel = null; //  @jve:decl-index=0:visual-constraint="220,10"
+	private URI uri=null;
+	private int type=LinkListener.TYPELINKIMAGE;
+	private JPanel jPanel1Izq = null;
+	private JPanel jPanel1Der = null;
+	private JLabel jLabelUri = null;
+	private JButton jButtonCerrar = null;
+	private JScrollPane scroll=null;
+	private int alto;
+	private int ancho;
+	private WindowInfo m_ViewInfo;
+	private JTextPane textPane;
+	private Element elt;
+    private GVTBuilder gvtBuilder = new GVTBuilder();
+    private GraphicsNode gvtRoot = null;
+    private BridgeContext ctx = null;
+    private StaticRenderer renderer = new StaticRenderer();
+    protected static RenderingHints defaultRenderingHints;
+    static {
+        defaultRenderingHints = new RenderingHints(null);
+        defaultRenderingHints.put(RenderingHints.KEY_ANTIALIASING,
+            RenderingHints.VALUE_ANTIALIAS_ON);
+
+        defaultRenderingHints.put(RenderingHints.KEY_INTERPOLATION,
+            RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+    }
+	/**
+	 * This is the default constructor. Needs the URI with the information of the HyperLink
+	 * and the type of the HyperLink
+	 */
+	public LinkPanel(URI Uri, int t){
+		super();
+		type=t;
+		uri=Uri;
+		addComponentListener(this);
+		initialize();
+	}
+
+	/**
+	 * This method initializes this
+	 */
+	private void initialize() {
+		this.setLayout(new BorderLayout());
+		this.setSize(600, 450);
+		alto=this.getHeight()-100;
+		ancho=this.getWidth()-100;
+		this.add(getJScrollPane(), java.awt.BorderLayout.CENTER);
+		this.add(getJPanel(), java.awt.BorderLayout.SOUTH);
+	}
+
+
+	/**
+	 * This method initializes jScrollPane
+	 *
+	 * @return javax.swing.JScrollPane
+	 */
+	private JScrollPane getJScrollPane() {
+		if (jScrollPane == null) {
+			jScrollPane = new JScrollPane();
+			jScrollPane.setPreferredSize(new java.awt.Dimension(300, 400));
+			jScrollPane.setViewportView(getJPane());
+		}
+		return jScrollPane;
+	}
+
+	/**
+	 * This method initializes jEditorPane1. Check the type of the HyperLink and analize the
+	 * URI. According to the type, adds to the panel the necessary components to show the
+	 * content of the URI. If the type is "0" (text/WWW) adds a ScrollPane with the text.
+	 * If the type "1" (smages) adds a ImageIcon with a label. If the type is "2" uses the
+	 * library "JPedal" to open PDF documents and if the type is "3" implements some methods
+	 * to open SVG images
+	 *
+	 * @return javax.swing.JEditorPane
+	 */
+	private JPanel getJPane() {
+
+		if (jPane == null) {
+			jPane=new JPanel();
+			System.out.println(type);
+
+			//Enlazar a documento de texto o WWW
+			if (type==1){
+				textPane = new JTextPane();
+
+				scroll = new JScrollPane(textPane);
+				scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
+		        scroll.setPreferredSize(new Dimension(ancho-100,alto-100));
+		        scroll.setMinimumSize(new Dimension(ancho-100,alto-100));
+		        textPane.setEditable(false);
+
+				if(uri==null) {
+					System.out.println("NULO");
+				}
+				if (uri != null) {
+					URL url=null;
+					try {
+						url=uri.normalize().toURL();
+					} catch (MalformedURLException e1) {
+						NotificationManager.addError(e1);
+					}
+					try {
+
+						textPane.setPage(url);
+						textPane.addHyperlinkListener(new javax.swing.event.HyperlinkListener() {
+							public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent e) {
+								if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
+									System.out.println("hyperlinkUpdate()");
+									BrowserControl.displayURL(e.getURL().toString());
+
+									}
+								}
+							});
+					} catch (IOException e) {
+						System.err.println("Attempted to read a bad URL: " +
+						uri);
+					}
+					jPane.add(scroll);
+				} else {
+					System.err.println("Couldn't find file.");
+				}
+			}
+			//Enlazar a archivo de Im�gen
+			else if (type==0){
+
+				ImageIcon image = null;
+				String iString=uri.toString();
+				iString=iString.toLowerCase();
+				if (uri == null){
+					System.out.println("Uri creada incorrectamente");
+					return null;}
+
+				if (iString.endsWith("jpg") || iString.endsWith("jpeg") ||
+		                iString.endsWith("gif")) {
+		            try {
+						image = new ImageIcon(Jimi.getImage(uri.toURL()));
+					} catch (MalformedURLException e) {
+						e.printStackTrace();
+					}
+		        } else
+		        	if (iString.endsWith("png") || iString.endsWith("tiff") ||
+		                iString.endsWith("ico") || iString.endsWith("xpm")) {
+		            try {
+						image = new ImageIcon(Jimi.getImage(uri.toURL()));
+					} catch (MalformedURLException e) {
+						e.printStackTrace();
+					}
+
+		        }else {
+		        	try {
+						image=new ImageIcon(uri.toURL());
+					} catch (MalformedURLException e) {
+						e.printStackTrace();
+					}
+		        }
+				if (image==null) {
+					return null;
+				}
+
+				JLabel label = new JLabel(image);
+				jPane.add(label);
+
+				jPane.setVisible(true);
+			}
+
+			//Tipo 2: Enlazar a documentos PDF
+			else if (type==2){
+
+				String aux=null;
+				try {
+					aux = uri.normalize().toURL().toString();
+				} catch (MalformedURLException e) {
+					e.printStackTrace();
+				}
+				aux=aux.replaceFirst("file:/","");
+				System.out.println(aux);
+				PDFViewerWindow pdf =new PDFViewerWindow(aux);
+				jPane.add(pdf);
+				jPane.setVisible(true);
+			}
+
+			//Tipo 3: Enlazar a im�genes SDV
+			else if (type==3){
+				String iString=uri.toString();
+				iString=iString.toLowerCase();
+				if (uri == null){
+					System.out.println("Uri creada incorrectamente");
+					return null;}
+				File file=new File(uri);
+				iString=uri.toString().replaceFirst("file:/","");
+				if (iString.endsWith("svg")){
+					paintSVGToPanel(file);
+				}
+			}
+		}
+		return jPane;
+	 }
+
+	/**
+	 * Allows paint SVG images in the panel.
+	 *
+	 * @param file, this file has been extracted from the URI
+	 */
+	private void paintSVGToPanel(File file) {
+		BufferedImage image = new BufferedImage(this.getWidth(), this.getHeight(),
+				BufferedImage.TYPE_INT_ARGB);
+	    Graphics2D g = image.createGraphics();
+		Rectangle2D rect = new Rectangle2D.Double();
+		rect.setFrame(0,0,this.getWidth(),this.getHeight());
+		obtainStaticRenderer(file);
+		drawSVG(g,rect, null);
+		jPane.setVisible(true);
+		ImageIcon icon=new ImageIcon(image);
+		JLabel label = new JLabel(icon);
+		jPane.add(label);
+	}
+
+	/**
+	 * Render the image to add to the panel.
+	 * @param file, this file has been extracted from the URI
+	 */
+	private void obtainStaticRenderer(File file) {
+        try {
+            UserAgentAdapter userAgent = new UserAgentAdapter();
+            DocumentLoader loader = new DocumentLoader(userAgent);
+            ctx = new BridgeContext(userAgent, loader);
+            Document svgDoc = loader.loadDocument(file.toURI().toString());
+            gvtRoot = gvtBuilder.build(ctx, svgDoc);
+            renderer.setTree(gvtRoot);
+            elt = ((SVGDocument) svgDoc).getRootElement();
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+
+	 /**
+	 * Draw SVG in the Graphics that receives like parameter.
+     *
+     * @param g Graphics
+     * @param rect Rectangle that fills the Graphic.
+     * @param rv Rectangle. This forms the visible part in the Layout
+     */
+    private void drawSVG(Graphics2D g, Rectangle2D rect, Rectangle2D rv) {
+        if ((rv == null) || rv.contains(rect)) {
+            AffineTransform ataux = new AffineTransform();
+
+            ataux.translate(rect.getX(), rect.getY());
+            try {
+                ataux.concatenate(ViewBox.getViewTransform(null, elt,
+                        (float) rect.getWidth(), (float) rect.getHeight(), ctx));
+                gvtRoot.setTransform(ataux);
+
+            } catch (Exception e) {
+                // TODO: handle exception
+            }
+        } else {
+            AffineTransform ataux = new AffineTransform();
+
+            ataux.translate(rect.getX(), rect.getY());
+            ataux.concatenate(ViewBox.getViewTransform(null, elt,
+                    (float) rect.getWidth(), (float) rect.getHeight(), ctx));
+
+            gvtRoot.setTransform(ataux);
+        }
+
+        RenderingHints renderingHints = defaultRenderingHints;
+        g.setRenderingHints(renderingHints);
+
+        if (gvtRoot != null) {
+            gvtRoot.paint(g);
+        }
+    }
+
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel() {
+		if (jPanel == null) {
+			//JLabel name = new JLabel();
+			GridLayout gridLayout = new GridLayout();
+			gridLayout.setRows(1);
+			jPanel = new JPanel();
+			jPanel.setLayout(gridLayout);
+			jPanel.setPreferredSize(new java.awt.Dimension(10, 50));
+			jPanel.setSize(411, 50);
+			jPanel.add(getJPanel1Izq(), null);
+			jPanel.add(getJPanel1Der(), null);
+			String auxext="";
+		}
+
+		return jPanel;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.mdiApp.ui.MDIManager.View#getViewInfo()
+	 */
+	public WindowInfo getWindowInfo() {
+		m_ViewInfo = new WindowInfo(WindowInfo.RESIZABLE | WindowInfo.MAXIMIZABLE | WindowInfo.ICONIFIABLE);
+		m_ViewInfo.setTitle(PluginServices.getText(this,"Hiperenlace"));
+
+		return m_ViewInfo;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.mdiApp.ui.MDIManager.View#viewActivated()
+	 */
+	public void viewActivated() {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * This method initializes jPanel1Izq
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel1Izq() {
+		if (jPanel1Izq == null) {
+			GridBagConstraints gridBagConstraints = new GridBagConstraints();
+			gridBagConstraints.gridx = 0;
+			gridBagConstraints.gridy = 0;
+			jLabelUri = new JLabel();
+			jLabelUri.setText(uri.toString());
+			jLabelUri.setPreferredSize(new java.awt.Dimension(172,17));
+			jPanel1Izq = new JPanel();
+			jPanel1Izq.setLayout(new GridBagLayout());
+			jPanel1Izq.setPreferredSize(new java.awt.Dimension(10,10));
+			jPanel1Izq.setAlignmentX(0.5F);
+			jPanel1Izq.add(jLabelUri, gridBagConstraints);
+		}
+		return jPanel1Izq;
+	}
+
+	/**
+	 * This method initializes jPanel1Der
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel1Der() {
+		if (jPanel1Der == null) {
+			GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
+			gridBagConstraints1.gridx = 0;
+			gridBagConstraints1.gridy = 0;
+			jPanel1Der = new JPanel();
+			jPanel1Der.setLayout(new GridBagLayout());
+			jPanel1Der.add(getJButtonCerrar(), gridBagConstraints1);
+		}
+		return jPanel1Der;
+	}
+
+	/**
+	 * Initializes jButtonCerrar, and implements the Listener to close the window
+	 *
+	 * @return javax.swing.JButton
+	 */
+	private JButton getJButtonCerrar() {
+		if (jButtonCerrar == null) {
+			jButtonCerrar = new JButton();
+			jButtonCerrar.setPreferredSize(new java.awt.Dimension(94,25));
+			jButtonCerrar.setText(PluginServices.getText(this,"Cerrar"));
+			jButtonCerrar.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
+
+					if (PluginServices.getMainFrame() != null) {
+						PluginServices.getMDIManager().closeWindow(LinkPanel.this);
+					} else {
+						((JDialog) (getParent().getParent().getParent()
+										.getParent())).dispose();
+					}
+				}
+			});
+
+		}
+		return jButtonCerrar;
+	}
+	/**
+	 * Resizes the scroll that contains the text when the window changes its own size
+	 */
+	private void redimensionarScroll(){
+		Dimension currentSize = getSize();
+		scroll.setPreferredSize(new Dimension(currentSize.width-100,currentSize.height-100));
+        scroll.setMinimumSize(new Dimension(currentSize.width-100,currentSize.height-100));
+		scroll.updateUI();
+		System.out.println(scroll.getSize().toString());
+	}
+
+	/**
+	 * Invoked when the frame�s size changes
+	 */
+	public void componentResized(ComponentEvent e) {
+		if(type==1) {
+			redimensionarScroll();
+		}
+	}
+
+	/*
+	 *  (non-Javadoc)
+	 * @see java.awt.event.ComponentListener#componentMoved(java.awt.event.ComponentEvent)
+	 */
+	public void componentMoved(ComponentEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 *  (non-Javadoc)
+	 * @see java.awt.event.ComponentListener#componentShown(java.awt.event.ComponentEvent)
+	 */
+	public void componentShown(ComponentEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 *  (non-Javadoc)
+	 * @see java.awt.event.ComponentListener#componentHidden(java.awt.event.ComponentEvent)
+	 */
+	public void componentHidden(ComponentEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.TOOL_PROFILE;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/LinkPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/ProjChooserPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/ProjChooserPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/ProjChooserPanel.java	(revision 38262)
@@ -0,0 +1,136 @@
+/*
+ * Created on 30-ene-2005
+ */
+package org.gvsig.app.gui.panels;
+
+import java.awt.FlowLayout;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.gui.panels.crs.ISelectCrsPanel;
+import org.gvsig.gui.beans.swing.JButton;
+
+/**
+ * @author Luis W. Sevilla (sevilla_lui@gva.es)
+ */
+public class ProjChooserPanel extends CRSSelectPanel {
+
+    private IProjection curProj = null;
+    private JLabel jLblProj = null;
+    private JLabel jLblProjName = null;
+    private JButton jBtnChangeProj = null;
+    private JPanel jPanelProj = null;
+    private boolean okPressed = false;
+
+    /**
+	 *
+	 */
+    public ProjChooserPanel(IProjection proj) {
+        super(proj);
+        setCurProj(proj);
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     * 
+     * @return void
+     */
+    private void initialize() {
+        this.setLayout(new FlowLayout(FlowLayout.LEFT, 15, 0));
+        this.add(getJLblProjName());
+        this.add(getJLblProj());
+        this.add(getJBtnChangeProj());
+        initBtnChangeProj();
+    }
+
+    private void initBtnChangeProj() {
+        getJBtnChangeProj().addActionListener(
+            new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    okPressed = false;
+
+                    ISelectCrsPanel csSelect =
+                        getUIFactory().getSelectCrsPanel(curProj, true);
+
+                    PluginServices.getMDIManager().addWindow(csSelect);
+
+                    if (csSelect.isOkPressed()) {
+                        curProj = csSelect.getProjection();
+                        jLblProj.setText(curProj.getAbrev());
+                        okPressed = true;
+                        if (actionListener != null) {
+                            actionListener.actionPerformed(e);
+                        }
+                    }
+                }
+            });
+    }
+
+    public JLabel getJLblProjName() {
+        if (jLblProjName == null) {
+            jLblProjName = new JLabel("Proyeccion actual");
+            jLblProjName.setText(PluginServices.getText(this,
+                "__proyeccion_actual")); //$NON-NLS-1$
+        }
+        return jLblProjName;
+    }
+
+    public JLabel getJLabel() {
+        return getJLblProjName();
+    }
+
+    public JLabel getJLblProj() {
+        if (jLblProj == null) {
+            jLblProj = new JLabel();
+            if (curProj != null)
+                jLblProj.setText(curProj.getAbrev());
+        }
+        return jLblProj;
+    }
+
+    public void addBtnChangeProjActionListener(java.awt.event.ActionListener al) {
+        jBtnChangeProj.addActionListener(al);
+    }
+
+    /**
+     * This method initializes jButton
+     * 
+     * @return javax.swing.JButton
+     */
+    public JButton getJBtnChangeProj() {
+        if (jBtnChangeProj == null) {
+            jBtnChangeProj = new JButton();
+            jBtnChangeProj.setText("..."); //$NON-NLS-1$
+            jBtnChangeProj.setPreferredSize(new java.awt.Dimension(26, 26));
+        }
+        return jBtnChangeProj;
+    }
+
+    /**
+     * @return Returns the curProj.
+     */
+    public IProjection getCurProj() {
+        return curProj;
+    }
+
+    /**
+     * @param curProj
+     *            The curProj to set.
+     */
+    public void setCurProj(IProjection curProj) {
+        this.curProj = curProj;
+    }
+
+    /**
+     * @return Returns the okPressed.
+     */
+    public boolean isOkPressed() {
+        return okPressed;
+    }
+} // @jve:decl-index=0:visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/panels/ProjChooserPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByTheme.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByTheme.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByTheme.java	(revision 38262)
@@ -0,0 +1,362 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.selectionByTheme;
+
+import java.awt.BorderLayout;
+import java.awt.GridLayout;
+import java.util.ArrayList;
+
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.gui.beans.swing.JButton;
+import org.gvsig.utils.swing.JComboBox;
+
+
+
+public class SelectionByTheme extends JPanel implements IWindow {
+	public static final int EQUALS = 0;
+	public static final int DISJOINT = 1;
+	public static final int INTERSECTS = 2;
+	public static final int TOUCHES = 3;
+	public static final int CROSSES = 4;
+	public static final int WITHIN = 5;
+	public static final int CONTAINS = 6;
+	public static final int OVERLAPS = 7;
+	public final String[] textosAcciones = new String[] {
+    PluginServices.getText(this, "Sean_iguales_a"), //"sean iguales a",
+    PluginServices.getText(this, "Sean_disjuntos_a"), //"sean disjuntos a",
+    PluginServices.getText(this, "Intersecten_con"), //"intersecten con",
+    PluginServices.getText(this, "Toquen"), //"toquen",
+    PluginServices.getText(this, "Crucen_con"), //"crucen con",
+    PluginServices.getText(this, "Contengan"), //"contengan",
+    PluginServices.getText(this, "Esten_contenidos_en"), //"est�n contenidos en",
+    PluginServices.getText(this, "Se_superponen_a"), //"se superponen a"
+	};
+
+	private SelectionByThemeModel dataSource = null;
+
+	private ArrayList listeners = new ArrayList();
+
+	private JPanel jPanel = null;
+	private JPanel jPanel1 = null;
+	private JLabel jLabel = null;
+	private JComboBox cmbAction = null;
+	private JLabel jLabel1 = null;
+	private JComboBox cmbCapas = null;
+	private JButton btnNew = null;
+	private JButton btnAdd = null;
+	private JButton btnFrom = null;
+	private JButton btnCancel = null;
+	/**
+	 * This is the default constructor
+	 */
+	public SelectionByTheme() {
+		super();
+		initialize();
+	}
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private void initialize() {
+		this.setLayout(new BorderLayout(10, 10));
+		this.add(new JLabel(), BorderLayout.NORTH);
+		this.add(new JLabel(), BorderLayout.WEST);
+		this.add(getJPanel(), BorderLayout.CENTER);
+		this.add(getJPanel1(), BorderLayout.EAST);
+		this.add(new JLabel(), BorderLayout.SOUTH);
+		this.setSize(540, 95);
+	}
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return JPanel
+	 */
+	private JPanel getJPanel() {
+		if(jPanel == null) {
+			jPanel = new JPanel();
+			java.awt.FlowLayout layFlowLayout1 = new java.awt.FlowLayout();
+			layFlowLayout1.setVgap(30);
+			jPanel.setLayout(new GridLayout(4, 2, 5, 5));
+			jPanel.add(getJLabel(), null);
+			jPanel.add(getCmbAction(), null);
+			jPanel.add(getJLabel1(), null);
+			jPanel.add(getCmbCapas(), null);
+
+		}
+		return jPanel;
+	}
+	/**
+	 * This method initializes jPanel1
+	 *
+	 * @return JPanel
+	 */
+	private JPanel getJPanel1() {
+		if(jPanel1 == null) {
+			jPanel1 = new JPanel();
+			jPanel1.setLayout(new GridLayout(4, 1, 5, 5));
+			jPanel1.add(getBtnNew(), null);
+			jPanel1.add(getBtnAdd(), null);
+			jPanel1.add(getBtnFrom(), null);
+			jPanel1.add(getBtnCancel(), null);
+			jPanel1.setPreferredSize(new java.awt.Dimension(200,220));
+		}
+		return jPanel1;
+	}
+	/**
+	 * This method initializes jLabel
+	 *
+	 * @return JLabel
+	 */
+	private JLabel getJLabel() {
+		if(jLabel == null) {
+			jLabel = new JLabel();
+			jLabel.setText(PluginServices.getText(this, "Seleccionar_de_las_capas_activas_los_elementos_que") + "... ");
+		}
+		return jLabel;
+	}
+	/**
+	 * This method initializes cmbAction
+	 *
+	 * @return JComboBox
+	 */
+	private JComboBox getCmbAction() {
+		if(cmbAction == null) {
+			cmbAction = new JComboBox();
+			cmbAction.setPreferredSize(new java.awt.Dimension(200,20));
+			DefaultComboBoxModel model = new DefaultComboBoxModel(textosAcciones);
+			cmbAction.setModel(model);
+		}
+		return cmbAction;
+	}
+	/**
+	 * This method initializes jLabel1
+	 *
+	 * @return JLabel
+	 */
+	private JLabel getJLabel1() {
+		if(jLabel1 == null) {
+			jLabel1 = new JLabel();
+			jLabel1.setText(PluginServices.getText(this, "Elementos_seleccionados_de_la_capa"));
+		}
+		return jLabel1;
+	}
+	/**
+	 * This method initializes cmbCapas
+	 *
+	 * @return JComboBox
+	 */
+	private JComboBox getCmbCapas() {
+		if(cmbCapas == null) {
+			cmbCapas = new JComboBox();
+			cmbCapas.setPreferredSize(new java.awt.Dimension(200,20));
+		}
+		return cmbCapas;
+	}
+	/**
+	 * This method initializes btnNew
+	 *
+	 * @return JButton
+	 */
+	private JButton getBtnNew() {
+		if(btnNew == null) {
+			btnNew = new JButton();
+			btnNew.setText(PluginServices.getText(this, "Nuevo_conjunto"));
+			btnNew.setMargin(new java.awt.Insets(2,2,2,2));
+			btnNew.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					callNewListeners(cmbCapas.getSelectedIndex(), cmbAction.getSelectedIndex());
+				}
+			});
+		}
+		return btnNew;
+	}
+	/**
+	 * This method initializes btnAdd
+	 *
+	 * @return JButton
+	 */
+	private JButton getBtnAdd() {
+		if(btnAdd == null) {
+			btnAdd = new JButton();
+			btnAdd.setText(PluginServices.getText(this, "Anadir_al_conjunto"));
+			btnAdd.setMargin(new java.awt.Insets(2,2,2,2));
+			btnAdd.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					callAddToListeners(cmbCapas.getSelectedIndex(), cmbAction.getSelectedIndex());
+				}
+			});
+		}
+		return btnAdd;
+	}
+	/**
+	 * This method initializes btnFrom
+	 *
+	 * @return JButton
+	 */
+	private JButton getBtnFrom() {
+		if(btnFrom == null) {
+			btnFrom = new JButton();
+			btnFrom.setText(PluginServices.getText(this, "Seleccionar_del_conjunto"));
+			btnFrom.setMargin(new java.awt.Insets(2,2,2,2));
+			btnFrom.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					callFromListeners(cmbCapas.getSelectedIndex(), cmbAction.getSelectedIndex());
+				}
+			});
+		}
+		return btnFrom;
+	}
+	/**
+	 * This method initializes btnCancel
+	 *
+	 * @return JButton
+	 */
+	private JButton getBtnCancel() {
+		if(btnCancel == null) {
+			btnCancel = new JButton();
+			btnCancel.setText(PluginServices.getText(this, "Cancel"));
+			btnCancel.setMargin(new java.awt.Insets(2,2,2,2));
+			btnCancel.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					PluginServices.getMDIManager().closeWindow(SelectionByTheme.this);
+				}
+			});
+		}
+		return btnCancel;
+	}
+
+	/**
+	 * @return
+	 */
+	public SelectionByThemeModel getModel() {
+		return dataSource;
+	}
+
+	/**
+	 * @param source
+	 */
+	public void setModel(SelectionByThemeModel source) {
+		dataSource = source;
+		String[] nameLayers = new String[dataSource.getLayers().getLayersCount()];
+		for (int i=0; i < nameLayers.length; i++) {
+			nameLayers[i] = dataSource.getLayers().getLayer(i).getName();
+		}
+		DefaultComboBoxModel model =
+			new DefaultComboBoxModel(nameLayers);
+		cmbCapas.setModel(model);
+	}
+	/**
+	 * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+	 */
+	public WindowInfo getWindowInfo() {
+		WindowInfo vi = new WindowInfo(WindowInfo.MODALDIALOG);
+		vi.setWidth(this.getWidth()+8);
+		vi.setHeight(this.getHeight());
+		vi.setTitle(PluginServices.getText(this, "Seleccion_por_capa"));
+		return vi;
+	}
+
+	private void callNewListeners(int selection, int actionCode){
+		for (int i = 0; i < listeners.size();
+				i++) {
+			SelectionByThemeListener l = (SelectionByThemeListener) listeners.get(i);
+			l.newSet(dataSource.getLayers().getActives(), dataSource.getLayers().getLayer(selection), actionCode);
+		}
+
+	}
+
+	private void callAddToListeners(int selection, int actionCode){
+		for (int i = 0; i < listeners.size();
+				i++) {
+			SelectionByThemeListener l = (SelectionByThemeListener) listeners.get(i);
+			l.addToSet(dataSource.getLayers().getActives(), dataSource.getLayers().getLayer(selection), actionCode);
+		}
+
+	}
+
+	private void callFromListeners(int selection, int actionCode){
+		for (int i = 0; i < listeners.size();
+				i++) {
+			SelectionByThemeListener l = (SelectionByThemeListener) listeners.get(i);
+			l.fromSet(dataSource.getLayers().getActives(), dataSource.getLayers().getLayer(selection), actionCode);
+		}
+
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param arg0
+	 *
+	 * @return
+	 */
+	public boolean addSelectionListener(SelectionByThemeListener arg0) {
+		return listeners.add(arg0);
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param arg0
+	 *
+	 * @return
+	 */
+	public boolean removeSelectionListener(SelectionByThemeListener arg0) {
+		return listeners.remove(arg0);
+	}
+	/**
+	 * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
+	 */
+	public void viewActivated() {
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+
+}  //  @jve:visual-info  decl-index=0 visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByTheme.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeModel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeModel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeModel.java	(revision 38262)
@@ -0,0 +1,48 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.selectionByTheme;
+
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+
+
+public interface SelectionByThemeModel {
+	public FLayers getLayers();
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeModel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/DefaultSelectionByThemeModel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/DefaultSelectionByThemeModel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/DefaultSelectionByThemeModel.java	(revision 38262)
@@ -0,0 +1,69 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.selectionByTheme;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+
+
+
+
+public class DefaultSelectionByThemeModel
+	implements SelectionByThemeModel {
+
+	private FLayers layers;
+
+	/**
+	 * @see org.gvsig.app.gui.selectionByTheme.SelectionByThemeModel#getViews()
+	 */
+	public FLayers getLayers() {
+		IWindow v = PluginServices.getMDIManager().getActiveWindow();
+		if (v instanceof org.gvsig.app.project.documents.view.gui.DefaultViewPanel){
+			org.gvsig.app.project.documents.view.gui.DefaultViewPanel vista = (org.gvsig.app.project.documents.view.gui.DefaultViewPanel) v;
+			
+			return vista.getModel().getMapContext().getLayers();
+		}
+		
+		return null;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/DefaultSelectionByThemeModel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeListener.java	(revision 38262)
@@ -0,0 +1,49 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.selectionByTheme;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+public interface SelectionByThemeListener {
+	public void newSet(FLayer[] toSelect, FLayer selectionLayer, int action);
+	public void addToSet(FLayer[] toSelect, FLayer selectionLayer, int action);
+	public void fromSet(FLayer[] toSelect, FLayer selectionLayer, int action);
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/SelectionByThemeListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/MySelectionByThemeListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/MySelectionByThemeListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/MySelectionByThemeListener.java	(revision 38262)
@@ -0,0 +1,328 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.selectionByTheme;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.tools.dispose.DisposableIterator;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureQuery;
+import org.gvsig.fmap.dal.feature.FeatureSelection;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.ContainsGeometryEvaluator;
+import org.gvsig.fmap.mapcontext.layers.vectorial.CrossesGeometryEvaluator;
+import org.gvsig.fmap.mapcontext.layers.vectorial.DisjointGeometryEvaluator;
+import org.gvsig.fmap.mapcontext.layers.vectorial.EqualsGeometryEvaluator;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.layers.vectorial.IntersectsGeometryEvaluator;
+import org.gvsig.fmap.mapcontext.layers.vectorial.OverlapsGeometryEvaluator;
+import org.gvsig.fmap.mapcontext.layers.vectorial.TouchesGeometryEvaluator;
+import org.gvsig.fmap.mapcontext.layers.vectorial.WithinGeometryEvaluator;
+import org.gvsig.tools.dispose.DisposeUtils;
+import org.gvsig.tools.evaluator.Evaluator;
+import org.gvsig.tools.evaluator.EvaluatorData;
+import org.gvsig.tools.evaluator.EvaluatorException;
+import org.gvsig.tools.evaluator.EvaluatorFieldsInfo;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+//TODO comentado para que compile
+public class MySelectionByThemeListener implements SelectionByThemeListener {
+	/**
+	 * @see org.gvsig.app.gui.selectionByTheme.SelectionByThemeListener#newSet(int,
+	 *      int, int)
+	 */
+	public void newSet(FLayer[] toSelect, FLayer selectionLayer, int action) {
+		long t1 = System.currentTimeMillis();
+
+		if (selectionLayer instanceof FLyrVect) {
+			try {
+				FeatureSelection selection=(FeatureSelection)((FLyrVect)selectionLayer).getFeatureStore().getSelection();
+				SelectByTheme filter=new SelectByTheme(selection,selectionLayer.getMapContext().getProjection(),selection.getDefaultFeatureType().getDefaultGeometryAttributeName(), action);
+
+				for (int i = 0; i < toSelect.length; i++) {
+					if (toSelect[i] instanceof FLyrVect) {
+//						if (!selectionLayer.getFullEnvelope().intersects(toSelect[i].getFullEnvelope())){
+//							continue;
+//						}
+						FeatureStore storeToQuery = ((FLyrVect) toSelect[i]).getFeatureStore();
+						FeatureQuery fQuery = storeToQuery
+								.createFeatureQuery();
+						filter.setData(storeToQuery.getDefaultFeatureType(),storeToQuery.getDefaultFeatureType().getDefaultGeometryAttributeName(),null);
+
+						fQuery.setFilter(filter);
+						FeatureSet featureSet = null;
+						try {
+							featureSet = storeToQuery.getFeatureSet(fQuery);
+							((FeatureSelection) storeToQuery.getSelection())
+									.deselectAll();
+							storeToQuery.setSelection(featureSet);
+						} finally {
+							if (featureSet != null) {
+								featureSet.dispose();
+							}
+						}
+					}
+				}
+			} catch (ReadException e) {
+				NotificationManager.addError("error_selection_by_theme", e);
+			} catch (DataException e) {
+				NotificationManager.addError("error_selection_by_theme", e);
+			}
+
+		}
+		long t2 = System.currentTimeMillis();
+		System.out
+				.println("Tiempo de consulta: " + (t2 - t1) + " milisegundos");
+		// doSelection(toSelect, selectionLayer, action, false);
+	}
+
+	/**
+	 * @see org.gvsig.app.gui.selectionByTheme.SelectionByThemeListener#addToSet(int,
+	 *      int, int)
+	 */
+	public void addToSet(FLayer[] toSelect, FLayer selectionLayer, int action) {
+		long t1 = System.currentTimeMillis();
+
+		if (selectionLayer instanceof FLyrVect) {
+			try {
+				FeatureSelection selection=(FeatureSelection)((FLyrVect)selectionLayer).getFeatureStore().getSelection();
+				SelectByTheme filter=new SelectByTheme(selection,selectionLayer.getMapContext().getProjection(),selection.getDefaultFeatureType().getDefaultGeometryAttributeName(), action);
+
+				for (int i = 0; i < toSelect.length; i++) {
+					if (toSelect[i] instanceof FLyrVect) {
+						if (!selectionLayer.getFullEnvelope().intersects(toSelect[i].getFullEnvelope())){
+							continue;
+						}
+						FeatureStore storeToQuery = ((FLyrVect) toSelect[i]).getFeatureStore();
+						FeatureQuery fQuery = storeToQuery
+								.createFeatureQuery();
+						filter.setData(storeToQuery.getDefaultFeatureType(),storeToQuery.getDefaultFeatureType().getDefaultGeometryAttributeName(),null);
+
+						fQuery.setFilter(filter);
+						FeatureSet featureSet = null;
+						try {
+							featureSet = storeToQuery.getFeatureSet(fQuery);
+							storeToQuery.setSelection(featureSet);
+						} finally {
+							if (featureSet != null) {
+								featureSet.dispose();
+							}
+						}
+					}
+				}
+			} catch (ReadException e) {
+				NotificationManager.addError("error_selection_by_theme", e);
+			} catch (DataException e) {
+				NotificationManager.addError("error_selection_by_theme", e);
+			}
+
+		}
+		long t2 = System.currentTimeMillis();
+		System.out
+				.println("Tiempo de consulta: " + (t2 - t1) + " milisegundos");
+	}
+
+	/**
+	 * @see org.gvsig.app.gui.selectionByTheme.SelectionByThemeListener#fromSet(int,
+	 *      int, int)
+	 */
+	public void fromSet(FLayer[] toSelect, FLayer selectionLayer, int action) {
+		long t1 = System.currentTimeMillis();
+		if (selectionLayer instanceof FLyrVect) {
+			try {
+				FeatureSelection selection=(FeatureSelection)((FLyrVect)selectionLayer).getFeatureStore().getSelection();
+				SelectByTheme filter=new SelectByTheme(selection,selectionLayer.getMapContext().getProjection(),selection.getDefaultFeatureType().getDefaultGeometryAttributeName(), action);
+
+				for (int i = 0; i < toSelect.length; i++) {
+					if (toSelect[i] instanceof FLyrVect) {
+						if (!selectionLayer.getFullEnvelope().intersects(toSelect[i].getFullEnvelope())){
+							continue;
+						}
+						FeatureStore storeToQuery = ((FLyrVect) toSelect[i]).getFeatureStore();
+						FeatureQuery fQuery = storeToQuery
+								.createFeatureQuery();
+						filter.setData(storeToQuery.getDefaultFeatureType(),storeToQuery.getDefaultFeatureType().getDefaultGeometryAttributeName(),(FeatureSelection)storeToQuery.getSelection());
+
+						fQuery.setFilter(filter);
+						FeatureSet featureSet = null;
+						try {
+							featureSet = storeToQuery.getFeatureSet(fQuery);
+							((FeatureSelection) storeToQuery.getSelection())
+									.deselectAll();
+							storeToQuery.setSelection(featureSet);
+						} finally {
+							if (featureSet != null) {
+								featureSet.dispose();
+							}
+
+						}
+					}
+				}
+			} catch (ReadException e) {
+				NotificationManager.addError("error_selection_by_theme", e);
+			} catch (DataException e) {
+				NotificationManager.addError("error_selection_by_theme", e);
+			}
+
+		}
+		long t2 = System.currentTimeMillis();
+		System.out
+				.println("Tiempo de consulta: " + (t2 - t1) + " milisegundos");
+	}
+	class SelectByTheme implements Evaluator{
+		private FeatureSelection selection=null;
+		private IProjection projection;
+		private FeatureType featureType;
+		private String geomName;
+		private EvaluatorFieldsInfo info;
+		private String nameSelectedGeom;
+		private FeatureSelection featureSelection;
+		private int action;
+		private int index;
+
+		public SelectByTheme(FeatureSelection selection, IProjection projection,String nameSelectedGeom, int action){
+			this.selection=selection;
+
+			this.projection=projection;
+			this.nameSelectedGeom=nameSelectedGeom;
+			this.action=action;
+			this.index=selection.getDefaultFeatureType().getIndex(nameSelectedGeom);
+		}
+		public void setData(FeatureType featureType, String geomName, FeatureSelection featureSelection){
+			this.featureType=featureType;
+			this.geomName=geomName;
+			this.featureSelection=featureSelection;
+			this.info=new EvaluatorFieldsInfo();
+			this.info.addFieldValue(geomName);
+		}
+
+		public Object evaluate(EvaluatorData data) throws EvaluatorException {
+			if (featureSelection!=null && !featureSelection.isSelected(((Feature)data.getContextValue("feature")))){
+				return new Boolean(false);
+			}
+			DisposableIterator features = null;
+			try {
+				features = selection.iterator();
+
+				while (features.hasNext()) {
+					Feature feature = (Feature) features.next();
+					Geometry geometry = feature.getGeometry(index);
+					Evaluator eval = null;
+					switch (action) {
+					case SelectionByTheme.INTERSECTS:
+						eval = new IntersectsGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+					case SelectionByTheme.CONTAINS:
+						eval = new ContainsGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+					case SelectionByTheme.CROSSES:
+						eval = new CrossesGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+					case SelectionByTheme.DISJOINT:
+						eval = new DisjointGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+					case SelectionByTheme.EQUALS:
+						eval = new EqualsGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+					case SelectionByTheme.OVERLAPS:
+						eval = new OverlapsGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+					case SelectionByTheme.TOUCHES:
+						eval = new TouchesGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+					case SelectionByTheme.WITHIN:
+						eval = new WithinGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+						break;
+
+					default:
+						eval = new IntersectsGeometryEvaluator(geometry,
+								projection, featureType, geomName);
+					break;
+					}
+
+					Boolean evaluate = (Boolean) eval.evaluate(data);
+					if ((evaluate).booleanValue()) {
+						return evaluate;
+					}
+				}
+			} catch (DataException e) {
+				NotificationManager.addError("error_selection_by_theme", e);
+			} finally {
+				DisposeUtils.dispose(features);
+			}
+			return new Boolean(false);
+		}
+
+		public String getName() {
+			return "select by theme";
+		}
+
+		public String getSQL() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+		public String getDescription() {
+			return getName();
+		}
+		public EvaluatorFieldsInfo getFieldsInfo() {
+			return info;
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/selectionByTheme/MySelectionByThemeListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListenerSupport.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListenerSupport.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListenerSupport.java	(revision 38262)
@@ -0,0 +1,95 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.wizards;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class WizardListenerSupport {
+    private ArrayList listeners = new ArrayList();
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param listener DOCUMENT ME!
+     */
+    public void addWizardListener(WizardListener listener) {
+        listeners.add(listener);
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param listener DOCUMENT ME!
+     */
+    public void removeWizardListener(WizardListener listener) {
+        listeners.remove(listener);
+    }
+
+	/**
+	 * DOCUMENT ME!
+	 * @param finishable TODO
+	 */
+	public void callStateChanged(boolean finishable) {
+		Iterator i = listeners.iterator();
+
+		while (i.hasNext()) {
+			((WizardListener) i.next()).wizardStateChanged(finishable);
+		}
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 */
+	public void callError(Exception descripcion) {
+		Iterator i = listeners.iterator();
+
+		while (i.hasNext()) {
+			((WizardListener) i.next()).error(descripcion);
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListenerSupport.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/FormatListModel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/FormatListModel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/FormatListModel.java	(revision 38262)
@@ -0,0 +1,76 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.wizards;
+
+import javax.swing.AbstractListModel;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class FormatListModel extends AbstractListModel {
+    String[] formatos;
+
+    /**
+     * Creates a new FormatListModel object.
+     *
+     * @param f DOCUMENT ME!
+     */
+    public FormatListModel(String[] f) {
+        formatos = f;
+    }
+
+    /**
+     * @see javax.swing.ListModel#getSize()
+     */
+    public int getSize() {
+        return formatos.length;
+    }
+
+    /**
+     * @see javax.swing.ListModel#getElementAt(int)
+     */
+    public Object getElementAt(int index) {
+        return formatos[index];
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/FormatListModel.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListener.java	(revision 38262)
@@ -0,0 +1,62 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.wizards;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ */
+public interface WizardListener {
+
+	/**
+	 * Invocado cuando el wizard puede ser finalizado porque se
+	 * ha rellenado toda la informaci�n necesaria
+	 */
+	public void wizardStateChanged(boolean finishable);
+	
+	/**
+	 * Si se produce alg�n error
+	 *
+	 * @param e Excepci�n que se ha producido
+	 */
+	public void error(Exception e);
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerInfo.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerInfo.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerInfo.java	(revision 38262)
@@ -0,0 +1,107 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.wizards;
+
+import java.util.ArrayList;
+
+
+//	Nodo[] nodos;
+public class LayerInfo {
+    public String text;
+    public String name;
+    public boolean queryable;
+    private ArrayList srs = new ArrayList();
+    
+    public ArrayList hijos = new ArrayList();
+    public LayerInfo padre;
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param srs DOCUMENT ME!
+     */
+    public void addSRS(String srs) {
+    	String[] srsArray = srs.split(" ");
+    	for (int i = 0; i < srsArray.length; i++){
+			this.srs.add(srsArray[i]);
+    	}
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public ArrayList getSRSs() {
+		ArrayList ret = new ArrayList();
+		ret.addAll(srs);
+
+        if (padre != null) {
+            ret.addAll(padre.getSRSs());
+        }
+
+        return ret;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public String toString() {
+        return text;
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    public boolean equals(Object obj) {
+    	try{
+	        LayerInfo objeto = (LayerInfo) obj;
+			return this.name.equals(objeto.name);
+		}catch(ClassCastException e){
+			e.printStackTrace();
+			return false;
+		}catch (NullPointerException e) {
+			return false;
+		}
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerInfo.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerListModel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerListModel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerListModel.java	(revision 38262)
@@ -0,0 +1,144 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.wizards;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.swing.AbstractListModel;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class LayerListModel extends AbstractListModel {
+    private ArrayList nodos = new ArrayList();
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param elemento DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public boolean addElement(LayerInfo elemento) {
+        if (elemento == null) {
+            return false;
+        }
+
+        for (int i = 0; i < nodos.size(); i++) {
+            if (((LayerInfo) nodos.get(i)).equals(elemento)) {
+                return false;
+            }
+        }
+
+        nodos.add(elemento);
+
+        fireContentsChanged(this, nodos.size() - 1, nodos.size() - 1);
+
+        return true;
+    }
+
+	public void clear(){
+		nodos.clear();
+		fireContentsChanged(this, 0, 0);
+	}
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param index DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public LayerInfo delElement(int index) {
+        LayerInfo ret = (LayerInfo) nodos.remove(index);
+        this.fireContentsChanged(this, index, index);
+
+        return ret;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param c DOCUMENT ME!
+     */
+    public void delElements(Collection c) {
+        nodos.removeAll(c);
+        this.fireContentsChanged(this, 0, nodos.size());
+    }
+
+    /**
+     * @see javax.swing.ListModel#getSize()
+     */
+    public int getSize() {
+        return nodos.size();
+    }
+
+    /**
+     * @see javax.swing.ListModel#getElementAt(int)
+     */
+    public Object getElementAt(int index) {
+        return ((LayerInfo) nodos.get(index)).text;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public LayerInfo[] getElements() {
+        return (LayerInfo[]) nodos.toArray(new LayerInfo[0]);
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param index DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public LayerInfo getLayerInfo(int index) {
+        return (LayerInfo) nodos.get(index);
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/LayerListModel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardData.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardData.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardData.java	(revision 38262)
@@ -0,0 +1,125 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.wizards;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class WizardData {
+    private String title;
+    private String Abstract;
+    private LayerInfo layer;
+    private String[] formats;
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return
+     */
+    public String getAbstract() {
+        return Abstract;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return
+     */
+    public String[] getFormats() {
+        return formats;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return
+     */
+    public LayerInfo getLayer() {
+        return layer;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return
+     */
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param string
+     */
+    public void setAbstract(String string) {
+        Abstract = string;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param strings
+     */
+    public void setFormats(String[] strings) {
+        formats = strings;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param info
+     */
+    public void setLayer(LayerInfo info) {
+        layer = info;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param string
+     */
+    public void setTitle(String string) {
+        title = string;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardData.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardDataSource.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardDataSource.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardDataSource.java	(revision 38262)
@@ -0,0 +1,69 @@
+/*
+ * Created on 09-sep-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.wizards;
+
+import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+import java.net.URL;
+
+import org.exolab.castor.xml.ValidationException;
+import org.gvsig.fmap.mapcontext.exceptions.UnsupportedVersionLayerException;
+
+
+/**
+ * @author fernando
+ *
+ * To change the template for this generated type comment go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+public interface WizardDataSource {
+	public WizardData detalles(URL host)throws IllegalStateException, ValidationException, 
+	UnsupportedVersionLayerException, IOException ;
+	
+	public Rectangle2D getBoundingBox(String[] layerName, String srs);
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/wizards/WizardDataSource.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/ILayerPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/ILayerPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/ILayerPanel.java	(revision 38262)
@@ -0,0 +1,24 @@
+package org.gvsig.app.gui;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+/**
+ * @author fjp
+ *
+ * Interfaz que se usa por las nuevas capas que necesiten definir
+ * una capa que todav�a no existe en gvSIG.
+ * Para usarlo, en una extensi�n aparter, se define un JPanel
+ * que implemente este interfaz, y luego se a�ade al Wizard 
+ * correspondiente.
+ * Por ejemplo, cuando se crea una nueva capa, existe un Wizard
+ * del tipo JWizardComponents en la clase NewTheme de extCAD
+ * (o extEdition, como quiera que se llame al final)
+ */
+public interface ILayerPanel {
+	/**
+	 * Creates a FLyrWFS.
+	 * 
+	 * @return the layer
+	 */
+	public FLayer getLayer();
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/ILayerPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterException.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterException.java	(revision 38262)
@@ -0,0 +1,62 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.filter;
+
+import java.util.Map;
+
+import org.gvsig.tools.exception.BaseException;
+
+
+public class FilterException extends BaseException {
+
+	/**
+	 *
+	 */
+	public FilterException() {
+		super();
+
+	}
+
+	protected Map values() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterException.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionListener.java	(revision 38262)
@@ -0,0 +1,51 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.filter;
+
+import org.gvsig.fmap.dal.exception.DataException;
+
+public interface ExpressionListener {
+	public void newSet(String expression) throws DataException;
+
+	public void addToSet(String expression) throws DataException;
+
+	public void fromSet(String expression) throws DataException;
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterDialog.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterDialog.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterDialog.java	(revision 38262)
@@ -0,0 +1,725 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.filter;
+
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.text.NumberFormat;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.TreeSet;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.IWindowListener;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureQuery;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.gui.beans.filterPanel.tableFilterQueryPanel.TableFilterQueryJPanel;
+import org.gvsig.tools.dispose.DisposableIterator;
+import org.gvsig.tools.dispose.DisposeUtils;
+import org.gvsig.utils.DefaultCharSet;
+import org.gvsig.utils.StringUtilities;
+import org.gvsig.utils.exceptionHandling.ExceptionHandlingSupport;
+import org.gvsig.utils.exceptionHandling.ExceptionListener;
+
+/**
+ * This class substitutes the old "FilterDialog" class made by
+ * "Fernando Gonz�lez Cort�s"
+ * The functionality is the same, but now the class is made from separately (and
+ * reusable) components
+ * 
+ * @author Pablo Piqueras Bartolom� (p_queras@hotmail.com)
+ */
+public class FilterDialog extends TableFilterQueryJPanel implements IWindow,
+    IWindowListener {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -149317534873551735L;
+    private static final Logger logger =
+        LoggerFactory.getLogger(FilterDialog.class);
+    private FeatureStore model = null;
+    private ArrayList expressionListeners = new ArrayList();
+    private ExceptionHandlingSupport exceptionHandlingSupport =
+        new ExceptionHandlingSupport();
+    private NumberFormat nf = NumberFormat.getNumberInstance();
+
+    private String title;
+
+    private final int filterDialog_Width = 500;
+    private final int filterDialog_Height = 362;
+    private final int widthIncrementForAndami = 20; // This is necessary because
+                                                    // when the panel is sent to
+                                                    // Andami, that needs a bit
+                                                    // more width-space to show
+                                                    // that panel.
+
+    /**
+     * This is the default constructor
+     */
+    public FilterDialog(String _title) {
+        super();
+        title = _title;
+        defaultTreeModel = (DefaultTreeModel) fieldsJTree.getModel();
+    }
+
+    /**
+     * This is the default constructor
+     */
+    public FilterDialog() {
+        super();
+        defaultTreeModel = (DefaultTreeModel) fieldsJTree.getModel();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.gvsig.gui.beans.filterPanel.AbstractFilterQueryJPanel#initialize()
+     */
+    @Override
+    protected void initialize() {
+        super.initialize();
+
+        super.resizeHeight(filterDialog_Height);
+        super.resizeWidth(filterDialog_Width - widthIncrementForAndami);
+
+        this.addNewListeners();
+    }
+
+    /**
+     * Adds some listeners
+     */
+    private void addNewListeners() {
+        // Listener for "btnAdd"
+        // Adds more elements to the current set
+        getBtnAddToCurrentSet().addActionListener(
+            new java.awt.event.ActionListener() {
+
+                /*
+                 * (non-Javadoc)
+                 * 
+                 * @see
+                 * java.awt.event.ActionListener#actionPerformed(java.awt.event
+                 * .ActionEvent)
+                 */
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    // final String expr = "select * from '" +
+                    // model.getName() + "' where " +
+                    // getTxtExpression().getText() + ";";
+                    final String expr = getTxtExpression().getText();
+                    logger.debug(expr);
+
+                    PluginServices.backgroundExecution(new Runnable() {
+
+                        public void run() {
+                            for (int i = 0; i < expressionListeners.size(); i++) {
+                                ExpressionListener l =
+                                    (ExpressionListener) expressionListeners
+                                        .get(i);
+                                try {
+                                    l.addToSet(expr);
+                                } catch (DataException e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                        }
+                    });
+                }
+            });
+
+        // Listener for "btnNuevo"
+        // Adds a new set
+        getBtnNewSet().addActionListener(new java.awt.event.ActionListener() {
+
+            public void actionPerformed(java.awt.event.ActionEvent e) {
+                // final String expr = "select * from '" +
+                // model.getName() + "' where " +
+                // getTxtExpression().getText() + ";";
+                final String expr = getTxtExpression().getText();
+
+                logger.debug(expr);
+
+                PluginServices.backgroundExecution(new Runnable() {
+
+                    public void run() {
+                        for (int i = 0; i < expressionListeners.size(); i++) {
+                            ExpressionListener l =
+                                (ExpressionListener) expressionListeners.get(i);
+                            try {
+                                l.newSet(expr);
+                            } catch (DataException e) {
+                                // TODO Auto-generated catch block
+                                NotificationManager.addError(e);
+                            }
+                        }
+                    }
+                });
+            }
+        });
+
+        // Listener for "btnFromSet"
+        // Selects elements from the current filtered selection
+        getBtnFromSet().addActionListener(new java.awt.event.ActionListener() {
+
+            public void actionPerformed(java.awt.event.ActionEvent e) {
+                // final String expr = "select * from '" +
+                // model.getName() + "' where " +
+                // getTxtExpression().getText() + ";";
+                final String expr = getTxtExpression().getText();
+                logger.debug(expr);
+
+                PluginServices.backgroundExecution(new Runnable() {
+
+                    public void run() {
+                        for (int i = 0; i < expressionListeners.size(); i++) {
+                            ExpressionListener l =
+                                (ExpressionListener) expressionListeners.get(i);
+                            try {
+                                l.fromSet(expr);
+                            } catch (DataException e) {
+                                NotificationManager.addError(e);
+                            }
+                        }
+                    }
+                });
+            }
+        });
+
+        // Listener for "fieldsJTree"
+        getFieldsJTree().addMouseListener(new MouseAdapter() {
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see
+             * java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent
+             * )
+             */
+            @Override
+            public void mouseClicked(MouseEvent e) {
+                int row = fieldsJTree.getRowForLocation(e.getX(), e.getY());
+
+                if (row > -1) {
+                    switch (e.getClickCount()) {
+                    case 1:
+                        fillValues(row);
+                        break;
+                    case 2:
+                        putSymbol(jtreeRoot.getChildAt(row).toString());
+                        break;
+                    }
+                }
+            }
+        });
+
+        // Listener for "valuesJList"
+        getValuesJList().addMouseListener(new MouseAdapter() {
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see
+             * java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent
+             * )
+             */
+            @Override
+            public void mouseClicked(MouseEvent e) {
+                if (e.getClickCount() == 2) {
+                    Object valor =
+                        valuesListModel.getElementAt(getValuesJList()
+                            .getSelectedIndex());
+
+                    if (valor instanceof Date) {
+                        putSymbol("date('" + valor + "')");
+                    } else
+                        if (valor instanceof Boolean) {
+                            putSymbol("boolean('" + valor.toString() + "')");
+                        } else
+                            if (valor instanceof String) {
+                                putSymbol("'" + valor + "'");
+                            } else {
+                                putSymbol(valor.toString());
+                            }
+                }
+            }
+        });
+    }
+
+    /**
+     * Rellena la lista con los valores del campo seleccionado
+     */
+    private void fillValues(int row) {
+        // int index = lstCampos.getSelectedIndex();
+
+        // Index es ahora el �ndice del campo seleccionado
+        // Se eliminan los duplicados
+        Collection conjunto = new TreeSet(new Comparator() {
+
+            public int compare(Object o1, Object o2) {
+                return ((Comparable) o1).compareTo(o2);
+            }
+        }); // Para poder ordenar
+
+        valuesListModel.clear();
+        FeatureSet fs = null;
+        DisposableIterator iterator = null;
+        try {
+            String[] fieldName =
+                new String[] { ((FeatureAttributeDescriptor) model
+                    .getDefaultFeatureType().get(row)).getName() };
+
+            FeatureQuery query = model.createFeatureQuery();
+            query.setAttributeNames(fieldName);
+            fs = model.getFeatureSet(query);
+            iterator = fs.iterator();
+            while (iterator.hasNext()) {
+                Feature feature = (Feature) iterator.next();
+                Object value = feature.get(fieldName[0]);
+                if (value == null) {
+                    continue;
+                }
+
+                conjunto.add(value);
+            }
+
+            Iterator it = conjunto.iterator();
+
+            while (it.hasNext()) {
+                valuesListModel.addElement(it.next());
+            }
+        } catch (DataException e) {
+            throwException(e);
+        } finally {
+            DisposeUtils.dispose(iterator);
+            DisposeUtils.dispose(fs);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param t
+     *            DOCUMENT ME!
+     */
+    public void setModel(FeatureStore t) {
+        // try {
+        model = t;
+        // model.start();
+        // } catch (ReadException e1) {
+        // NotificationManager.addError(e1.getMessage(), e1);
+        // }
+
+        jtreeRoot.removeAllChildren();
+
+        try {
+            Iterator attributes = model.getDefaultFeatureType().iterator();
+            while (attributes.hasNext()) {
+                FeatureAttributeDescriptor descriptor =
+                    (FeatureAttributeDescriptor) attributes.next();
+                Object field = descriptor.getName();
+
+                if (field != null) {
+                    jtreeRoot.add(new DefaultMutableTreeNode(field.toString()));
+                }
+            }
+            // for (int i = 0; i < model.getFieldCount(); i++) {
+            // Object field = model.getFieldName(i);
+            //
+            // if (field != null) {
+            // jtreeRoot.add(new DefaultMutableTreeNode(field.toString()));
+            // }
+            // }
+
+            defaultTreeModel.setRoot(jtreeRoot);
+        } catch (DataException e) {
+            throwException(e);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     * 
+     * @throws ParseException
+     *             DOCUMENT ME!
+     */
+    private String validateExpression() throws ParseException {
+        String expression = txtExpression.getText();
+        // HashSet variablesIndexes = new HashSet();
+        //
+        // StringBuffer traducida = new StringBuffer();
+
+        // Se transforman los nombres de los campos en las variables xix que
+        // analizar�n
+        // Se quitan los Date(fecha) y se mete la fecha correspondiente
+        expression = translateDates(expression);
+        expression = translateNumber(expression);
+        expression = translateWord(expression, "true", "1");
+        expression = translateWord(expression, "false", "0");
+
+        String replacement;
+        Pattern patron = Pattern.compile("[^<>!]=");
+        Matcher m = patron.matcher(expression);
+        int index = 0;
+
+        while (m.find(index)) {
+            index = m.start();
+            replacement = expression.charAt(index) + "==";
+            m.replaceFirst(replacement);
+            index++;
+        }
+
+        expression = expression.replaceAll("[^<>!]=", "==");
+
+        logger.debug(expression);
+
+        return expression;
+    }
+
+    /**
+     * Redefinition of the 'putSymbol' method of AbstractFilterQueryJPanel
+     * (I've made this redefinition for write the same code as the 'putSymbol'
+     * code of the original class (FilterDialog) that was in this project
+     * (appgvSIG) and didn't has path troubles to find 'StringUtilities').
+     * 
+     * Sets a symbol on the filter expression (JTextArea that stores and shows
+     * the current filter expression)
+     * 
+     * @param symbol
+     *            A symbol: character, characters, number, ...
+     */
+    @Override
+    protected void putSymbol(String symbol) {
+        int position = txtExpression.getCaretPosition();
+        txtExpression.setText(StringUtilities.insert(txtExpression.getText(),
+            position, symbol));
+
+        if (symbol.equals(" () ")) {
+            position = position + 2;
+        } else {
+            position = position + symbol.length();
+        }
+
+        txtExpression.setCaretPosition(position);
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param expresion
+     *            DOCUMENT ME!
+     * @param substring
+     *            DOCUMENT ME!
+     * @param startingPos
+     *            DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    private int getIndex(String expresion, String substring, int startingPos) {
+        int index = startingPos;
+
+        do {
+            index = expresion.indexOf(substring, index);
+        } while ((StringUtilities.isBetweenSymbols(expresion, index, "\""))
+            && (index != -1));
+
+        return index;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param expresion
+     *            DOCUMENT ME!
+     * @param word
+     *            DOCUMENT ME!
+     * @param translation
+     *            DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     * 
+     * @throws ParseException
+     *             DOCUMENT ME!
+     */
+    private String translateWord(String expresion, String word,
+        String translation) throws ParseException {
+        int booleanIndex = 0;
+        int endIndex = 0;
+        StringBuffer res = new StringBuffer();
+
+        while ((booleanIndex = getIndex(expresion, word, booleanIndex)) != -1) {
+            res.append(expresion.substring(endIndex, booleanIndex));
+            endIndex = booleanIndex + word.length();
+            booleanIndex++;
+            res.append(translation);
+        }
+
+        if (endIndex < expresion.length()) {
+            res.append(expresion.substring(endIndex));
+        }
+
+        return res.toString();
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param expresion
+     *            DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     * 
+     * @throws ParseException
+     *             DOCUMENT ME!
+     */
+    private String translateDates(String expresion) throws ParseException {
+        // Se obtiene el valor de la fecha
+        String date =
+            StringUtilities.substringDelimited(expresion, "Date(", ")", 0);
+
+        if (date == null) {
+            return expresion;
+        }
+
+        // Se comprueba que no est� entre comillas
+        int startIndex = expresion.indexOf(date);
+
+        while (startIndex != -1) {
+            if (!StringUtilities.isBetweenSymbols(expresion, startIndex, "\"")) {
+                // Se sustituye por el valor ordinal de la fecha
+                expresion =
+                    expresion.substring(0, startIndex - 5)
+                        + expresion.substring(startIndex).replaceFirst(
+                            date + "\\)",
+                            new Long((filterButtonsJPanel.getDateFormat()
+                                .parse(date)).getTime()).toString());
+                ;
+            } else {
+                startIndex += date.length();
+            }
+
+            // Se obtiene el valor de la fecha
+
+            /*
+             * date = StringUtilities.substringDelimited(expresion, "Date(",
+             * ")",
+             * startIndex);
+             */
+            if (date == null) {
+                return expresion;
+            }
+
+            startIndex = expresion.indexOf(date, startIndex);
+        }
+
+        return expresion;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param expresion
+     *            DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     * 
+     * @throws ParseException
+     *             DOCUMENT ME!
+     */
+    public String translateNumber(String expresion) throws ParseException {
+        DefaultCharSet ss = new DefaultCharSet();
+        ss.addInterval('0', '9');
+        ss.addCharacter(',');
+        ss.addCharacter('.');
+
+        String number = StringUtilities.substringWithSymbols(expresion, ss, 0);
+
+        if (number == null) {
+            return expresion;
+        }
+
+        int startIndex = expresion.indexOf(number);
+
+        while (startIndex != -1) {
+            Number n = nf.parse(number);
+
+            if (!StringUtilities.isBetweenSymbols(expresion, startIndex, "\"")) {
+                // Se sustituye por el valor ordinal de la fecha
+                expresion =
+                    expresion.substring(0, startIndex)
+                        + expresion.substring(startIndex).replaceFirst(number,
+                            n.toString());
+            } else {
+                startIndex += n.toString().length();
+            }
+
+            number =
+                StringUtilities.substringWithSymbols(expresion, ss, startIndex);
+
+            if (number == null) {
+                return expresion;
+            }
+
+            startIndex = expresion.indexOf(number, startIndex);
+        }
+
+        return expresion;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param arg0
+     * 
+     * @return
+     */
+    public boolean addExpressionListener(ExpressionListener arg0) {
+        return expressionListeners.add(arg0);
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param arg0
+     * 
+     * @return
+     */
+    public boolean removeExpressionListener(ExpressionListener arg0) {
+        return expressionListeners.remove(arg0);
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+     */
+    public WindowInfo getWindowInfo() {
+        WindowInfo vi = new WindowInfo(WindowInfo.ICONIFIABLE);
+
+        // if (System.getProperty("os.name")co.compareTo(arg0))
+        vi.setHeight(this.filterDialog_Height);
+        vi.setWidth(this.filterDialog_Width);
+
+        // Old instructions
+        // vi.setWidth(480);
+        // vi.setHeight(362);
+        vi
+            .setTitle(PluginServices.getText(this, "filtro") + " (" + title
+                + ")");
+        return vi;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param o
+     *            DOCUMENT ME!
+     */
+    public void addExceptionListener(ExceptionListener o) {
+        exceptionHandlingSupport.addExceptionListener(o);
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param o
+     *            DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    public boolean removeExceptionListener(ExceptionListener o) {
+        return exceptionHandlingSupport.removeExceptionListener(o);
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param t
+     *            DOCUMENT ME!
+     */
+    private void throwException(Throwable t) {
+        exceptionHandlingSupport.throwException(t);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.andami.ui.mdiManager.ViewListener#viewActivated()
+     */
+    public void windowActivated() {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.andami.ui.mdiManager.ViewListener#viewClosed()
+     */
+    public void windowClosed() {
+        // try {
+        // model.stop();
+        // } catch (ReadDriverException e) {
+        // NotificationManager.addError(e.getMessage(), e);
+        // }
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.TOOL_PROFILE;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/FilterDialog.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionDataSource.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionDataSource.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionDataSource.java	(revision 38262)
@@ -0,0 +1,103 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.filter;
+
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+public interface ExpressionDataSource {
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param row DOCUMENT ME!
+	 * @param idField DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 *
+	 * @throws FilterException DOCUMENT ME!
+	 */
+	public Object getFieldValue(int row, int idField) throws FilterException;
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 *
+	 * @throws FilterException DOCUMENT ME!
+	 */
+	public int getFieldCount() throws FilterException;
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param idField DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 *
+	 * @throws FilterException DOCUMENT ME!
+	 */
+	public String getFieldName(int idField) throws FilterException;
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 *
+	 * @throws FilterException DOCUMENT ME!
+	 */
+	public int getRowCount() throws FilterException;
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 */
+	public String getDataSourceName();
+
+//    public void start() throws ReadDriverException;
+//    public void stop() throws ReadDriverException;
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/filter/ExpressionDataSource.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/TableSorter.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/TableSorter.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/TableSorter.java	(revision 38262)
@@ -0,0 +1,538 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.Icon;
+import javax.swing.JLabel;
+import javax.swing.JTable;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.JTableHeader;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumnModel;
+import javax.swing.table.TableModel;
+
+/**
+ * TableSorter is a decorator for TableModels; adding sorting
+ * functionality to a supplied TableModel. TableSorter does
+ * not store or copy the data in its TableModel; instead it maintains
+ * a map from the row indexes of the view to the row indexes of the
+ * model. As requests are made of the sorter (like getValueAt(row, col))
+ * they are passed to the underlying model after the row numbers
+ * have been translated via the internal mapping array. This way,
+ * the TableSorter appears to hold another copy of the table
+ * with the rows in a different order.
+ * <p/>
+ * TableSorter registers itself as a listener to the underlying model,
+ * just as the JTable itself would. Events recieved from the model
+ * are examined, sometimes manipulated (typically widened), and then
+ * passed on to the TableSorter's listeners (typically the JTable).
+ * If a change to the model has invalidated the order of TableSorter's
+ * rows, a note of this is made and the sorter will resort the
+ * rows the next time a value is requested.
+ * <p/>
+ * When the tableHeader property is set, either by using the
+ * setTableHeader() method or the two argument constructor, the
+ * table header may be used as a complete UI for TableSorter.
+ * The default renderer of the tableHeader is decorated with a renderer
+ * that indicates the sorting status of each column. In addition,
+ * a mouse listener is installed with the following behavior:
+ * <ul>
+ * <li>
+ * Mouse-click: Clears the sorting status of all other columns
+ * and advances the sorting status of that column through three
+ * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to
+ * NOT_SORTED again).
+ * <li>
+ * SHIFT-mouse-click: Clears the sorting status of all other columns
+ * and cycles the sorting status of the column through the same
+ * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
+ * <li>
+ * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except
+ * that the changes to the column do not cancel the statuses of columns
+ * that are already sorting - giving a way to initiate a compound
+ * sort.
+ * </ul>
+ * <p/>
+ * This is a long overdue rewrite of a class of the same name that
+ * first appeared in the swing table demos in 1997.
+ * 
+ * @author Philip Milne
+ * @author Brendon McLean 
+ * @author Dan van Enckevort
+ * @author Parwinder Sekhon
+ * @version 2.0 02/27/04
+ */
+
+public class TableSorter extends AbstractTableModel {
+    protected TableModel tableModel;
+
+    public static final int DESCENDING = -1;
+    public static final int NOT_SORTED = 0;
+    public static final int ASCENDING = 1;
+
+    private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
+
+    public static final Comparator COMPARABLE_COMAPRATOR = new Comparator() {
+        public int compare(Object o1, Object o2) {
+            return ((Comparable) o1).compareTo(o2);
+        }
+    };
+    public static final Comparator LEXICAL_COMPARATOR = new Comparator() {
+        public int compare(Object o1, Object o2) {
+            return o1.toString().compareTo(o2.toString());
+        }
+    };
+
+    private Row[] viewToModel;
+    private int[] modelToView;
+
+    private JTableHeader tableHeader;
+    private MouseListener mouseListener;
+    private TableModelListener tableModelListener;
+    private Map columnComparators = new HashMap();
+    private List sortingColumns = new ArrayList();
+
+    public TableSorter() {
+        this.mouseListener = new MouseHandler();
+        this.tableModelListener = new TableModelHandler();
+    }
+
+    public TableSorter(TableModel tableModel) {
+        this();
+        setTableModel(tableModel);
+    }
+
+    public TableSorter(TableModel tableModel, JTableHeader tableHeader) {
+        this();
+        setTableHeader(tableHeader);
+        setTableModel(tableModel);
+    }
+
+    private void clearSortingState() {
+        viewToModel = null;
+        modelToView = null;
+    }
+
+    public TableModel getTableModel() {
+        return tableModel;
+    }
+
+    public void setTableModel(TableModel tableModel) {
+        if (this.tableModel != null) {
+            this.tableModel.removeTableModelListener(tableModelListener);
+        }
+
+        this.tableModel = tableModel;
+        if (this.tableModel != null) {
+            this.tableModel.addTableModelListener(tableModelListener);
+        }
+
+        clearSortingState();
+        fireTableStructureChanged();
+    }
+
+    public JTableHeader getTableHeader() {
+        return tableHeader;
+    }
+
+    public void setTableHeader(JTableHeader tableHeader) {
+        if (this.tableHeader != null) {
+            this.tableHeader.removeMouseListener(mouseListener);
+            TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
+            if (defaultRenderer instanceof SortableHeaderRenderer) {
+                this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
+            }
+        }
+        this.tableHeader = tableHeader;
+        if (this.tableHeader != null) {
+            this.tableHeader.addMouseListener(mouseListener);
+            this.tableHeader.setDefaultRenderer(
+                    new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer()));
+        }
+    }
+
+    public boolean isSorting() {
+        return sortingColumns.size() != 0;
+    }
+
+    private Directive getDirective(int column) {
+        for (int i = 0; i < sortingColumns.size(); i++) {
+            Directive directive = (Directive)sortingColumns.get(i);
+            if (directive.column == column) {
+                return directive;
+            }
+        }
+        return EMPTY_DIRECTIVE;
+    }
+
+    public int getSortingStatus(int column) {
+        return getDirective(column).direction;
+    }
+
+    private void sortingStatusChanged() {
+        clearSortingState();
+        fireTableDataChanged();
+        if (tableHeader != null) {
+            tableHeader.repaint();
+        }
+    }
+
+    public void setSortingStatus(int column, int status) {
+        Directive directive = getDirective(column);
+        if (directive != EMPTY_DIRECTIVE) {
+            sortingColumns.remove(directive);
+        }
+        if (status != NOT_SORTED) {
+            sortingColumns.add(new Directive(column, status));
+        }
+        sortingStatusChanged();
+    }
+
+    protected Icon getHeaderRendererIcon(int column, int size) {
+        Directive directive = getDirective(column);
+        if (directive == EMPTY_DIRECTIVE) {
+            return null;
+        }
+        return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
+    }
+
+    private void cancelSorting() {
+        sortingColumns.clear();
+        sortingStatusChanged();
+    }
+
+    public void setColumnComparator(Class type, Comparator comparator) {
+        if (comparator == null) {
+            columnComparators.remove(type);
+        } else {
+            columnComparators.put(type, comparator);
+        }
+    }
+
+    protected Comparator getComparator(int column) {
+        Class columnType = tableModel.getColumnClass(column);
+        Comparator comparator = (Comparator) columnComparators.get(columnType);
+        if (comparator != null) {
+            return comparator;
+        }
+        if (Comparable.class.isAssignableFrom(columnType)) {
+            return COMPARABLE_COMAPRATOR;
+        }
+        return LEXICAL_COMPARATOR;
+    }
+
+    private Row[] getViewToModel() {
+        if (viewToModel == null) {
+            int tableModelRowCount = tableModel.getRowCount();
+            viewToModel = new Row[tableModelRowCount];
+            for (int row = 0; row < tableModelRowCount; row++) {
+                viewToModel[row] = new Row(row);
+            }
+
+            if (isSorting()) {
+                Arrays.sort(viewToModel);
+            }
+        }
+        return viewToModel;
+    }
+
+    public int modelIndex(int viewIndex) {
+        return getViewToModel()[viewIndex].modelIndex;
+    }
+
+    private int[] getModelToView() {
+        if (modelToView == null) {
+            int n = getViewToModel().length;
+            modelToView = new int[n];
+            for (int i = 0; i < n; i++) {
+                modelToView[modelIndex(i)] = i;
+            }
+        }
+        return modelToView;
+    }
+
+    // TableModel interface methods 
+
+    public int getRowCount() {
+        return (tableModel == null) ? 0 : tableModel.getRowCount();
+    }
+
+    public int getColumnCount() {
+        return (tableModel == null) ? 0 : tableModel.getColumnCount();
+    }
+
+    public String getColumnName(int column) {
+        return tableModel.getColumnName(column);
+    }
+
+    public Class getColumnClass(int column) {
+        return tableModel.getColumnClass(column);
+    }
+
+    public boolean isCellEditable(int row, int column) {
+        return tableModel.isCellEditable(modelIndex(row), column);
+    }
+
+    public Object getValueAt(int row, int column) {
+        return tableModel.getValueAt(modelIndex(row), column);
+    }
+
+    public void setValueAt(Object aValue, int row, int column) {
+        tableModel.setValueAt(aValue, modelIndex(row), column);
+    }
+
+    // Helper classes
+    
+    private class Row implements Comparable {
+        private int modelIndex;
+
+        public Row(int index) {
+            this.modelIndex = index;
+        }
+
+        public int compareTo(Object o) {
+            int row1 = modelIndex;
+            int row2 = ((Row) o).modelIndex;
+
+            for (Iterator it = sortingColumns.iterator(); it.hasNext();) {
+                Directive directive = (Directive) it.next();
+                int column = directive.column;
+                Object o1 = tableModel.getValueAt(row1, column);
+                Object o2 = tableModel.getValueAt(row2, column);
+
+                int comparison = 0;
+                // Define null less than everything, except null.
+                if (o1 == null && o2 == null) {
+                    comparison = 0;
+                } else if (o1 == null) {
+                    comparison = -1;
+                } else if (o2 == null) {
+                    comparison = 1;
+                } else {
+                    comparison = getComparator(column).compare(o1, o2);
+                }
+                if (comparison != 0) {
+                    return directive.direction == DESCENDING ? -comparison : comparison;
+                }
+            }
+            return 0;
+        }
+    }
+
+    private class TableModelHandler implements TableModelListener {
+        public void tableChanged(TableModelEvent e) {
+            // If we're not sorting by anything, just pass the event along.             
+            if (!isSorting()) {
+                clearSortingState();
+                fireTableChanged(e);
+                return;
+            }
+                
+            // If the table structure has changed, cancel the sorting; the             
+            // sorting columns may have been either moved or deleted from             
+            // the model. 
+            if (e.getFirstRow() == TableModelEvent.HEADER_ROW) {
+                cancelSorting();
+                fireTableChanged(e);
+                return;
+            }
+
+            // We can map a cell event through to the view without widening             
+            // when the following conditions apply: 
+            // 
+            // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and, 
+            // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
+            // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and, 
+            // d) a reverse lookup will not trigger a sort (modelToView != null)
+            //
+            // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
+            // 
+            // The last check, for (modelToView != null) is to see if modelToView 
+            // is already allocated. If we don't do this check; sorting can become 
+            // a performance bottleneck for applications where cells  
+            // change rapidly in different parts of the table. If cells 
+            // change alternately in the sorting column and then outside of             
+            // it this class can end up re-sorting on alternate cell updates - 
+            // which can be a performance problem for large tables. The last 
+            // clause avoids this problem. 
+            int column = e.getColumn();
+            if (e.getFirstRow() == e.getLastRow()
+                    && column != TableModelEvent.ALL_COLUMNS
+                    && getSortingStatus(column) == NOT_SORTED
+                    && modelToView != null) {
+                int viewIndex = getModelToView()[e.getFirstRow()];
+                fireTableChanged(new TableModelEvent(TableSorter.this, 
+                                                     viewIndex, viewIndex, 
+                                                     column, e.getType()));
+                return;
+            }
+
+            // Something has happened to the data that may have invalidated the row order. 
+            clearSortingState();
+            fireTableDataChanged();
+            return;
+        }
+    }
+
+    private class MouseHandler extends MouseAdapter {
+        public void mouseClicked(MouseEvent e) {
+            JTableHeader h = (JTableHeader) e.getSource();
+            TableColumnModel columnModel = h.getColumnModel();
+            int viewColumn = columnModel.getColumnIndexAtX(e.getX());
+            int column = columnModel.getColumn(viewColumn).getModelIndex();
+            if (column != -1) {
+                int status = getSortingStatus(column);
+                if (!e.isControlDown()) {
+                    cancelSorting();
+                }
+                // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or 
+                // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed. 
+                status = status + (e.isShiftDown() ? -1 : 1);
+                status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
+                setSortingStatus(column, status);
+            }
+        }
+    }
+
+    private static class Arrow implements Icon {
+        private boolean descending;
+        private int size;
+        private int priority;
+
+        public Arrow(boolean descending, int size, int priority) {
+            this.descending = descending;
+            this.size = size;
+            this.priority = priority;
+        }
+
+        public void paintIcon(Component c, Graphics g, int x, int y) {
+            Color color = c == null ? Color.GRAY : c.getBackground();             
+            // In a compound sort, make each succesive triangle 20% 
+            // smaller than the previous one. 
+            int dx = (int)(size/2*Math.pow(0.8, priority));
+            int dy = descending ? dx : -dx;
+            // Align icon (roughly) with font baseline. 
+            y = y + 5*size/6 + (descending ? -dy : 0);
+            int shift = descending ? 1 : -1;
+            g.translate(x, y);
+
+            // Right diagonal. 
+            g.setColor(color.darker());
+            g.drawLine(dx / 2, dy, 0, 0);
+            g.drawLine(dx / 2, dy + shift, 0, shift);
+            
+            // Left diagonal. 
+            g.setColor(color.brighter());
+            g.drawLine(dx / 2, dy, dx, 0);
+            g.drawLine(dx / 2, dy + shift, dx, shift);
+            
+            // Horizontal line. 
+            if (descending) {
+                g.setColor(color.darker().darker());
+            } else {
+                g.setColor(color.brighter().brighter());
+            }
+            g.drawLine(dx, 0, 0, 0);
+
+            g.setColor(color);
+            g.translate(-x, -y);
+        }
+
+        public int getIconWidth() {
+            return size;
+        }
+
+        public int getIconHeight() {
+            return size;
+        }
+    }
+
+    private class SortableHeaderRenderer implements TableCellRenderer {
+        private TableCellRenderer tableCellRenderer;
+
+        public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {
+            this.tableCellRenderer = tableCellRenderer;
+        }
+
+        public Component getTableCellRendererComponent(JTable table, 
+                                                       Object value,
+                                                       boolean isSelected, 
+                                                       boolean hasFocus,
+                                                       int row, 
+                                                       int column) {
+            Component c = tableCellRenderer.getTableCellRendererComponent(table, 
+                    value, isSelected, hasFocus, row, column);
+            if (c instanceof JLabel) {
+                JLabel l = (JLabel) c;
+                l.setHorizontalTextPosition(JLabel.LEFT);
+                int modelColumn = table.convertColumnIndexToModel(column);
+                l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
+            }
+            return c;
+        }
+    }
+
+    private static class Directive {
+        private int column;
+        private int direction;
+
+        public Directive(int column, int direction) {
+            this.column = column;
+            this.direction = direction;
+        }
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/TableSorter.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/WizardPanelWithLogo.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/WizardPanelWithLogo.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/WizardPanelWithLogo.java	(revision 38262)
@@ -0,0 +1,84 @@
+package org.gvsig.app.gui.simpleWizard;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+
+import jwizardcomponent.CancelAction;
+import jwizardcomponent.DefaultJWizardComponents;
+import jwizardcomponent.FinishAction;
+import jwizardcomponent.common.SimpleButtonPanel;
+
+public class WizardPanelWithLogo extends JPanel {
+	  DefaultJWizardComponents wizardComponents;
+
+	  JPanel buttonPanel;
+	  JLabel statusLabel = new JLabel();
+
+	  ImageIcon logo;
+
+	  public WizardPanelWithLogo(ImageIcon logo) {
+	    this.logo = logo;
+	    wizardComponents = new DefaultJWizardComponents();
+	    init();
+	  }
+
+	  private void init() {
+	    
+
+	    JPanel logoPanel = new JPanel();
+
+	    String fileString;
+	    if (logo.toString().indexOf("file:") < 0 &&
+	        logo.toString().indexOf("http:") < 0) {
+	      fileString = "file:///" +System.getProperty("user.dir") +"/"
+	                        +logo.toString();
+	      fileString = fileString.replaceAll("\\\\", "/");
+	    } else {
+	      fileString = logo.toString();
+	    }
+	    logoPanel.add(new JLabel(logo));
+	    logoPanel.setBackground(Color.WHITE);
+	    this.setLayout(new BorderLayout());
+	    this.add(logoPanel, BorderLayout.WEST);
+	    this.add(wizardComponents.getWizardPanelsContainer(),
+	    							BorderLayout.CENTER);
+
+	    JPanel auxPanel = new JPanel(new BorderLayout());
+	    auxPanel.add(new JSeparator(), BorderLayout.NORTH);
+
+	    buttonPanel = new SimpleButtonPanel(wizardComponents);
+	    auxPanel.add(buttonPanel);
+	    this.add(auxPanel, BorderLayout.SOUTH);
+	    
+
+	    wizardComponents.setFinishAction(new FinishAction(wizardComponents) {
+	      public void performAction() {
+	        // dispose();
+	      }
+	    });
+	    wizardComponents.setCancelAction(new CancelAction(wizardComponents) {
+	      public void performAction() {
+	        // dispose();
+	      }
+	    });
+	  }
+
+	  public DefaultJWizardComponents getWizardComponents(){
+	    return wizardComponents;
+	  }
+
+	  public void setWizardComponents(DefaultJWizardComponents aWizardComponents){
+	    wizardComponents = aWizardComponents;
+	  }
+
+	  public void show() {
+	    wizardComponents.updateComponents();
+	    super.setVisible(true);
+	  }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/WizardPanelWithLogo.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/SimpleWizard.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/SimpleWizard.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/SimpleWizard.java	(revision 38262)
@@ -0,0 +1,80 @@
+package org.gvsig.app.gui.simpleWizard;
+
+import java.awt.BorderLayout;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+
+import jwizardcomponent.CancelAction;
+import jwizardcomponent.DefaultJWizardComponents;
+import jwizardcomponent.FinishAction;
+
+
+public class SimpleWizard extends JPanel implements IWindow {
+	WindowInfo viewInfo = null;
+	WizardPanelWithLogo wizardPanel;
+
+	// No deber�an necesitarse un FinishAction y un CancelAction, pero bueno,
+	// lo mantengo por ahora.
+	private class CloseAction extends FinishAction
+	{
+		IWindow v;
+		public CloseAction(IWindow view)
+		{
+			super(wizardPanel.getWizardComponents());
+			v = view;
+		}
+		public void performAction() {
+			PluginServices.getMDIManager().closeWindow(v);
+		}
+
+	}
+	private class CloseAction2 extends CancelAction
+	{
+
+		IWindow v;
+		public CloseAction2(IWindow view)
+		{
+			super(wizardPanel.getWizardComponents());
+			v = view;
+		}
+		public void performAction() {
+			PluginServices.getMDIManager().closeWindow(v);
+		}
+
+	}
+
+
+	public SimpleWizard(ImageIcon logo)
+	{
+		wizardPanel = new WizardPanelWithLogo(logo);
+		CloseAction closeAction = new CloseAction(this);
+		CloseAction2 closeAction2 = new CloseAction2(this);
+		wizardPanel.getWizardComponents().setFinishAction(closeAction);
+		wizardPanel.getWizardComponents().setCancelAction(closeAction2);
+
+		this.setLayout(new BorderLayout());
+		this.add(wizardPanel, BorderLayout.CENTER);
+	}
+
+	public DefaultJWizardComponents getWizardComponents()
+	{
+		return wizardPanel.getWizardComponents();
+	}
+
+
+	public WindowInfo getWindowInfo() {
+		if (viewInfo == null)
+		{
+			viewInfo = new WindowInfo(WindowInfo.MODALDIALOG|WindowInfo.RESIZABLE);
+		}
+		return viewInfo;
+	}
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/simpleWizard/SimpleWizard.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandStackDialog.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandStackDialog.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandStackDialog.java	(revision 38262)
@@ -0,0 +1,378 @@
+package org.gvsig.app.gui.command;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollBar;
+import javax.swing.JScrollPane;
+import javax.swing.JSlider;
+import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableColumn;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindowListener;
+import org.gvsig.andami.ui.mdiManager.SingletonWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.fmap.dal.feature.FeatureStoreNotification;
+import org.gvsig.gui.beans.DefaultBean;
+import org.gvsig.tools.observer.Observable;
+import org.gvsig.tools.observer.Observer;
+import org.gvsig.tools.undo.UndoRedoInfo;
+import org.gvsig.tools.undo.UndoRedoStack;
+
+
+@SuppressWarnings("serial")
+public class CommandStackDialog extends DefaultBean implements SingletonWindow, IWindowListener, Observer{
+
+	private JTable commandTable = null;
+	private JPanel topPanel = null;
+	private UndoRedoStack undoRedoStack;
+	private JSlider commandSlider = null;
+	
+	private int lowLimit;
+	private int currentValue = -1;
+	private int currentSliderValue = -1;
+	private JPanel sliderPanel = null;
+	protected boolean refreshing;
+	private JPanel centerPanel = null;
+	private JScrollPane jScrollPane = null;
+	private JPanel tablePanel = null;
+	
+	private static final ImageIcon imodify = PluginServices.getIconTheme()
+		.get("edition-modify-command");
+	private static final ImageIcon iadd = PluginServices.getIconTheme()
+		.get("edition-add-command");
+	private static final ImageIcon idel = PluginServices.getIconTheme()
+		.get("edition-del-command");
+
+	private CommandTableModel commandTableModel = null;
+	/**
+	 * This is the default constructor
+	 */
+	public CommandStackDialog() {
+		super();
+		initialize();
+	}
+	
+	public void setModel(UndoRedoStack cr1) {
+        if (this.undoRedoStack != null) {
+            if (this.undoRedoStack.equals(cr1)) {
+                return;
+            } else {
+                this.undoRedoStack.deleteObserver(this);
+            }
+		}
+		this.undoRedoStack = cr1;
+		this.undoRedoStack.addObserver(this);
+		initTable();
+		initSlider();
+		currentValue = commandTableModel.getPos();
+    	refreshControls();
+		refreshSliderSize();
+	}
+	
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private void initialize() {
+		this.setLayout(new BorderLayout());
+		this.setSize(328, 229);		
+		this.add(getJScrollPane(), java.awt.BorderLayout.CENTER);
+	}
+
+	/**
+	 * This method initializes jList
+	 *
+	 * @return javax.swing.JList
+	 */
+	private JTable getTable() {
+		if (commandTable == null) {
+			commandTable = new JTable();
+		}
+		return commandTable;
+	}
+	
+	private void initTable(){
+		commandTableModel = new CommandTableModel(undoRedoStack);
+		commandTable.setModel(commandTableModel);
+		commandTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		commandTable.setSelectionBackground(Color.orange);
+		commandTable.setSelectionForeground(Color.black);
+		commandTable.setShowGrid(false);
+		commandTable.getTableHeader().setBackground(Color.white);
+		TableColumn tc = commandTable.getColumnModel().getColumn(0);
+		tc.setCellRenderer(new DefaultTableCellRenderer() {
+			   public Component getTableCellRendererComponent(JTable table,
+			                                               Object value,
+			                                               boolean isSelected,
+			                                               boolean hasFocus,
+			                                               int row,
+			                                               int column)
+			      {
+			         JLabel label = (JLabel)
+			            super.getTableCellRendererComponent
+			               (table, value, isSelected, hasFocus, row, column);
+			            UndoRedoInfo info = (UndoRedoInfo) value;
+			            switch (info.getType()) {
+                            case UndoRedoInfo.INSERT:
+                                label.setIcon(iadd);
+                                break;
+                            case UndoRedoInfo.DELETE:
+                                label.setIcon(idel);
+                                break;
+                            default:
+                                label.setIcon(imodify);
+                        }
+			         if (commandTableModel.getPos()<row){
+			        	 label.setBackground(Color.lightGray);
+			         }else {
+			       		 label.setBackground(Color.orange);
+			         }
+			            return label;
+			      }
+			});
+
+		commandTable.addMouseListener(new java.awt.event.MouseAdapter() {
+			public void mousePressed(java.awt.event.MouseEvent e) {
+				int newpos = commandTable.getSelectedRow();	
+				if (newpos >= 0){
+    				commandTableModel.setPos(newpos);				
+    				PluginServices.getMainFrame().enableControls();
+				}
+			}
+		});
+	}
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getTopPanel() {
+		if (topPanel == null) {
+			topPanel = new JPanel();	
+		}
+		return topPanel;
+	}
+
+	public WindowInfo getWindowInfo() {
+		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.ICONIFIABLE |
+				WindowInfo.MODELESSDIALOG | WindowInfo.RESIZABLE | WindowInfo.PALETTE);
+		m_viewinfo.setTitle(PluginServices.getText(this,
+				"pila_de_comandos"));
+		return m_viewinfo;
+	}
+
+	public Object getWindowModel() {
+		return commandTableModel.getClass().getName();
+	}
+
+	public void windowActivated() {
+		this.validateTree();
+	}
+
+	public void windowClosed() {
+		
+	}
+
+	public void commandRepaint() {
+		setValue(commandTableModel.getPos(), true);
+		refreshSliderSize();
+	}
+
+    /**
+     * Refreshes all the mutable controls in this component.
+     */
+    private void refreshControls() {
+        int normalizedValue = (int) (((commandTableModel.getRowCount() - (currentValue + 1)) / (float)commandTableModel.getRowCount()) * 100);
+        //Adding the 50% od the interval
+        if (commandTableModel.getRowCount() > 0){
+            normalizedValue = normalizedValue + (100 / (commandTableModel.getRowCount() * 2));
+        }
+        refreshSlider(normalizedValue);
+        commandTable.repaint();
+    }
+    
+    /**
+     * Sets the slider to the correct (scaled) position.
+     * @param normalizedValue
+     */
+    private void refreshSlider(int normalizedValue) {
+        if (!refreshing){
+            refreshing = true;
+            getJSlider().setValue(normalizedValue);
+            refreshing = false; 
+        }
+    }    
+    
+    private void refreshSliderSize(){
+        if (!refreshing){
+            Dimension size = new Dimension(commandSlider.getPreferredSize().width,
+                ((commandTableModel.getRowCount() + 1) * getTable().getRowHeight()));
+            JScrollBar verticalScrollBar = getJScrollPane().getVerticalScrollBar();
+            verticalScrollBar.setValue(commandTableModel.getPos()*getTable().getRowHeight());
+            commandSlider.setPreferredSize(size);
+            commandSlider.setSize(size);
+            validateTree();
+        }
+    }
+    
+	
+	/**
+	 * This method initializes jSlider
+	 *
+	 * @return javax.swing.JSlider
+	 */
+	private JSlider getJSlider() {
+		if (commandSlider == null) {
+			commandSlider = new JSlider(JSlider.VERTICAL, 0, 100, 0);	
+		}
+		return commandSlider;
+	}
+	
+	private void initSlider(){		
+		commandSlider.setPreferredSize(
+		    new Dimension(commandSlider.getPreferredSize().width,
+		        ((getTable().getRowCount())*getTable().getRowHeight())));
+
+		commandSlider.addChangeListener(new javax.swing.event.ChangeListener() {
+				public synchronized void stateChanged(javax.swing.event.ChangeEvent e) {
+				    if (!refreshing){
+				        int value = getTablePosFromSlider();  
+				        //currentSliderValue controls the same event thrown by the
+				        //slider. currentValue controls the event thrown by the table
+				        if (currentSliderValue != value){
+				            refreshing = true;	
+				            currentSliderValue = value;
+				            commandTableModel.setPos(value);
+				            refreshing = false;    
+				        }
+				    }
+			    }
+    		});
+    	setValue(commandTableModel.getRowCount() - 1 - commandTableModel.getPos(),true);
+	}
+	
+	private int getTablePosFromSlider(){	  
+	    if (commandTableModel.getRowCount() == 0){
+	        return -1;
+	    }
+	    
+	    int value = getJSlider().getValue();
+	    value = (int) ((value * 0.01) * commandTableModel.getRowCount());
+
+	    //The bottom part of the slider starts in 100: take the reverse value
+	    value = (commandTableModel.getRowCount() - 1) - value;
+	    
+	    if (value == -1){
+	        return 0;
+	    }
+	    return value;
+	}
+	
+    public void setValue(int number, boolean fireEvent) {
+        int rowCount = commandTableModel.getRowCount();
+               
+        if (number < lowLimit) {
+			number = lowLimit;
+		}
+        if (number > (rowCount - 1)) {
+			number = rowCount;
+		}
+        if (number != currentValue) {
+        	currentValue = number;
+        	refreshControls();
+        	if (fireEvent) {
+				callValueChanged(new Integer(currentValue));
+			}
+        }     
+    }
+
+	/**
+	 * This method initializes jPanel1
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getSliderPanel() {
+		if (sliderPanel == null) {
+			sliderPanel = new JPanel();
+			sliderPanel.add(getJSlider());
+		}
+		return sliderPanel;
+	}
+
+	/**
+	 * This method initializes pCenter
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getCenterPanel() {
+		if (centerPanel == null) {
+			centerPanel = new JPanel();
+			centerPanel.setLayout(new BorderLayout());			
+			centerPanel.add(getTablePanel(), java.awt.BorderLayout.CENTER);
+			centerPanel.add(getSliderPanel(), java.awt.BorderLayout.WEST);
+		}
+		return centerPanel;
+	}
+	
+	private JPanel getTablePanel() {
+	    if (tablePanel == null) {
+	        tablePanel = new JPanel();
+	        tablePanel.setLayout(new BorderLayout());
+	        tablePanel.add(getTable(), java.awt.BorderLayout.CENTER);	        
+	        tablePanel.add(getTopPanel(), java.awt.BorderLayout.NORTH);
+	    }
+	    return tablePanel;
+	}
+
+	/**
+	 * This method initializes jScrollPane
+	 *
+	 * @return javax.swing.JScrollPane
+	 */
+	private JScrollPane getJScrollPane() {
+		if (jScrollPane == null) {
+			jScrollPane = new JScrollPane();
+			jScrollPane.setViewportView(getCenterPanel());
+		}
+		return jScrollPane;
+	}
+	
+	public void update(Observable observable, Object notification) {
+		if (notification instanceof FeatureStoreNotification){
+			FeatureStoreNotification featureStoreNotification =
+					(FeatureStoreNotification) notification;
+			//If the edition finish the command stack disappears
+			String type = featureStoreNotification.getType();
+			if (FeatureStoreNotification.AFTER_FINISHEDITING.equals(type) ||
+					FeatureStoreNotification.AFTER_CANCELEDITING.equals(type)){							
+				ApplicationLocator.getManager().getUIManager().closeWindow(this);				
+				featureStoreNotification.getSource().deleteObserver(this);
+				return;
+			}
+			//Only repaint if the event is a selection event or an edition event
+			if (FeatureStoreNotification.AFTER_INSERT.equals(type) ||
+                FeatureStoreNotification.AFTER_DELETE.equals(type) ||
+                FeatureStoreNotification.AFTER_UPDATE.equals(type) ||
+                FeatureStoreNotification.SELECTION_CHANGE.equals(type) ||
+                FeatureStoreNotification.AFTER_REDO.equals(type) ||
+                FeatureStoreNotification.AFTER_UNDO.equals(type)) {                   
+			    commandRepaint();
+			}			
+		}
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+}  

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandStackDialog.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/ColorRenderer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/ColorRenderer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/ColorRenderer.java	(revision 38262)
@@ -0,0 +1,49 @@
+package org.gvsig.app.gui.command;
+import java.awt.Color;
+import java.awt.Component;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JTable;
+import javax.swing.border.Border;
+import javax.swing.table.TableCellRenderer;
+
+public class ColorRenderer extends JLabel
+                           implements TableCellRenderer {
+    Border unselectedBorder = null;
+    Border selectedBorder = null;
+    boolean isBordered = true;
+
+    public ColorRenderer(boolean isBordered) {
+        this.isBordered = isBordered;
+        setOpaque(true); //MUST do this for background to show up.
+    }
+
+    public Component getTableCellRendererComponent(
+                            JTable table, Object color,
+                            boolean isSelected, boolean hasFocus,
+                            int row, int column) {
+        Color newColor = (Color)color;
+        setBackground(newColor);
+        if (isBordered) {
+            if (isSelected) {
+                if (selectedBorder == null) {
+                    selectedBorder = BorderFactory.createMatteBorder(2,5,2,5,
+                                              table.getSelectionBackground());
+                }
+                setBorder(selectedBorder);
+            } else {
+                if (unselectedBorder == null) {
+                    unselectedBorder = BorderFactory.createMatteBorder(2,5,2,5,
+                                              table.getBackground());
+                }
+                setBorder(unselectedBorder);
+            }
+        }
+
+        setToolTipText("RGB value: " + newColor.getRed() + ", "
+                                     + newColor.getGreen() + ", "
+                                     + newColor.getBlue());
+        return this;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/ColorRenderer.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandTableModel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandTableModel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandTableModel.java	(revision 38262)
@@ -0,0 +1,70 @@
+package org.gvsig.app.gui.command;
+
+import javax.swing.table.AbstractTableModel;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.tools.undo.RedoException;
+import org.gvsig.tools.undo.UndoException;
+import org.gvsig.tools.undo.UndoRedoStack;
+import org.gvsig.tools.undo.command.Command;
+
+
+@SuppressWarnings("serial")
+public class CommandTableModel extends AbstractTableModel{
+    private static final Logger LOG = 
+        LoggerFactory.getLogger(CommandTableModel.class);
+    
+    private UndoRedoStack undoRedoStack;
+        
+    public CommandTableModel(UndoRedoStack undoRedoStack) {
+        this.undoRedoStack = undoRedoStack;
+	}
+
+	public int getPos() {
+		if ((undoRedoStack == null) || undoRedoStack.getUndoInfos() == null){
+		    return 0;
+		}
+	    return undoRedoStack.getUndoInfos().size() - 1;
+	}
+	
+	public int getColumnCount() {
+		return 1;
+	}
+	
+	public int getRowCount() {
+		if ((undoRedoStack == null) || undoRedoStack.getUndoInfos() == null || undoRedoStack.getRedoInfos() == null){
+		    return 0;
+		}
+		return undoRedoStack.getRedoInfos().size() + undoRedoStack.getUndoInfos().size();
+	}
+	
+	@SuppressWarnings("unchecked")
+    public Object getValueAt(int i, int j) {
+		Command[] undos=(Command[])undoRedoStack.getUndoInfos().toArray(new Command[0]);
+		Command[] redos=(Command[])undoRedoStack.getRedoInfos().toArray(new Command[0]);
+		if (i<undos.length){
+			//System.out.println("undo i=" + i + " index=" + (undos.length-1-i));
+			return undos[undos.length-1-i];
+		}else{
+			//System.out.println("redo i=" + i + " index=" + (i-undos.length));
+			return redos[i-undos.length];
+		}
+	}
+	
+	public void setPos(int newpos) {
+		try {
+		    int currentPos = getPos();
+			if (newpos > getPos()) {
+				undoRedoStack.redo(newpos - getPos());
+			}else if (newpos < getPos()) {
+				undoRedoStack.undo(getPos() - newpos);
+			}
+		} catch (RedoException e) {
+			LOG.error("Error executing the command", e);
+		} catch (UndoException e) {
+		    LOG.error("Error executing the command", e);
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/command/CommandTableModel.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriversPages.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriversPages.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriversPages.java	(revision 38262)
@@ -0,0 +1,75 @@
+package org.gvsig.app.gui.preferencespage;
+
+import java.awt.BorderLayout;
+
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.preferences.AbstractPreferencePage;
+
+
+
+/**
+ * P�gina de preferencias de donde cuelgan todos los drivers.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class DriversPages extends AbstractPreferencePage {
+    private JLabel jLabel = null;
+    private ImageIcon icon;
+
+    /**
+     * This is the default constructor
+     */
+    public DriversPages() {
+        super();
+        icon=PluginServices.getIconTheme().get("layout-insert-view");
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        jLabel = new JLabel();
+        jLabel.setText(PluginServices.getText(this,
+                "configurar_todos_los_drivers"));
+        this.setLayout(new BorderLayout());
+        this.setSize(300, 200);
+        this.add(jLabel, java.awt.BorderLayout.CENTER);
+    }
+
+    public String getID() {
+        return this.getClass().getName();
+    }
+
+    public String getTitle() {
+        return PluginServices.getText(this, "drivers");
+    }
+
+    public JPanel getPanel() {
+        return this;
+    }
+
+    public void initializeValues() {
+    }
+
+    public void storeValues() {
+    }
+
+    public void initializeDefaults() {
+    }
+
+    public ImageIcon getIcon() {
+        return icon;
+    }
+
+    public boolean isValueChanged() {
+        return false; // Because it does not manage values
+    }
+
+    public void setChangesApplied() {
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriversPages.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/CartographicSupportPage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/CartographicSupportPage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/CartographicSupportPage.java	(revision 38262)
@@ -0,0 +1,106 @@
+package org.gvsig.app.gui.preferencespage;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.preferences.AbstractPreferencePage;
+import org.gvsig.andami.preferences.StoreException;
+import org.gvsig.app.gui.JComboBoxUnits;
+import org.gvsig.app.gui.styling.JComboBoxUnitsReferenceSystem;
+import org.gvsig.fmap.mapcontext.rendering.symbols.CartographicSupport;
+import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.impl.CartographicSupportToolkit;
+import org.gvsig.utils.XMLEntity;
+
+
+/**
+ *
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ */
+public class CartographicSupportPage extends AbstractPreferencePage {
+	private static final String DefaultMeasureUnitKey = "DefaultMeasureUnitKey";
+	private static final String DefaultUnitReferenceSystemKey = "DefaultUnitReferenceSystemKey";
+	private JComboBoxUnits cmbUnits;
+	private JComboBoxUnitsReferenceSystem cmbReferenceSystem;
+	
+	public CartographicSupportPage() {
+		super();
+		initialize();
+	}
+	
+	private void initialize() {
+		addComponent(PluginServices.getText(this, "default_measure_units"),
+				cmbUnits = new JComboBoxUnits(true));
+		addComponent(PluginServices.getText(this, "default_measure_units_reference_system"),
+				cmbReferenceSystem = new JComboBoxUnitsReferenceSystem());
+		addComponent(new JSeparator(JSeparator.HORIZONTAL));
+	}
+
+	// pending of a proposed refactor, don't erase
+//	@Override
+//	public void persistPreferences() throws StoreException {
+//		PluginServices ps = PluginServices.getPluginServices(this);
+//		XMLEntity xml = ps.getPersistentXML();
+//		xml.putProperty(DefaultMeasureUnitKey, cmbUnits.getSelectedUnitIndex());
+//		xml.putProperty(DefaultUnitReferenceSystemKey, cmbReferenceSystem.getSelectedIndex());
+//	}
+
+	@Override
+	public void setChangesApplied() {
+		setChanged(false);
+	}
+
+	public void applyValuesFromPersistence() throws StoreException {
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+		if (xml.contains(DefaultMeasureUnitKey))
+			CartographicSupportToolkit.DefaultMeasureUnit = xml.getIntProperty(DefaultMeasureUnitKey);
+		if (xml.contains(DefaultUnitReferenceSystemKey))
+			CartographicSupportToolkit.DefaultReferenceSystem = xml.getIntProperty(DefaultUnitReferenceSystemKey);
+	}
+
+	public String getID() {
+		return getClass().getName();
+	}
+
+	public ImageIcon getIcon() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public JPanel getPanel() {
+		return this;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this, "cartographic_support");
+	}
+
+	// pending of a refactoring do not delete (swap commented lines)
+//	public void initializeComponents() {
+	public void initializeValues() {
+		cmbUnits.setSelectedUnitIndex(CartographicSupportToolkit.DefaultMeasureUnit);
+		cmbReferenceSystem.setSelectedIndex(CartographicSupportToolkit.DefaultReferenceSystem);
+	}
+
+	public void initializeDefaults() {
+		CartographicSupportToolkit.DefaultMeasureUnit = -1; // pixel
+		CartographicSupportToolkit.DefaultReferenceSystem = CartographicSupport.WORLD;
+		initializeValues();
+		// pending of a refactoring do not delete (swap commented lines)
+//		initializeComponents();
+	}
+	
+	// pending of a refactoring, following method would be removed
+	@Override
+	public void storeValues() throws StoreException {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public boolean isValueChanged() {
+		return super.hasChanged();
+	}
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/SymbologyPage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/SymbologyPage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/SymbologyPage.java	(revision 38262)
@@ -0,0 +1,505 @@
+package org.gvsig.app.gui.preferencespage;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JSlider;
+import javax.swing.JTextField;
+import javax.swing.border.TitledBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.filechooser.FileFilter;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.preferences.AbstractPreferencePage;
+import org.gvsig.andami.preferences.StoreException;
+import org.gvsig.app.gui.panels.ColorChooserPanel;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolPreferences;
+import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
+import org.gvsig.gui.beans.swing.JBlank;
+import org.gvsig.gui.beans.swing.JComboBoxFontSizes;
+import org.gvsig.gui.beans.swing.JComboBoxFonts;
+import org.gvsig.gui.beans.swing.JFileChooser;
+import org.gvsig.utils.StringUtilities;
+import org.gvsig.utils.XMLEntity;
+
+
+
+/**
+ * This class extends AbstractPreferencesPage. This component is a preferences page for
+ * symbology and allows select default fore color, fill color, font and size text and
+ * the path where the images that compound symbols are located.
+ *
+ */
+public class SymbologyPage extends AbstractPreferencePage{
+
+	private static final long serialVersionUID = 1L;
+	
+	private final SymbolPreferences preferences =
+			MapContextLocator.getSymbolManager().getSymbolPreferences();
+
+	private ColorChooserPanel defaultColor = null;
+	private ColorChooserPanel defaultFillColor = null;
+	private JSlider jsDefaultSelectionAlpha = null;
+	private JSlider jsFillSelelctionAlpha = null;
+	protected String id;
+	private boolean panelStarted = false;
+	private JButton btnSelectProjectsFolder=null;
+	private ActionListener btnFileChooserAction=null;
+	private JTextField txtProjectsFolder=null;
+	private JComboBoxFonts fonts= null;
+	private JComboBoxFontSizes sizes= null;
+	private ImageIcon icon=null;
+	private JCheckBox aleatoryFillColor;
+
+	private static final String SYMBOL_FORECOLOR_PROPERTY_NAME = "ForeColor";
+	private static final String SYMBOL_FILLCOLOR_PROPERTY_NAME = "FillColor";
+	private static final String SYMBOL_FONT_TYPE_PROPERTY_NAME = "FontType";
+	private static final String SYMBOL_FONT_SIZE_PROPERTY_NAME = "FontSize";
+	private static final String SYMBOL_IMAGE_FOLDER_PROPERTY_NAME = "ImageFolder";
+	private static final String SYMBOL_ALEATORY_FORECOLOR = "AleatoryForeColor";
+	private static final String SYMBOL_ALEATORY_FILLCOLOR = "AleatoryFillColor";
+
+
+	public SymbologyPage(){
+		super();
+		id = this.getClass().getName();
+	}
+	
+	public SymbolPreferences getPreferences() {
+		return preferences;
+	}
+
+	// pending of a proposed refactor, don't erase
+//	@Override
+//	public void persistPreferences() throws StoreException {
+//		File f;
+//		String path, propertyName;
+//		Color foreColor=defaultColor.getColor();
+//		Color fillColor=defaultFillColor.getColor();
+//		PluginServices ps = PluginServices.getPluginServices(this);
+//		XMLEntity xml = ps.getPersistentXML();
+//
+//		xml.putProperty(SYMBOL_FORECOLOR_PROPERTY_NAME,
+//				StringUtilities.color2String(foreColor));
+//
+//		xml.putProperty(SYMBOL_FILLCOLOR_PROPERTY_NAME,
+//				StringUtilities.color2String(fillColor));
+//
+//		propertyName = SYMBOL_IMAGE_FOLDER_PROPERTY_NAME;
+//		path = txtProjectsFolder.getText();
+//
+//		if (path.equals("")) {
+//			if (xml.contains(propertyName)) {
+//				xml.remove(propertyName);
+//			}
+//		} else {
+//			f = new File(path);
+//			if (f.exists()) {
+//				if (xml.contains(propertyName)) {
+//					xml.remove(propertyName);
+//				}
+//				xml.putProperty(propertyName, f.getAbsolutePath());
+//			}
+//		}
+//
+//		String nameFont=(String)fonts.getSelectedItem();
+//		Integer sizeFontAux =(Integer)sizes.getSelectedItem();
+//		int sizeFont=sizeFontAux.intValue();
+//
+//		propertyName=SYMBOL_FONT_TYPE_PROPERTY_NAME;
+//		xml.putProperty(propertyName, nameFont);
+//
+//		propertyName=SYMBOL_FONT_SIZE_PROPERTY_NAME;
+//		xml.putProperty(propertyName, sizeFont);
+//
+//
+//	}
+
+	public void persistPreferences() throws StoreException {
+		File f;
+		String path, propertyName;
+		Color foreColor=defaultColor.getColor();
+		Color fillColor=defaultFillColor.getColor();
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+
+		xml.putProperty(SYMBOL_FORECOLOR_PROPERTY_NAME,
+				StringUtilities.color2String(foreColor));
+
+
+		xml.putProperty(SYMBOL_FILLCOLOR_PROPERTY_NAME,
+				StringUtilities.color2String(fillColor));
+		xml.putProperty(SYMBOL_ALEATORY_FILLCOLOR,aleatoryFillColor.isSelected());
+
+		propertyName = SYMBOL_IMAGE_FOLDER_PROPERTY_NAME;
+		path = txtProjectsFolder.getText();
+
+		if (path.equals("")) {
+			if (xml.contains(propertyName)) {
+				xml.remove(propertyName);
+			}
+		} else {
+			f = new File(path);
+			if (f.exists()) {
+				if (xml.contains(propertyName)) {
+					xml.remove(propertyName);
+				}
+				xml.putProperty(propertyName, f.getAbsolutePath());
+			}
+		}
+
+		String nameFont=(String)fonts.getSelectedItem();
+		Integer sizeFontAux =(Integer)sizes.getSelectedItem();
+		int sizeFont=sizeFontAux.intValue();
+
+		propertyName=SYMBOL_FONT_TYPE_PROPERTY_NAME;
+		xml.putProperty(propertyName, nameFont);
+
+		propertyName=SYMBOL_FONT_SIZE_PROPERTY_NAME;
+		xml.putProperty(propertyName, sizeFont);
+	}
+
+
+	@Override
+	public void setChangesApplied() {
+		setChanged(false);
+
+	}
+
+	public void applyValuesFromPersistence() throws StoreException {
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+		xml = ps.getPersistentXML();
+
+		SymbolPreferences preferences = getPreferences();
+
+		//Color
+		if(xml.contains(SYMBOL_FORECOLOR_PROPERTY_NAME)){
+			Color color = StringUtilities.string2Color(xml.getStringProperty(SYMBOL_FORECOLOR_PROPERTY_NAME));
+			preferences.setDefaultSymbolColor(color);
+		}else{
+			preferences.resetDefaultSymbolColor();
+		}
+
+		//FillColor
+		if(xml.contains(SYMBOL_FILLCOLOR_PROPERTY_NAME)){
+			Color colorFill=StringUtilities.string2Color(xml.getStringProperty(SYMBOL_FILLCOLOR_PROPERTY_NAME));
+			preferences.setDefaultSymbolFillColor(colorFill);
+		}else{
+			preferences.resetDefaultSymbolFillColor();
+		}
+
+		//Path
+		if(xml.contains(SYMBOL_IMAGE_FOLDER_PROPERTY_NAME)){
+			preferences.setSymbolLibraryPath(xml
+					.getStringProperty(SYMBOL_IMAGE_FOLDER_PROPERTY_NAME));
+		}else{
+			preferences.resetSymbolLibraryPath();
+		}
+		
+		//Font
+		if(xml.contains(SYMBOL_FONT_TYPE_PROPERTY_NAME)){
+			int size=xml.getIntProperty(SYMBOL_FONT_SIZE_PROPERTY_NAME);
+			String type=xml.getStringProperty(SYMBOL_FONT_TYPE_PROPERTY_NAME);
+			Font font= new Font(type, Font.BOLD, size);
+			preferences.setDefaultSymbolFont(font);
+		}else{
+			preferences.resetDefaultSymbolFont();
+		}
+
+	}
+
+	public String getID() {
+		return id;
+	}
+
+	public ImageIcon getIcon() {
+		if (icon == null){
+			icon=PluginServices.getIconTheme().get("symbol-pref");
+		}
+		return icon;
+	}
+
+	public JPanel getPanel() {
+		if(panelStarted)return this;
+		panelStarted=true;
+		addComponent(new JLabel(" "));
+
+		GridBagLayoutPanel selectionDefaultColorPanel = new GridBagLayoutPanel();
+		selectionDefaultColorPanel.setBorder(new TitledBorder(PluginServices.getText(this, "default_color")));
+		selectionDefaultColorPanel.setLayout(new GridBagLayout());
+		selectionDefaultColorPanel.add(new JLabel(PluginServices.getText(this,"fill")));
+		selectionDefaultColorPanel.add(defaultColor = new ColorChooserPanel());
+
+		selectionDefaultColorPanel.add(new JLabel(PluginServices.getText(this,"alpha")));
+		selectionDefaultColorPanel.add(jsDefaultSelectionAlpha = new JSlider(0,255));
+		selectionDefaultColorPanel.add(new JBlank(50,50));
+
+		jsDefaultSelectionAlpha.setPreferredSize(new Dimension(100,30));
+		jsDefaultSelectionAlpha.addChangeListener(new ChangeListener(){
+			public void stateChanged(ChangeEvent e) {
+				defaultColor.setAlpha(((JSlider)e.getSource()).getValue());
+		}});
+		addComponent(new JLabel(" "));
+		addComponent(selectionDefaultColorPanel);
+
+		GridBagLayoutPanel selectionFillColor = new GridBagLayoutPanel();
+		selectionFillColor.setBorder(new TitledBorder(PluginServices.getText(this, "default_fill_color")));
+		selectionFillColor.setLayout(new GridBagLayout());
+		selectionFillColor.add(new JLabel(PluginServices.getText(this,"fill")));
+		selectionFillColor.add(defaultFillColor = new ColorChooserPanel());
+
+		selectionFillColor.add(new JLabel(PluginServices.getText(this,"alpha")));
+		selectionFillColor.add(jsFillSelelctionAlpha = new JSlider(0,255));
+
+		jsFillSelelctionAlpha.setPreferredSize(new Dimension(100,30));
+		jsFillSelelctionAlpha.addChangeListener(new ChangeListener(){
+			public void stateChanged(ChangeEvent e) {
+				defaultFillColor.setAlpha(((JSlider)e.getSource()).getValue());
+		}});
+
+		selectionFillColor.add(new JBlank(50,50));
+		selectionFillColor.add(aleatoryFillColor = new JCheckBox());
+		selectionFillColor.add(new JLabel("   " + PluginServices.getText(this,"aleatory")));
+
+
+		aleatoryFillColor.addActionListener(new ActionListener(){
+
+			public void actionPerformed(ActionEvent e) {
+				if(e.getSource() == aleatoryFillColor){
+					defaultFillColor.setEnabled(!aleatoryFillColor.isSelected());
+					jsFillSelelctionAlpha.setEnabled(!aleatoryFillColor.isSelected());
+				}
+			}
+
+		});
+
+		addComponent(new JLabel(" "));
+		addComponent(selectionFillColor);
+
+		btnFileChooserAction = new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				String path;
+				if (e.getSource().equals(btnSelectProjectsFolder)) {
+					path = txtProjectsFolder.getText();
+
+
+				FileFilter def =  new FileFilter(){
+					public boolean accept(File f) {
+						return (f.isDirectory());
+					}
+
+					public String getDescription() {
+						return null;
+					}
+				};
+
+				File file = new File(path);
+				JFileChooser fc;
+				if (file.exists()) {
+					fc = new JFileChooser("SYMBOLOGY_PREFERENCE_PAGE_FILECHOOSER", file);
+				} else {
+					fc= new JFileChooser("SYMBOLOGY_PREFERENCE_PAGE_FILECHOOSER",JFileChooser.getLastPath("SYMBOLOGY_PREFERENCE_PAGE_FILECHOOSER", file));
+				}
+
+
+				fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+                fc.setMultiSelectionEnabled(false);
+                fc.setAcceptAllFileFilterUsed(false);
+                fc.addChoosableFileFilter(def);
+                int result = fc.showOpenDialog(SymbologyPage.this);
+
+                if (result == JFileChooser.APPROVE_OPTION && (file = fc.getSelectedFile()) != null)
+                	if (e.getSource().equals(btnSelectProjectsFolder))
+    					txtProjectsFolder.setText(file.getAbsolutePath());
+                }
+			}
+
+		};
+		btnSelectProjectsFolder = new JButton(PluginServices.getText(this, "browse"));
+		btnSelectProjectsFolder.addActionListener(btnFileChooserAction);
+
+		JPanel panelBrowser = new JPanel();
+		panelBrowser.setBorder(new TitledBorder(PluginServices.getText(this, "folder_images")));
+
+		panelBrowser.add(txtProjectsFolder = new JTextField(30));
+		panelBrowser.add(btnSelectProjectsFolder);
+
+		addComponent(panelBrowser);
+
+		fonts= new JComboBoxFonts();
+		sizes = new JComboBoxFontSizes();
+
+		JPanel panelFont = new JPanel(new FlowLayout());
+		panelFont.setBorder(new TitledBorder(PluginServices.getText(this, "default_font")));
+		panelFont.add(fonts);
+		panelFont.add(sizes);
+
+		addComponent(panelFont);
+		initializeValues();
+		return this;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this, "symbology");
+	}
+	// pending of a refactoring do not delete (swap commented lines)
+//	public void initializeComponents() {
+	public void initializeValues() {
+		if (!panelStarted) getPanel();
+
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+
+		SymbolPreferences preferences = getPreferences();
+
+		//Default Color
+		if (xml.contains(SYMBOL_FORECOLOR_PROPERTY_NAME)) {
+			Color color=StringUtilities.string2Color(xml.getStringProperty(SYMBOL_FORECOLOR_PROPERTY_NAME));
+			defaultColor.setColor(color);
+			defaultColor.setAlpha(color.getAlpha());
+			jsDefaultSelectionAlpha.setValue(color.getAlpha());
+			preferences.setDefaultSymbolColor(color);
+		}else{
+			preferences.resetDefaultSymbolColor();
+			Color color = preferences.getDefaultSymbolColor();
+			defaultColor.setColor(color);
+			defaultColor.setAlpha(color.getAlpha());
+			jsDefaultSelectionAlpha.setValue(color.getAlpha());
+		}
+
+		if(xml.contains(SYMBOL_ALEATORY_FILLCOLOR)){
+			aleatoryFillColor.setSelected(xml.getBooleanProperty(SYMBOL_ALEATORY_FILLCOLOR));
+			preferences.setDefaultSymbolFillColorAleatory(aleatoryFillColor
+					.isSelected());
+		}else{
+			preferences.resetDefaultSymbolFillColorAleatory();
+			aleatoryFillColor.setSelected(preferences
+					.isDefaultSymbolFillColorAleatory());
+		}
+
+		//Fill Color
+		if (xml.contains(SYMBOL_FILLCOLOR_PROPERTY_NAME)) {
+			Color color=StringUtilities.string2Color(xml.getStringProperty(SYMBOL_FILLCOLOR_PROPERTY_NAME));
+			defaultFillColor.setColor(color);
+			defaultFillColor.setAlpha(color.getAlpha());
+			jsFillSelelctionAlpha.setValue(color.getAlpha());
+			preferences.setDefaultSymbolFillColor(color);
+		}else{
+			preferences.resetDefaultSymbolFillColor();
+			Color color = preferences.getDefaultSymbolFillColor();
+			defaultFillColor.setColor(color);
+			defaultFillColor.setAlpha(color.getAlpha());
+			jsFillSelelctionAlpha.setValue(color.getAlpha());
+		}
+
+		defaultFillColor.setEnabled(!aleatoryFillColor.isSelected());
+		jsFillSelelctionAlpha.setEnabled(!aleatoryFillColor.isSelected());
+
+		//Path
+		if (xml.contains(SYMBOL_IMAGE_FOLDER_PROPERTY_NAME)) {
+			String path=xml.getStringProperty(SYMBOL_IMAGE_FOLDER_PROPERTY_NAME);
+			txtProjectsFolder.setText(path);
+			preferences.setSymbolLibraryPath(path);
+		}else{
+			preferences.resetSymbolLibraryPath();
+			txtProjectsFolder.setText(preferences.getSymbolLibraryPath());
+		}
+
+		//Font Size
+		if(xml.contains(SYMBOL_FONT_TYPE_PROPERTY_NAME)){
+			String type=xml.getStringProperty(SYMBOL_FONT_TYPE_PROPERTY_NAME);
+			fonts.setSelectedItem(type);
+		}
+		else{
+			String font = preferences.getDefaultSymbolFont().getFontName();
+			fonts.setSelectedItem(font);
+		}
+
+		if(xml.contains(SYMBOL_FONT_SIZE_PROPERTY_NAME)){
+			int size=xml.getIntProperty(SYMBOL_FONT_SIZE_PROPERTY_NAME);
+			sizes.setSelectedItem(size);
+		}
+		else{
+			int size = preferences.getDefaultSymbolFont().getSize();
+			sizes.setSelectedItem(size);
+		}
+		preferences.setDefaultSymbolFont(new Font(fonts.getFont().getName(),
+				fonts
+				.getFont().getStyle(), (Integer) sizes.getSelectedItem()));
+	}
+
+	public void initializeDefaults() {
+		SymbolPreferences preferences = getPreferences();
+
+		defaultColor.setColor(preferences.getDefaultSymbolColor());
+		jsDefaultSelectionAlpha.setValue(255);
+
+		defaultFillColor.setColor(preferences.getDefaultSymbolFillColor());
+		jsFillSelelctionAlpha.setValue(255);
+
+		fonts.setSelectedItem(preferences.getDefaultSymbolFont().getFamily());
+		sizes.setSelectedItem(preferences.getDefaultSymbolFont().getSize());
+		txtProjectsFolder.setText(preferences.getSymbolLibraryPath());
+
+		aleatoryFillColor.setSelected(preferences
+				.isDefaultSymbolFillColorAleatory());
+	}
+
+	public boolean isValueChanged() {
+		return super.hasChanged();
+	}
+
+	// pending of a refactoring, following method would be removed
+	@Override
+	public void storeValues() throws StoreException {
+		setPropertiesFromPanel();
+		persistPreferences();
+	}
+
+	private void setPropertiesFromPanel(){
+		SymbolPreferences preferences = getPreferences();
+
+		if(defaultColor.getColor()!=null){
+			Color color = defaultColor.getColor();
+			color = new Color(color.getRed(),color.getGreen(),color.getBlue(),jsDefaultSelectionAlpha.getValue());
+			preferences.setDefaultSymbolColor(color);
+		}
+
+		if(aleatoryFillColor != null){
+			preferences.setDefaultSymbolFillColorAleatory(aleatoryFillColor
+					.isSelected());
+		}
+		//Fill Color
+		if (defaultFillColor.getColor()  !=  null) {
+			Color color = defaultFillColor.getColor();
+			color = new Color(color.getRed(),color.getGreen(),color.getBlue(),jsFillSelelctionAlpha.getValue());
+			preferences.setDefaultSymbolFillColor(color);
+		}
+
+		//Path
+		if (txtProjectsFolder.getText() != null) {
+			preferences.setSymbolLibraryPath(txtProjectsFolder.getText());
+		}
+
+		//Font Size
+		if(fonts.getFont() != null && sizes.getSelectedItem() != null){
+			Font font = fonts.getFont();
+			font= new Font(fonts.getFont().getFontName(), Font.BOLD, (Integer)sizes.getSelectedItem());
+			preferences.setDefaultSymbolFont(font);
+		}
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/GridPage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/GridPage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/GridPage.java	(revision 38262)
@@ -0,0 +1,259 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id: GridPage.java 21668 2008-06-19 09:05:14Z vcaballero $
+* $Log$
+* Revision 1.4  2006-08-22 12:27:53  jaume
+* improved performances when saving
+*
+* Revision 1.3  2006/08/22 07:37:32  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2006/08/10 11:13:02  caballero
+* mostrar unidades
+*
+* Revision 1.1  2006/08/10 08:18:35  caballero
+* configurar grid
+*
+* Revision 1.1  2006/08/04 11:41:05  caballero
+* poder especificar el zoom a aplicar en las vistas
+*
+* Revision 1.3  2006/07/31 10:02:31  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2006/06/13 07:43:08  fjp
+* Ajustes sobre los cuadros de dialogos de preferencias
+*
+* Revision 1.1  2006/06/12 16:04:28  caballero
+* Preferencias
+*
+* Revision 1.11  2006/06/06 10:26:31  jaume
+* *** empty log message ***
+*
+* Revision 1.10  2006/06/05 17:07:17  jaume
+* *** empty log message ***
+*
+* Revision 1.9  2006/06/05 17:00:44  jaume
+* *** empty log message ***
+*
+* Revision 1.8  2006/06/05 16:57:59  jaume
+* *** empty log message ***
+*
+* Revision 1.7  2006/06/05 14:45:06  jaume
+* *** empty log message ***
+*
+* Revision 1.6  2006/06/05 11:00:09  jaume
+* *** empty log message ***
+*
+* Revision 1.5  2006/06/05 10:39:02  jaume
+* *** empty log message ***
+*
+* Revision 1.4  2006/06/05 10:13:40  jaume
+* *** empty log message ***
+*
+* Revision 1.3  2006/06/05 10:06:08  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2006/06/05 09:51:56  jaume
+* *** empty log message ***
+*
+* Revision 1.1  2006/06/02 10:50:18  jaume
+* *** empty log message ***
+*
+*
+*/
+package org.gvsig.app.gui.preferencespage;
+
+import java.util.prefs.Preferences;
+
+import javax.swing.ImageIcon;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.preferences.AbstractPreferencePage;
+import org.gvsig.andami.preferences.StoreException;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.grid.Grid;
+
+
+public class GridPage extends AbstractPreferencePage {
+	public static Preferences prefs = Preferences.userRoot().node( "cadtooladapter" );
+	private org.gvsig.fmap.mapcontrol.MapControl mapControl;
+	private JCheckBox chkShowGrid;
+	private JCheckBox chkAdjustGrid;
+	private JTextField txtDistanceX;
+	private JTextField txtDistanceY;
+	private JLabel lblUnits=new JLabel();
+	private ImageIcon icon;
+
+	public GridPage() {
+		super();
+		icon = PluginServices.getIconTheme().get("grid-icon");
+		chkShowGrid=new JCheckBox(PluginServices.getText(this,"mostrar_rejilla"));
+		addComponent(chkShowGrid);
+		chkAdjustGrid=new JCheckBox(PluginServices.getText(this,"ajustar_rejilla"));
+		addComponent(chkAdjustGrid);
+		addComponent(lblUnits);
+
+		// distance x
+		addComponent(PluginServices.getText(this, "distance_x") + ":",
+			txtDistanceX = new JTextField("", 15));
+		// distance y
+		addComponent(PluginServices.getText(this, "distance_y") + ":",
+			txtDistanceY = new JTextField("", 15));
+		setParentID(ViewPage.id);
+
+	}
+
+	public void initializeValues() {
+		boolean showGrid = prefs.getBoolean("grid.showgrid",Grid.DefaultShowGrid);
+		boolean adjustGrid = prefs.getBoolean("grid.adjustgrid",Grid.DefaultAdjustGrid);
+
+		double dx = prefs.getDouble("grid.distancex",Grid.DefaultGridSizeX);
+		double dy = prefs.getDouble("grid.distancey",Grid.DefaultGridSizeY);
+
+		Grid.SHOWGRID=showGrid;
+		Grid.ADJUSTGRID=adjustGrid;
+		Grid.GRIDSIZEX=dx;
+		Grid.GRIDSIZEY=dy;
+
+//		setGridVisibility(showGrid);
+//		setAdjustGrid(adjustGrid);
+//		cadgrid.setGridSizeX(dx);
+//		cadgrid.setGridSizeY(dy);
+//		cta=CADExtension.getCADToolAdapter();
+//		cta.initializeGrid();
+//		ViewPort vp=cta.getMapControl().getViewPort();
+//		boolean showGrid = prefs.getBoolean("grid.showgrid",cta.getGrid().isShowGrid());
+//		boolean adjustGrid = prefs.getBoolean("grid.adjustgrid",cta.getGrid().isAdjustGrid());
+//
+//		double dx = prefs.getDouble("grid.distancex",cta.getGrid().getGridSizeX());
+//		double dy = prefs.getDouble("grid.distancey",cta.getGrid().getGridSizeY());
+//		CADGrid cg=cta.getGrid();
+		chkShowGrid.setSelected(showGrid);
+		chkAdjustGrid.setSelected(adjustGrid);
+		txtDistanceX.setText(String.valueOf(dx));
+		txtDistanceY.setText(String.valueOf(dy));
+//		lblUnits.setText(PluginServices.getText(this,"Unidades")+ "           "+PluginServices.getText(this,MapContext.getDistanceNames()[vp.getDistanceUnits()]));
+
+//		cta.setGridVisibility(showGrid);
+//		cta.setAdjustGrid(adjustGrid);
+//		cta.getGrid().setGridSizeX(dx);
+//		cta.getGrid().setGridSizeY(dy);
+
+	}
+
+	public String getID() {
+		return this.getClass().getName();
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this, "Grid");
+	}
+
+	public JPanel getPanel() {
+		return this;
+	}
+
+	public void storeValues() throws StoreException {
+		boolean showGrid;
+		boolean adjustGrid;
+		double dx;
+		double dy;
+
+			showGrid=chkShowGrid.isSelected();
+			adjustGrid=chkAdjustGrid.isSelected();
+		try{
+			dx=Double.parseDouble(txtDistanceX.getText());
+			dy=Double.parseDouble(txtDistanceY.getText());
+		}catch (Exception e) {
+			throw new StoreException(PluginServices.getText(this,"distancia_malla_incorrecta"));
+		}
+		prefs.putBoolean("grid.showgrid",showGrid);
+		prefs.putBoolean("grid.adjustgrid",adjustGrid);
+		prefs.putDouble("grid.distancex", dx);
+		prefs.putDouble("grid.distancey", dy);
+
+		Grid.SHOWGRID=showGrid;
+		Grid.ADJUSTGRID=adjustGrid;
+		Grid.GRIDSIZEX=dx;
+		Grid.GRIDSIZEY=dy;
+
+		IWindow window=PluginServices.getMDIManager().getActiveWindow();
+		if (window instanceof DefaultViewPanel){
+			MapControl mc=((DefaultViewPanel)window).getMapControl();
+			Grid cadGrid=mc.getGrid();
+			cadGrid.setShowGrid(showGrid);
+			cadGrid.setAdjustGrid(adjustGrid);
+			cadGrid.setGridSizeX(dx);
+			cadGrid.setGridSizeY(dy);
+		}
+
+	}
+
+	public void initializeDefaults() {
+		chkShowGrid.setSelected(Grid.DefaultShowGrid);
+		chkAdjustGrid.setSelected(Grid.DefaultAdjustGrid);
+//		ViewPort vp=cta.getMapControl().getViewPort();
+//		lblUnits.setText(PluginServices.getText(this,"Unidades")+ "           "+PluginServices.getText(this,MapContext.getDistanceNames()[vp.getDistanceUnits()]));
+		txtDistanceX.setText(String.valueOf(Grid.DefaultGridSizeX));
+		txtDistanceY.setText(String.valueOf(Grid.DefaultGridSizeY));
+	}
+
+	public ImageIcon getIcon() {
+		return icon;
+	}
+
+	public boolean isValueChanged() {
+		return super.hasChanged();
+	}
+
+	public void setChangesApplied() {
+		setChanged(false);
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriverCSVPage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriverCSVPage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriverCSVPage.java	(revision 38262)
@@ -0,0 +1,133 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+package org.gvsig.app.gui.preferencespage;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.preferences.AbstractPreferencePage;
+import org.gvsig.andami.preferences.StoreException;
+import org.gvsig.utils.XMLEntity;
+
+/**
+ * CSV Driver preference page where the user can establish default values for
+ * <ol>
+ *  <li><b>separator</b></li>
+ * </ol>
+ * @author Vicente Caballero Navarro
+ *
+ */
+//TODO comentado para que compile
+public class DriverCSVPage extends AbstractPreferencePage{
+	private static final String DEFAULT_SEPARATOR_CSV_DRIVER = "DefaultSeparatorCSVDriver";
+	static String id = DriverCSVPage.class.getName();;
+	private ImageIcon icon;
+	private JTextField txtSeparator;
+
+	/**
+	 * Builds preference page where the user can establish default values for
+	 * <ol>
+	 *  <li><b>separator</b></li>
+	 * </ol>
+	 */
+	public DriverCSVPage() {
+		super();
+		icon=PluginServices.getIconTheme().get("mapa-icono");
+		addComponent(PluginServices.getText(this, "separador"), txtSeparator = new JTextField(5));
+		setParentID(DriversPages.class.getName());
+	}
+
+	public void storeValues() throws StoreException {
+		String separator;
+		separator = txtSeparator.getText();
+//		DriverManager dm=LayerFactory.getDM();
+//		CSVStringDriver cvsDriver=null;
+//		try {
+//			cvsDriver = (CSVStringDriver)dm.getDriver("csv string");
+//		} catch (DriverLoadException e) {
+//			throw new StoreException();
+//		}
+//		cvsDriver.setSeparator(separator);
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+		xml.putProperty(DEFAULT_SEPARATOR_CSV_DRIVER, separator);
+	}
+
+	public String getID() {
+		return id;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this, "CSVStringDriver");
+	}
+
+	public JPanel getPanel() {
+		return this;
+	}
+
+	public void initializeValues() {
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+		if (xml.contains(DEFAULT_SEPARATOR_CSV_DRIVER)) {
+			txtSeparator.setText(xml.getStringProperty(DEFAULT_SEPARATOR_CSV_DRIVER));
+		}
+
+	}
+
+	public void initializeDefaults() {
+		txtSeparator.setText(",");
+	}
+
+	public ImageIcon getIcon() {
+		return icon;
+	}
+
+	public boolean isValueChanged() {
+		return super.hasChanged();
+	}
+
+	public void setChangesApplied() {
+		setChanged(false);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/DriverCSVPage.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewBehaviorPage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewBehaviorPage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewBehaviorPage.java	(revision 38262)
@@ -0,0 +1,229 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.preferencespage;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+
+import javax.swing.BorderFactory;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JSlider;
+import javax.swing.border.Border;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.preferences.AbstractPreferencePage;
+import org.gvsig.andami.preferences.StoreException;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.gui.beans.swing.JBlank;
+import org.gvsig.utils.XMLEntity;
+
+
+/**
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ */
+public class ViewBehaviorPage extends AbstractPreferencePage{
+	private static final int FACTORY_DEFAULT_MAPCONTEXT_FRAME_RATE = 3;
+	protected String id = ViewBehaviorPage.class.getName();
+	private ScreenRefreshRatePanel refreshRate;
+	private static final String MAPCONTROL_ENABLE_ANIMATION_KEY_NAME = "MapControlEnableAnimation";
+	private static final String MAPCONTROL_REFRESH_RATE_KEY_NAME = "MapControlRefreshRate";
+
+	public ViewBehaviorPage() {
+		super();
+		setParentID(ViewPage.id);
+		addComponent(new JBlank(1,1));
+		refreshRate = new ScreenRefreshRatePanel();
+		addComponent(refreshRate);
+	}
+
+	@Override
+	public void setChangesApplied() {
+		setChanged(false);
+	}
+
+	@Override
+	public void storeValues() throws StoreException {
+		final int frameRate = refreshRate.getFrameRate();
+		final boolean bAnimationEnabled = frameRate>0;
+		if (frameRate > 0) {
+			MapContext.setDrawFrameRate(frameRate);
+		}
+		MapControl.setDrawAnimationEnabled(bAnimationEnabled);
+
+		// Apply on-the-fly to all already created views
+		IWindow[] windows = PluginServices.getMDIManager().getAllWindows();
+		for (int i = 0; i < windows.length; i++) {
+			if (windows[i] instanceof AbstractViewPanel) {
+				AbstractViewPanel view = (AbstractViewPanel) windows[i];
+				view.getMapControl().applyFrameRate();
+			}
+		}
+
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+		xml.putProperty(
+				MAPCONTROL_REFRESH_RATE_KEY_NAME,
+				MapContext.getDrawFrameRate());
+		xml.putProperty(
+				MAPCONTROL_ENABLE_ANIMATION_KEY_NAME,
+				MapControl.isDrawAnimationEnabled());
+
+	}
+
+	public String getID() {
+		return id;
+	}
+
+	public ImageIcon getIcon() {
+		return null;
+	}
+
+	public JPanel getPanel() {
+		return this;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this, "behavior");
+	}
+
+	public void initializeDefaults() {
+		refreshRate.setFrameRate(FACTORY_DEFAULT_MAPCONTEXT_FRAME_RATE);
+	}
+
+	public void initializeValues() {
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+
+		// View refresh rate
+		if (xml.contains(MAPCONTROL_REFRESH_RATE_KEY_NAME)) {
+			MapContext.setDrawFrameRate(xml.getIntProperty(MAPCONTROL_REFRESH_RATE_KEY_NAME));
+		}
+
+		// View animation enabled
+		if (xml.contains(MAPCONTROL_ENABLE_ANIMATION_KEY_NAME)) {
+			MapControl.setDrawAnimationEnabled(xml.getBooleanProperty(MAPCONTROL_ENABLE_ANIMATION_KEY_NAME));
+		}
+
+
+		int frameRate = MapContext.getDrawFrameRate();
+		if (!MapControl.isDrawAnimationEnabled())
+			frameRate = 0;
+		refreshRate.setFrameRate(frameRate);
+	}
+
+	public boolean isValueChanged() {
+		return super.hasChanged();
+	}
+
+	private class ScreenRefreshRatePanel extends JPanel {
+		private static final long serialVersionUID = -68376902499946576L;
+		private JSlider sldRefreshRate;
+
+		public ScreenRefreshRatePanel() {
+    		setPreferredSize(new Dimension(500, 200));
+            Border border=BorderFactory.createTitledBorder(
+            		PluginServices.getText(this, "options.view.behavior.screen_refreshrate"));
+            setBorder(border);
+    		setLayout(new BorderLayout(15, 15));
+
+    		JPanel aux = new JPanel(new BorderLayout());
+    		aux.add(new JLabel(
+    				PluginServices.getText(
+    						this,
+    						"options.view.behavior.screen_refreshrate.none")),
+    				BorderLayout.WEST);
+    		JPanel aux2 = new JPanel(new FlowLayout(FlowLayout.CENTER));
+    		aux2.add(new JLabel(
+    				PluginServices.getText(
+    						this,
+    						"options.view.behavior.screen_refreshrate.half")),
+    				BorderLayout.CENTER);
+    		aux.add(aux2);
+    		aux.add(new JLabel(
+    				PluginServices.getText(
+    						this,
+    						"options.view.behavior.screen_refreshrate.full")),
+    				BorderLayout.EAST);
+
+    		add(aux, BorderLayout.NORTH);
+    		aux = new JPanel(new BorderLayout());
+    		aux.add(getSldRefreshRate(), BorderLayout.NORTH);
+    		aux.add(new JBlank(10, 20), BorderLayout.SOUTH);
+    		add(aux, BorderLayout.CENTER);
+    		add(new JLabel(PluginServices.
+    				getText(this, "options.view.behavior.screen_refresh_rate.help")),
+    				BorderLayout.SOUTH);
+    	}
+
+		private JSlider getSldRefreshRate() {
+			if (sldRefreshRate == null) {
+				sldRefreshRate = new JSlider(0, 30);
+
+			}
+
+			return sldRefreshRate;
+		}
+
+		public int getFrameRate() {
+			return getSldRefreshRate().getValue();
+		}
+
+		public void setFrameRate(int sampleRate) {
+			if (sampleRate<=30)
+				getSldRefreshRate().setValue(sampleRate);
+		}
+
+    }
+
+	@Override
+	public String getParentID() {
+		if (super.getParentID()==null) {
+			setParentID(ViewPage.id);
+		}
+		return super.getParentID();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewBehaviorPage.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewPage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewPage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewPage.java	(revision 38262)
@@ -0,0 +1,611 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.27  2007-09-17 09:22:10  jaume
+* view draw frame rate now customizable
+*
+* Revision 1.26  2007/05/09 16:08:14  jaume
+* *** empty log message ***
+*
+* Revision 1.25  2007/03/06 16:35:02  caballero
+* Exceptions
+*
+* Revision 1.24  2007/02/20 15:52:32  caballero
+* *** empty log message ***
+*
+* Revision 1.23  2007/01/25 11:04:07  caballero
+* comprobar que el factor no es cero
+*
+* Revision 1.22  2006/12/20 14:41:12  caballero
+* Remodelado Layout
+*
+* Revision 1.21  2006/11/08 10:57:55  jaume
+* remove unecessary imports
+*
+* Revision 1.20  2006/10/25 08:34:06  jmvivo
+* LLamado al PluginServices.getText para las unidades de medida del los combo
+*
+* Revision 1.19  2006/10/04 07:23:31  jaume
+* refactored ambiguous methods and field names and added some more features for preference pages
+*
+* Revision 1.18  2006/10/03 09:52:38  jaume
+* restores to meters
+*
+* Revision 1.17  2006/10/03 09:19:12  jaume
+* *** empty log message ***
+*
+* Revision 1.16  2006/10/03 07:26:08  jaume
+* *** empty log message ***
+*
+* Revision 1.15  2006/10/02 15:30:29  jaume
+* *** empty log message ***
+*
+* Revision 1.14  2006/10/02 13:52:34  jaume
+* organize impots
+*
+* Revision 1.13  2006/10/02 13:38:23  jaume
+* *** empty log message ***
+*
+* Revision 1.12  2006/10/02 11:49:23  jaume
+* *** empty log message ***
+*
+* Revision 1.11  2006/09/28 12:04:21  jaume
+* default selection color now configurable
+*
+* Revision 1.10  2006/09/25 10:17:15  caballero
+* Projection
+*
+* Revision 1.9  2006/09/15 10:41:30  caballero
+* extensibilidad de documentos
+*
+* Revision 1.8  2006/09/14 15:43:48  jaume
+* *** empty log message ***
+*
+* Revision 1.7  2006/09/14 15:42:38  jaume
+* *** empty log message ***
+*
+* Revision 1.6  2006/09/14 06:57:18  jaume
+* *** empty log message ***
+*
+* Revision 1.5  2006/09/12 15:56:50  jaume
+* Default Projection now customizable
+*
+* Revision 1.4  2006/08/29 07:21:08  cesar
+* Rename com.iver.cit.gvsig.fmap.Fmap class to com.iver.cit.gvsig.fmap.MapContext
+*
+* Revision 1.3  2006/08/22 12:30:59  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2006/08/22 07:36:04  jaume
+* *** empty log message ***
+*
+* Revision 1.1  2006/08/04 11:41:05  caballero
+* poder especificar el zoom a aplicar en las vistas
+*
+* Revision 1.3  2006/07/31 10:02:31  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2006/06/13 07:43:08  fjp
+* Ajustes sobre los cuadros de dialogos de preferencias
+*
+* Revision 1.1  2006/06/12 16:04:28  caballero
+* Preferencias
+*
+* Revision 1.11  2006/06/06 10:26:31  jaume
+* *** empty log message ***
+*
+* Revision 1.10  2006/06/05 17:07:17  jaume
+* *** empty log message ***
+*
+* Revision 1.9  2006/06/05 17:00:44  jaume
+* *** empty log message ***
+*
+* Revision 1.8  2006/06/05 16:57:59  jaume
+* *** empty log message ***
+*
+* Revision 1.7  2006/06/05 14:45:06  jaume
+* *** empty log message ***
+*
+* Revision 1.6  2006/06/05 11:00:09  jaume
+* *** empty log message ***
+*
+* Revision 1.5  2006/06/05 10:39:02  jaume
+* *** empty log message ***
+*
+* Revision 1.4  2006/06/05 10:13:40  jaume
+* *** empty log message ***
+*
+* Revision 1.3  2006/06/05 10:06:08  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2006/06/05 09:51:56  jaume
+* *** empty log message ***
+*
+* Revision 1.1  2006/06/02 10:50:18  jaume
+* *** empty log message ***
+*
+*
+*/
+package org.gvsig.app.gui.preferencespage;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Enumeration;
+
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.ImageIcon;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.UIManager;
+import javax.swing.plaf.FontUIResource;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.preferences.AbstractPreferencePage;
+import org.gvsig.andami.preferences.StoreException;
+import org.gvsig.app.addlayer.AddLayerDialog;
+import org.gvsig.app.gui.panels.CRSSelectPanel;
+import org.gvsig.app.gui.panels.ColorChooserPanel;
+import org.gvsig.app.gui.panels.crs.ISelectCrsPanel;
+import org.gvsig.app.project.DefaultProject;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.crs.CRSFactory;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.gui.beans.swing.JButton;
+import org.gvsig.utils.StringUtilities;
+import org.gvsig.utils.XMLEntity;
+import org.gvsig.utils.swing.JComboBox;
+
+/**
+ *  View document configuration page.
+ *  <b><b>
+ *  Here the user can establish what settings wants to use by default regarding to
+ *  the document View.
+ *
+ *
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ */
+public class ViewPage extends AbstractPreferencePage {
+
+	private static final String DEFAULT_PROJECTION_KEY_NAME = "DefaultProjection";
+	private static final String FACTORY_DEFAULT_PROJECTION = "EPSG:23030";
+	private static final String ZOOM_IN_FACTOR_KEY_NAME = "ZoomInFactor";
+	private static final String ZOOM_OUT_FACTOR_KEY_NAME = "ZoomOutFactor";
+	private static final String ADD_NEW_LAYERS_IN_INVISIBLE_MODE_KEY_NAME = "NewLayersInInvisibleMode";
+	private static final String KEEP_SCALE_ON_RESIZING_KEY_NAME = "KeepScaleOnResizing";
+	private static final String DEFAULT_SELECTION_COLOR_KEY_NAME = "DefaultSelectionColor";
+	private static final String DEFAULT_VIEW_BACK_COLOR_KEY_NAME = "DefaultViewBackColor";
+	private static final String DEFAULT_DISTANCE_AREA_KEY_NAME = "DefaultDistanceArea";
+	private static final String DEFAULT_DISTANCE_UNITS_KEY_NAME = "DefaultDistanceUnits";
+	private static final String DEFAULT_MAP_UNITS_KEY_NAME = "DefaultMapUnits";
+	/*
+	 * Locator's background color, for when we let it be possible
+	 * private static final String DEFAULT_MAP_OVERVIEW_BACK_COLOR_KEY_NAME = "DefaultMapOverViewBackColor";
+	 */
+	private static final double DEFAULT_ZOOM_IN_FACTOR = 2.0;
+	private static final double DEFAULT_ZOOM_OUT_FACTOR = 0.5;
+	private static final Color FACTORY_DEFAULT_SELECTION_COLOR = Color.YELLOW;
+	private static final Color FACTORY_DEFAULT_VIEW_BACK_COLOR = Color.WHITE;
+	/*
+	 * Locator's background color, for when we let it be possible
+	 * private static final Color FACTORY_DEFAULT_MAP_OVERVIEW_BACK_COLOR = Color.WHITE;
+	 */
+
+	private static String[] unitsNames = null;
+
+	private static int FACTORY_DEFAULT_MAP_UNITS;
+	private static int FACTORY_DEFAULT_DISTANCE_UNITS;
+	private static int FACTORY_DEFAULT_DISTANCE_AREA;
+
+	private JTextField txtZoomInFactor;
+	private JTextField txtZoomOutFactor;
+	protected static String id = ViewPage.class.getName();
+	private ImageIcon icon;
+	private JLabel lblDefaultProjection;
+	private JButton btnChangeProjection;
+	private String fontName;
+	private JCheckBox chkInvisibleNewLayers;
+	private JCheckBox chkKeepScaleOnResizing;
+	private ColorChooserPanel jccDefaultSelectionColor;
+	private ColorChooserPanel jccDefaultViewBackColor;
+	private JComboBox jCmbMapUnits;
+	private JComboBox jCmbDistanceUnits;
+	private JComboBox jCmbDistanceArea;
+	
+	CRSSelectPanel jPanelProj = null;
+	
+	
+	/*
+	 * Locator's background color, for when we let it be possible
+	 * private ColorChooserPanel jccDefaultMapOverViewBackColor;
+	 */
+
+	{
+		Enumeration keys = UIManager.getDefaults().keys();
+		while (keys.hasMoreElements()) {
+			Object key = keys.nextElement();
+			Object value = UIManager.get (key);
+			if (value instanceof FontUIResource) {
+				FontUIResource fur = (FontUIResource) value;
+				fontName = fur.getFontName();
+
+			}
+		}
+
+		String[] unitNames = MapContext.getDistanceNames();
+		for (int i = 0; i < unitNames.length; i++) {
+			if (unitNames[i].equals("Metros")) {
+				FACTORY_DEFAULT_DISTANCE_UNITS = i;
+				FACTORY_DEFAULT_DISTANCE_AREA = i;
+				FACTORY_DEFAULT_MAP_UNITS = i;
+				break;
+			}
+		}
+
+	}
+
+	/**
+	 * Creates a new panel containing View preferences settings.
+	 *
+	 */
+	public ViewPage() {
+		super();
+
+		icon = PluginServices.getIconTheme().get("vista-icono");
+
+		// default projection
+		lblDefaultProjection = new JLabel();
+		lblDefaultProjection.setFont(new java.awt.Font(
+			fontName, java.awt.Font.BOLD, 11));
+		btnChangeProjection = new JButton(PluginServices.getText(this, "change"));
+		btnChangeProjection.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				ISelectCrsPanel panel = CRSSelectPanel.getUIFactory().getSelectCrsPanel(
+						CRSFactory.getCRS(lblDefaultProjection.getText()), false);
+				PluginServices.getMDIManager().addWindow(panel);
+		        if (panel.isOkPressed()) {
+		        	IProjection proj = panel.getProjection();
+		        	lblDefaultProjection.setText(proj.getAbrev());
+		        }
+			}
+		});
+
+		addComponent(PluginServices.getText(this, "default_projection") + ":", lblDefaultProjection );
+		
+		IProjection proj = CRSFactory.getCRS("EPSG:23030");
+		if (PluginServices.getMainFrame() != null) {
+			proj = AddLayerDialog.getLastProjection();
+		}
+
+		jPanelProj = CRSSelectPanel.getPanel(proj);
+		jPanelProj.setTransPanelActive(true);
+		jPanelProj.setBounds(11, 400, 448, 35);
+		jPanelProj.setPreferredSize(new Dimension(448, 35));
+		jPanelProj.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				if (jPanelProj.isOkPressed()) {
+					lblDefaultProjection.setText(jPanelProj.getCurProj().getAbrev());
+				}
+			}
+		});
+		
+		
+		JPanel aux = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
+		aux.add(btnChangeProjection);
+		addComponent("", aux);
+
+		// just a separator
+		addComponent(new JLabel(" "));
+
+		// Adding Invisible New Layers
+		chkInvisibleNewLayers = new JCheckBox(
+				PluginServices.getText(this, "options.view.invisible_new_layers"));
+
+		addComponent("", chkInvisibleNewLayers);
+		chkKeepScaleOnResizing = new JCheckBox(
+				PluginServices.getText(this, "options.view.keep_scale_on_resizing"));
+		chkKeepScaleOnResizing.setEnabled(false);
+		addComponent("", chkKeepScaleOnResizing);
+
+		// just a separator
+		addComponent(new JLabel(" "));
+
+		// zoom in factor
+		addComponent(PluginServices.getText(this, "zoom_in_factor") + ":",
+			txtZoomInFactor = new JTextField("", 15));
+		// zoom out factor
+		addComponent(PluginServices.getText(this, "zoom_out_factor") + ":",
+			txtZoomOutFactor = new JTextField("", 15));
+
+		// just a separator
+		addComponent(new JLabel(" "));
+
+		// default back color chooser
+		addComponent(PluginServices.getText(this, "options.view.default_view_back_color"),
+				jccDefaultViewBackColor = new ColorChooserPanel());
+
+		/*
+		 * Locator's background color, for when we let it be possible
+		 * // default back color chooser
+		 * addComponent(PluginServices.getText(this, "options.view.default_map_overview_back_color"), jccDefaultMapOverViewBackColor = new ColorChooserPanel());
+		 */
+
+		// default selection color chooser
+		addComponent(PluginServices.getText(this, "options.view.default_selection_color"),
+				jccDefaultSelectionColor = new ColorChooserPanel());
+
+		// just a separator
+		addComponent(new JLabel(" "));
+
+		// default map units
+		addComponent(PluginServices.getText(this, "map_units"),
+				jCmbMapUnits = new JComboBox());
+
+		// default distance units
+		addComponent(PluginServices.getText(this, "distance_units"),
+				jCmbDistanceUnits = new JComboBox());
+
+		// default distance area
+		addComponent(PluginServices.getText(this, "distance_area"),
+				jCmbDistanceArea = new JComboBox());
+
+		initializeValues();
+	}
+
+	public void initializeValues() {
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+
+		// Default Projection
+		if (xml.contains(DEFAULT_PROJECTION_KEY_NAME)) {
+			lblDefaultProjection.setText(
+				xml.getStringProperty(DEFAULT_PROJECTION_KEY_NAME));
+		} else {
+			lblDefaultProjection.setText(FACTORY_DEFAULT_PROJECTION);
+		}
+		DefaultProject.setDefaultProjection( CRSFactory.getCRS(lblDefaultProjection.getText()));
+
+		// Adding invisible new layers
+		if (xml.contains(ADD_NEW_LAYERS_IN_INVISIBLE_MODE_KEY_NAME)) {
+			chkInvisibleNewLayers.setSelected(
+				xml.getBooleanProperty(ADD_NEW_LAYERS_IN_INVISIBLE_MODE_KEY_NAME));
+		}
+
+		// Keep scale on resizing
+		if (xml.contains(KEEP_SCALE_ON_RESIZING_KEY_NAME)) {
+			chkKeepScaleOnResizing.setSelected(
+				xml.getBooleanProperty(KEEP_SCALE_ON_RESIZING_KEY_NAME));
+		}
+
+		// Zoom-in factor
+		if (xml.contains(ZOOM_IN_FACTOR_KEY_NAME)) {
+			double zoomInFactor = xml.getDoubleProperty(ZOOM_IN_FACTOR_KEY_NAME);
+			txtZoomInFactor.setText(String.valueOf( zoomInFactor ));
+		} else {
+			txtZoomInFactor.setText(
+				String.valueOf( MapContext.ZOOMINFACTOR ));
+		}
+		MapContext.ZOOMINFACTOR = Double.parseDouble(txtZoomInFactor.getText());
+
+		// Zoom-out factor
+		if (xml.contains(ZOOM_OUT_FACTOR_KEY_NAME)) {
+			double zoomOutFactor = xml.getDoubleProperty(ZOOM_OUT_FACTOR_KEY_NAME);
+			txtZoomOutFactor.setText(String.valueOf( zoomOutFactor ));
+		} else {
+			txtZoomOutFactor.setText(
+				String.valueOf( MapContext.ZOOMOUTFACTOR ));
+		}
+		MapContext.ZOOMOUTFACTOR = Double.parseDouble(txtZoomOutFactor.getText());;
+
+		// Default back color
+		jccDefaultViewBackColor.setColor(DefaultViewPanel.getDefaultBackColor());
+		jccDefaultViewBackColor.setAlpha(255);
+		/*
+		 * Locator's background color, for when we let it be possible
+		 * // Default map overview back color
+		 * jccDefaultMapOverViewBackColor.setColor(Project.getDefaultMapOverViewBackColor());
+		 * jccDefaultMapOverViewBackColor.setAlpha(255);
+		 */
+
+		// Default selection color
+		jccDefaultSelectionColor.setColor(DefaultProject.getDefaultSelectionColor());
+		jccDefaultSelectionColor.setAlpha(255);
+		String[] distanceNames=MapContext.getDistanceNames();
+		// Map units
+		if (DefaultProject.getDefaultMapUnits()<=distanceNames.length && distanceNames.length != jCmbMapUnits.getItemCount()){
+			((DefaultComboBoxModel)jCmbMapUnits.getModel()).removeAllElements();
+			//			 default map units
+			for (int i = 0; i < distanceNames.length; i++) {
+				((DefaultComboBoxModel)jCmbMapUnits.getModel()).addElement(PluginServices.getText(this,distanceNames[i]));
+			}
+			jCmbMapUnits.setSelectedIndex(DefaultProject.getDefaultMapUnits());
+		}
+
+		// Distance units
+		if (DefaultProject.getDefaultDistanceUnits()<=distanceNames.length&& distanceNames.length != jCmbDistanceUnits.getItemCount()){
+			((DefaultComboBoxModel)jCmbDistanceUnits.getModel()).removeAllElements();
+			// default distance units
+			for (int i = 0; i < distanceNames.length; i++) {
+				((DefaultComboBoxModel)jCmbDistanceUnits.getModel()).addElement(PluginServices.getText(this,distanceNames[i]));
+			}
+			jCmbDistanceUnits.setSelectedIndex(DefaultProject.getDefaultDistanceUnits());
+		}
+		String[] names=MapContext.getAreaNames();
+
+		// Distance area
+		if (DefaultProject.getDefaultDistanceArea()<=names.length && names.length != jCmbDistanceArea.getItemCount()){
+			((DefaultComboBoxModel)jCmbDistanceArea.getModel()).removeAllElements();
+			for (int i = 0; i < names.length; i++) {
+				((DefaultComboBoxModel)jCmbDistanceArea.getModel()).addElement(PluginServices.getText(this,names[i])+MapContext.getOfLinear(i));
+			}
+			jCmbDistanceArea.setSelectedIndex(DefaultProject.getDefaultDistanceArea());
+		}
+	}
+
+	public String getID() {
+		return id;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this, "Vista");
+	}
+
+	public JPanel getPanel() {
+		return this;
+	}
+
+	public void storeValues() throws StoreException {
+		String projName = lblDefaultProjection.getText();
+		double zif=1;
+		double zof=1;
+		boolean invisibleNewLayers, keepScaleOnResize;
+		Color selectionColor, viewBackColor;
+		/*
+		 * Locator's background color, for when we let it be possible
+		 * Color mapOverViewBackColor;
+		 */
+
+		try {
+//			try {
+				zif=Double.parseDouble(txtZoomInFactor.getText());
+				zof=Double.parseDouble(txtZoomOutFactor.getText());
+				if (zif==0 || zof==0) {
+					throw new NumberFormatException();
+				}
+//			}catch (NumberFormatException e) {
+//				//JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"numero_incorrecto")+" = "+ txtZoomInFactor.getText()+ ", "+txtZoomOutFactor.getText());
+//				throw new StoreException(PluginServices.getText(this,"numero_incorrecto")+" = "+ txtZoomInFactor.getText()+ ", "+txtZoomOutFactor.getText());
+//			}
+			DefaultProject.setDefaultProjection( CRSFactory.getCRS(projName));
+
+			selectionColor = jccDefaultSelectionColor.getColor();
+			DefaultProject.setDefaultSelectionColor( selectionColor );
+
+			viewBackColor = jccDefaultViewBackColor.getColor();
+			DefaultViewPanel.setDefaultBackColor( viewBackColor );
+			/*
+			 * Locator's background color, for when we let it be possible
+			 * mapOverViewBackColor = jccDefaultMapOverViewBackColor.getColor();
+			 * View.setDefaultMapOverViewBackColor( mapOverViewBackColor );
+			 */
+
+			DefaultProject.setDefaultMapUnits(jCmbMapUnits.getSelectedIndex());
+			DefaultProject.setDefaultDistanceUnits(jCmbDistanceUnits.getSelectedIndex());
+			DefaultProject.setDefaultDistanceArea(jCmbDistanceArea.getSelectedIndex());
+			invisibleNewLayers = chkInvisibleNewLayers.isSelected();
+			keepScaleOnResize = chkKeepScaleOnResizing.isSelected();
+		} catch (Exception e) {
+			throw new StoreException(PluginServices.getText(this,"factor_zoom_incorrecto"));
+		}
+		MapContext.ZOOMINFACTOR=zif;
+		MapContext.ZOOMOUTFACTOR=zof;
+		// MapControl.setScalingOnResize(!keepScaleOnResize);
+
+		PluginServices ps = PluginServices.getPluginServices(this);
+		XMLEntity xml = ps.getPersistentXML();
+		xml.putProperty(DEFAULT_PROJECTION_KEY_NAME, projName);
+		xml.putProperty(ZOOM_IN_FACTOR_KEY_NAME, zif);
+		xml.putProperty(ZOOM_OUT_FACTOR_KEY_NAME, zof);
+		xml.putProperty(ADD_NEW_LAYERS_IN_INVISIBLE_MODE_KEY_NAME, invisibleNewLayers);
+		xml.putProperty(KEEP_SCALE_ON_RESIZING_KEY_NAME, keepScaleOnResize);
+		xml.putProperty(DEFAULT_VIEW_BACK_COLOR_KEY_NAME, StringUtilities.color2String(viewBackColor));
+		/*
+		 * Locator's background color, for when we let it be possible
+		 * xml.putProperty(DEFAULT_MAP_OVERVIEW_BACK_COLOR_KEY_NAME, StringUtilities.color2String(mapOverViewBackColor));
+		 */
+		xml.putProperty(DEFAULT_SELECTION_COLOR_KEY_NAME, StringUtilities.color2String(selectionColor));
+		xml.putProperty(DEFAULT_MAP_UNITS_KEY_NAME, jCmbMapUnits.getSelectedIndex());
+		xml.putProperty(DEFAULT_DISTANCE_UNITS_KEY_NAME, jCmbDistanceUnits.getSelectedIndex());
+		xml.putProperty(DEFAULT_DISTANCE_AREA_KEY_NAME, jCmbDistanceArea.getSelectedIndex());
+	}
+
+
+	public void initializeDefaults() {
+		lblDefaultProjection.setText(FACTORY_DEFAULT_PROJECTION);
+		txtZoomInFactor.setText(String.valueOf(DEFAULT_ZOOM_IN_FACTOR));
+		txtZoomOutFactor.setText(String.valueOf(DEFAULT_ZOOM_OUT_FACTOR));
+		chkInvisibleNewLayers.setSelected(false);
+		chkKeepScaleOnResizing.setSelected(false);
+		jccDefaultViewBackColor.setColor(FACTORY_DEFAULT_VIEW_BACK_COLOR);
+		/*
+		 * Locator's background color, for when we let it be possible
+		 * jccDefaultMapOverViewBackColor.setColor(FACTORY_DEFAULT_VIEW_BACK_COLOR);
+		 */
+		jccDefaultSelectionColor.setColor(FACTORY_DEFAULT_SELECTION_COLOR);
+		jCmbMapUnits.setSelectedIndex(FACTORY_DEFAULT_MAP_UNITS);
+		jCmbDistanceUnits.setSelectedIndex(FACTORY_DEFAULT_DISTANCE_UNITS);
+		jCmbDistanceArea.setSelectedIndex(FACTORY_DEFAULT_DISTANCE_AREA);
+
+	}
+
+	public ImageIcon getIcon() {
+		return icon;
+	}
+
+	public boolean isValueChanged() {
+		return super.hasChanged();
+	}
+
+	public void setChangesApplied() {
+		setChanged(false);
+	}
+
+
+//	private String[] getUnitsNames() {
+//		if (unitsNames == null) {
+//			String[] names=MapContext.getDistanceNames();
+//			unitsNames = new String[names.length];
+//			for (int i=0;i<names.length;i++) {
+//				unitsNames[i]=PluginServices.getText(this, names[i]);
+//			}
+//		}
+//		return unitsNames;
+//	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/preferencespage/ViewPage.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/WizardPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/WizardPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/WizardPanel.java	(revision 38262)
@@ -0,0 +1,167 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.app.gui;
+
+import java.awt.Window;
+
+import javax.swing.JPanel;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.gui.wizards.WizardListener;
+import org.gvsig.app.gui.wizards.WizardListenerSupport;
+import org.gvsig.app.prepareAction.PrepareContextView;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.MapContextManager;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class WizardPanel extends JPanel {
+
+	private static final Logger logger = LoggerFactory.getLogger(WizardPanel.class);
+    private static final long serialVersionUID = 5317749209668850863L;
+    private String tabName = "TabName";
+    private MapControl mapCtrl = null;
+    private WizardListenerSupport listenerSupport = new WizardListenerSupport();
+
+    public void addWizardListener(WizardListener listener) {
+        listenerSupport.addWizardListener(listener);
+    }
+
+    public void callError(Exception descripcion) {
+        listenerSupport.callError(descripcion);
+    }
+
+    public void removeWizardListener(WizardListener listener) {
+        listenerSupport.removeWizardListener(listener);
+    }
+
+    public void callStateChanged(boolean finishable) {
+        listenerSupport.callStateChanged(finishable);
+    }
+
+    protected void setTabName(String name) {
+        tabName = name;
+    }
+
+    public String getTabName() {
+        return tabName;
+    }
+
+    abstract public void initWizard();
+
+    /**
+     * @deprecated use {@link #executeWizard()} instead.
+     */
+    abstract public void execute();
+
+    /**
+     * Executes the wizard and returns anything created in the process.
+     * 
+     * @return anything created in the process
+     */
+    public Object executeWizard() {
+        execute();
+        return null;
+    }
+
+    abstract public void close();
+
+    abstract public DataStoreParameters[] getParameters();
+
+    /**
+     * You can use it to extract information from
+     * the mapControl that will receive the new layer.
+     * For example, projection to use, or visible extent.
+     * 
+     * @return Returns the mapCtrl.
+     */
+    public MapControl getMapCtrl() {
+        return mapCtrl;
+    }
+
+    /**
+     * @param mapCtrl
+     *            The mapCtrl to set.
+     */
+    public void setMapCtrl(MapControl mapCtrl) {
+        this.mapCtrl = mapCtrl;
+    }
+
+    protected void doAddLayer(final MapControl mapControl,
+        final String layerName, final DataStoreParameters parameters) {
+        final ApplicationManager application = ApplicationLocator.getManager();
+        final MapContextManager manager =
+            MapContextLocator.getMapContextManager();
+        final MapContext mapContext = mapControl.getMapContext();
+
+        logger.info("addLayer('{}','{}')", layerName, parameters.toString());
+        Thread task = new Thread(new Runnable() {
+
+            public void run() {
+                FLayer layer = null;
+                FLayer preparedLayer = null;
+                try {
+                    layer = manager.createLayer(layerName, parameters);
+                    preparedLayer =
+                        application.prepareOpenLayer(layer,
+                            new PrepareContextView() {
+
+                                public Window getOwnerWindow() {
+                                    return null;
+                                }
+
+                                public MapControl getMapControl() {
+                                    return mapControl;
+                                }
+
+								public IProjection getViewProjection() {
+									return mapControl.getProjection();
+								}
+                            });
+                    if (preparedLayer != null) {
+                        mapContext.getLayers().addLayer(preparedLayer);
+                    }
+                } catch (Exception e) {
+                    NotificationManager.addError(e);
+                    return;
+                } finally {
+                    if (preparedLayer != null && preparedLayer != layer) {
+                        preparedLayer.dispose();
+                        preparedLayer = null;
+                    }
+                    if (layer != null) {
+                        layer.dispose();
+                        layer = null;
+                    }
+                }
+            }
+        });
+        task.start();
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/WizardPanel.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorRenderer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorRenderer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorRenderer.java	(revision 38262)
@@ -0,0 +1,123 @@
+/*
+ * Created on 15-mar-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.gui.utils;
+
+import java.awt.Color;
+import java.awt.Component;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JTable;
+import javax.swing.border.Border;
+import javax.swing.table.TableCellRenderer;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author vcn
+ */
+public class ColorRenderer extends JLabel implements TableCellRenderer {
+    Border unselectedBorder = null;
+    Border selectedBorder = null;
+    boolean isBordered = true;
+
+    /**
+     * Creates a new ColorRenderer object.
+     *
+     * @param isBordered DOCUMENT ME!
+     */
+    public ColorRenderer(boolean isBordered) {
+        this.isBordered = isBordered;
+        setOpaque(true); //MUST do this for background to show up.
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param table DOCUMENT ME!
+     * @param color DOCUMENT ME!
+     * @param isSelected DOCUMENT ME!
+     * @param hasFocus DOCUMENT ME!
+     * @param row DOCUMENT ME!
+     * @param column DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public Component getTableCellRendererComponent(JTable table, Object color,
+        boolean isSelected, boolean hasFocus, int row, int column) {
+        Color newColor = (Color) color;
+        setBackground(newColor);
+
+        //JLabel boton=new JLabel("si");
+        //boton.setBackground(new Color(10,10,100));
+        //add(boton);
+        //System.out.println("dentro de Color Renderer");
+        if (isBordered) {
+            if (isSelected) {
+                if (selectedBorder == null) {
+                    selectedBorder = BorderFactory.createMatteBorder(2, 5, 2,
+                            5, table.getSelectionBackground());
+                }
+
+                setBorder(selectedBorder);
+            } else {
+                if (unselectedBorder == null) {
+                    unselectedBorder = BorderFactory.createMatteBorder(2, 5, 2,
+                            5, table.getBackground());
+                }
+
+                setBorder(unselectedBorder);
+            }
+        }
+
+      /*  setToolTipText("RGB value: " + newColor.getRed() + ", " +
+            newColor.getGreen() + ", " + newColor.getBlue());
+*/
+        return this;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorRenderer.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/FontChooser.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/FontChooser.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/FontChooser.java	(revision 38262)
@@ -0,0 +1,21 @@
+
+package org.gvsig.app.gui.utils;
+
+import java.awt.Dialog;
+import java.awt.Font;
+
+import org.jfree.ui.FontChooserDialog;
+
+
+
+public class FontChooser {
+    public static Font showDialog(String title, Font font) {
+    	
+    	FontChooserDialog dlg = new FontChooserDialog((Dialog)null,title, true,font);
+    	dlg.setVisible(true);
+    	if( dlg.isCancelled() ) {
+    		return null;
+    	}
+    	return dlg.getSelectedFont();
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/FontChooser.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorScheme.txt
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorScheme.txt	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorScheme.txt	(revision 38262)
@@ -0,0 +1,53 @@
+BuGn (ColorBrewer),range,f7fcfd,e5f5f9,ccece6,99d8c9,66c2a4,41ae76,238b45,006d2c,00441b
+BuPu (ColorBrewer),range,f7fcfd,e0ecf4,bfd3e6,9ebcda,8c96c6,8c6bb1,88419d,810f7c,4d004b
+GnBu (ColorBrewer),range,f7fcf0,e0f3db,ccebc5,a8ddb5,7bccc4,4eb3d3,2b8cbe,0868ac,084081
+OrRd (ColorBrewer),range,fff7ec,fee8c8,fdd49e,fdbb84,fc8d59,ef6548,d7301f,b30000,7f0000
+PuBu (ColorBrewer),range,fff7fb,ece7f2,d0d1e6,a6bddb,74a9cf,3690c0,0570b0,045a8d,023858
+PuBuGn (ColorBrewer),range,fff7fb,ece2f0,d0d1e6,a6bddb,67a9cf,3690c0,02818a,016c59,014636
+PuRd (ColorBrewer),range,f7f4f9,e7e1ef,d4b9da,c994c7,df65b0,e7298a,ce1256,980043,67001f
+RdPu (ColorBrewer),range,fff7f3,fde0dd,fcc5c0,fa9fb5,f768a1,dd3497,b0017e,7a0177,49006a
+YlGn (ColorBrewer),range,ffffe5,f7fcb9,d9f0a3,addd8e,78c679,41ab5d,238443,006837,004529
+YlGnBu (ColorBrewer),range,ffffd9,edf8b0,c7e9b4,7fcdbb,41b6c3,1d91c0,225ea8,253494,081d58
+YlOrBr (ColorBrewer),range,ffffe5,fff7bc,fee391,fec44f,fe9929,ec7014,cc4c02,993404,662506
+YlOrRd (ColorBrewer),range,ffffcc,ffeda0,fed976,feb24c,fd8d3c,fc4e2a,e31a1a,bd0026,b00026
+Blues (ColorBrewer),range,f7fbff,deebf7,c6dbef,9ecae1,6baed6,4292c6,2171b5,08519c,08306b
+Greens (ColorBrewer),range,f7fcf5,e5f5e0,c7e9c0,a1d99b,74c476,41ab5d,238b45,006d2c,00441b
+Greys (ColorBrewer),range,ffffff,f0f0f0,d9d9d9,bdbdbd,969696,737373,525252,252525,000000
+Oranges (ColorBrewer),range,fff5eb,fee6ce,fdd0a2,fdae6b,fd8d3c,f16913,d94801,a63603,7f2704
+Purples (ColorBrewer),range,fcfbfd,efedf5,dadaeb,bbbddc,9e9ac8,807dba,6a51a3,54278f,3f007d
+Reds (ColorBrewer),range,fff5f0,fee0d2,fcbba1,fc9272,fb6a4a,ef3b2c,cb181d,a50f15,67000d
+BrBG (ColorBrewer),range,543005,8c510a,bf812d,dfc27d,f6e8c3,f5f5f5,c7eae5,80cdc1,35978f,01665e,003c30
+PRGn (ColorBrewer),range,40004b,762a83,9970ab,c2a5cf,e7d4e8,f7f7f7,d9f0d3,a8d8b7,5aae61,1b7837,00441b
+PiYG (ColorBrewer),range,8e0152,c51b7d,de77ae,f1b6da,fde0ef,f7f7f7,e6f5d0,b8e186,7fbc41,4d9221,276419
+PuOr (ColorBrewer),range,7f3b08,b35806,e08214,fdb863,fee0b6,f7f7f7,d8daeb,b2abd2,8073ac,542788,2d004b
+RYB (ColorBrewer),range,a50026,d73027,f46d43,fdae61,fee090,ffffbf,e0f3f8,abd9e9,74add1,4575b4,313695
+RYG (ColorBrewer),range,a50026,d73027,f46d43,fdae61,fee08b,ffffbf,d9ef8b,a6d96a,66bd63,1a9850,006837
+RdBu (ColorBrewer),range,67001f,b2182b,d6604d,f4a582,fddbc7,f7f7f7,d1e5f0,92c5de,4393c3,2166ac,053061
+RdGy (ColorBrewer),range,67001f,b2182b,d6604d,f4a582,fddbc7,ffffff,e0e0e0,bababa,878787,4d4d4d,1a1a1a
+spectral (ColorBrewer),range,9e0142,d53e4f,f46d43,fdae61,fee08b,ffffbf,e6f598,abdda4,66c2a5,3288bd,5e4fa2
+Accents (ColorBrewer),discrete,7fc97f,beaed4,fdc086,ffff99,386cb0,f0027f,bf5b17,666666
+Dark 2 (ColorBrewer),discrete,1b9e77,d95f02,7570b3,e7298a,66a61e,e6ab02,a6761d,666666
+Paired (ColorBrewer),discrete,a6cee3,1f77b4,b2df8a,33a02c,fb9a99,e31a1c,fdbf6f,ff7f00,cab2d6,6a3d9a,ffff99
+Pastel 1 (ColorBrewer),discrete,fbb3ad,b2cce2,ccebc5,decbe4,fed9a5,ffffcc,e4d7bc,fddaec,f2f2f2
+Pastel 2 (ColorBrewer),discrete,b3e2cd,fdcdac,cbd5e8,f4cae4,e6f5c9,fff2ae,f1e2cc,cccccc
+Set 1 (ColorBrewer),discrete,e31a1c,377db8,4daf4a,984ea3,ff7f00,ffff33,a65628,f781bf,999999
+Set 2 (ColorBrewer),discrete,66c2a5,fc8d62,8da0cb,e78ac3,a6d854,ffd92f,e5c494,b3b3b3
+Set 3 (ColorBrewer),discrete,8dd3c7,ffffbc,bebada,fb8072,80b1d3,fdb462,b3de69,fccde5,d9d9d9,bc80bd,ccebc5,ffed6f
+Autumn Evening (Visual Mining Inc.),discrete,993300,6B5E4F,934266,629191,93928F,485EB4,B5A689
+Azalea Garden (Visual Mining Inc.),discrete,755CB7,BABA66,255CC9,375437,007DA3,A10346,758C27
+Cool and Crisp (Visual Mining Inc.),discrete,005699,99CCCC,008B87,C2C4C6,68AEE0,00B09B,9691C7
+Crackling Rosy (Visual Mining Inc.),discrete,99007E,BE99CC,9600A7,C6C2C5,E068CE,6C00B0,C7919A
+Earthy (Visual Mining Inc.),discrete,999966,213321,C3C3E6,333366,DACE98,AA0036,291441
+Expanded Earth Tones (Visual Mining Inc.),discrete,284B53,005699,B8BC9C,271651,AA0036,ECF0B9,999966,333366,C3C3E6,594330,A0BDC4,005699,999966,213321,DACE98
+Festival (Visual Mining Inc.),discrete,CC33CC,FFFF66,62449B,FF9933,999933,FFFFCC,B31646
+Garden Party (Visual Mining Inc.),discrete,FFCC33,33FFCC,9999FF,FF6600,00008B,CC9900,8B0000
+Gold Amber (Visual Mining Inc.),discrete,998300,CCAE99,A76100,C6C6C2,E0CB68,B03400,ABC791
+Lilies and Chrysanthemums (Visual Mining Inc.),discrete,D6B8D9,7D0440,CCD29C,CD672F,8F7DA0,E9E497,A9A67E,D8D7F1,5C776B,5C1F4D
+Moon Lake (Visual Mining Inc.),discrete,E3D782,C7555A,7D1242,51779C,82CBD9,1A2A67,BCCCC1
+Post-Modern (Visual Mining Inc.),discrete,ECEFB8,576728,FFEFCF,386AB3,E2EBF0,C77640,E9ECD9,284B53
+Rose and Jade (Visual Mining Inc.),discrete,D6B8D9,C7D38E,93785F,CBAC9F,EB769A,A74F78
+Soft and Warm (Visual Mining Inc.),discrete,FFF4D6,D7BAD6,A1BBEE,C0C1A1,F0CBAE,958F91,BFA9AC,DBCE99,C8C8C8
+Sophisticated Shades (Visual Mining Inc.),discrete,6C5D94,999966,315394,213321,00566F,690931,515F23
+Summer Smoothie (Visual Mining Inc.),discrete,EBF0F3,5E8109,F7BB83,B55290,1A4C8F,00AB9C,758EC5
+Super-Chill (Visual Mining Inc.),discrete,01559B,68FCFF,008AA7,BAC2CF,49B3FF,00B09B,6A59FF
+Swimming Pool (Visual Mining Inc.),discrete,AC0000,E76C42,99CC99,CC3300,C6FCFB,64BCB7,2F3293,FF6666,339276
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/gui/utils/ColorScheme.txt
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/addlayer/AddLayerDialog.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/addlayer/AddLayerDialog.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/addlayer/AddLayerDialog.java	(revision 38262)
@@ -0,0 +1,246 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+package org.gvsig.app.addlayer;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.gui.WizardPanel;
+import org.gvsig.app.gui.wizards.WizardListener;
+import org.gvsig.app.project.DefaultProject;
+import org.gvsig.gui.beans.AcceptCancelPanel;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dispose.Disposable;
+
+/**
+ * Frame del cuadro de dialogo que contendra los tabs de aperturas de ficheros
+ *
+ * @version 04/09/2007
+ * @author BorSanZa - Borja S�nchez Zamorano (borja.sanchez@iver.es)
+ */
+public class AddLayerDialog extends JPanel implements org.gvsig.andami.ui.mdiManager.IWindow , Disposable{
+	static private IProjection proj           = null;
+	private JTabbedPane        jTabbedPane    = null;
+	private AcceptCancelPanel  jPanel         = null;
+	private boolean            accepted       = false;
+	private String             title          = PluginServices.getText(this, "add_layer");
+	private WizardListener     wizardListener = new DialogWizardListener();
+
+	/**
+   * Creates a new FOpenDialog object.
+   * @param view Vista que vamos a refrescar
+   * @param mapControl MapControl que recibe la capa (te puede interesar
+   *          a�adirla al principal o al Overview.
+   */
+	public AddLayerDialog() {
+		initialize();
+	}
+
+	/**
+	 * Constructor con un nombre de Frame
+	 * @param title
+	 */
+	public AddLayerDialog(String title) {
+		this.title = title;
+		initialize();
+	}
+
+	/**
+   * This method initializes this
+   */
+	private void initialize() {
+		ToolsLocator.getDisposableManager().bind(this);
+		
+		this.setLayout(new BorderLayout());
+		this.setSize(523, 385);
+		this.setPreferredSize(new Dimension(523, 385));
+		this.add(getJTabbedPane(), BorderLayout.CENTER);
+		this.add(getJPanel(), BorderLayout.SOUTH);
+	}
+
+	/**
+   * This method initializes jTabbedPane
+   * @return javax.swing.JTabbedPane
+   */
+	private JTabbedPane getJTabbedPane() {
+		if (jTabbedPane == null) {
+			jTabbedPane = new JTabbedPane();
+			jTabbedPane.setBounds(0, 0, getWindowInfo().getWidth() - 10, getWindowInfo().getHeight() - 10);
+			jTabbedPane.addChangeListener(new ChangeListener() {
+				public void stateChanged(ChangeEvent e) {
+					JTabbedPane tabs = (JTabbedPane) e.getSource();
+//					getJPanel().setOkButtonEnabled(!(tabs.getSelectedComponent() instanceof WizardPanel));
+				}
+			});
+		}
+
+		return jTabbedPane;
+	}
+
+	/**
+	 * A�ade en una pesta�a un Jpanel con un titulo
+	 * @param title
+	 * @param panel
+	 */
+	public void addTab(String title, JPanel panel) {
+		getJTabbedPane().addTab(title, panel);
+	}
+
+	/**
+	 * A�ade en una pesta�a un WizardPanel con un titulo
+	 * @param title
+	 * @param panel
+	 */
+	public void addWizardTab(String title, WizardPanel panel) {
+		panel.addWizardListener(wizardListener);
+		getJTabbedPane().addTab(title, panel);
+	}
+
+	/**
+	 * Devuelve el JPanel seleccionado en las pesta�as
+	 * @return
+	 */
+	public JPanel getSelectedTab() {
+		return (JPanel) getJTabbedPane().getSelectedComponent();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.andami.ui.mdiManager.IWindow#getWindowInfo()
+	 */
+	public WindowInfo getWindowInfo() {
+		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
+		m_viewinfo.setTitle(this.title);
+		m_viewinfo.setHeight(500);
+		m_viewinfo.setWidth(520);
+		return m_viewinfo;
+	}
+
+	/**
+   * This method initializes jPanel
+   * @return javax.swing.JPanel
+   */
+	private AcceptCancelPanel getJPanel() {
+		if (jPanel == null) {
+			ActionListener okAction = new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					accepted = true;
+					closeWindow();
+				}
+			};
+			ActionListener cancelAction = new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					closeWindow();
+				}
+			};
+			jPanel = new AcceptCancelPanel(okAction, cancelAction);
+		}
+		return jPanel;
+	}
+
+	/**
+	 * @return
+	 */
+	public boolean isAccepted() {
+		return accepted;
+	}
+
+	/**
+	 * Listener para el Wizard de apertura de fichero
+	 * @version 05/09/2007
+	 * @author BorSanZa - Borja S�nchez Zamorano (borja.sanchez@iver.es)
+	 */
+	public class DialogWizardListener implements WizardListener {
+		/*
+		 * (non-Javadoc)
+		 * @see com.iver.cit.gvsig.gui.wizards.WizardListener#error(java.lang.Exception)
+		 */
+		public void error(Exception e) {}
+
+		/*
+		 * (non-Javadoc)
+		 * @see com.iver.cit.gvsig.gui.wizards.WizardListener#wizardStateChanged(boolean)
+		 */
+		public void wizardStateChanged(boolean finishable) {
+			getJPanel().setOkButtonEnabled(finishable);
+		}
+	}
+
+	/**
+	 * Devuelve la ultima proyecci�n usada
+	 * @return
+	 */
+	public static IProjection getLastProjection() {
+		if (proj == null) {
+			proj = DefaultProject.getDefaultProjection();
+		}
+		return proj;
+	}
+
+	/**
+	 * Define la ultima proyeccion
+	 * @param proj
+	 */
+	public static void setLastProjection(IProjection proj) {
+		AddLayerDialog.proj = proj;
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+
+	private void closeWindow() {
+//		JTabbedPane tabbed = getJTabbedPane();
+//		for (int i = 0; i < tabbed.getTabCount(); i++) {
+//			Component component = tabbed.getComponentAt(i);
+//			if (component instanceof WizardPanel) {
+//				((WizardPanel) component).close();
+//			}
+//		}
+		if (PluginServices.getMainFrame() == null) {
+			((JDialog) (getParent().getParent().getParent().getParent())).dispose();
+		} else {
+			PluginServices.getMDIManager().closeWindow(AddLayerDialog.this);
+		}
+	}
+
+	public void dispose() {
+		JTabbedPane tabbed = getJTabbedPane();
+		for (int i = 0; i < tabbed.getTabCount(); i++) {
+			Component component = tabbed.getComponentAt(i);
+			if (component instanceof WizardPanel) {
+				((WizardPanel) component).close();
+			}
+		}
+		ToolsLocator.getDisposableManager().release(this);
+	}
+	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/addlayer/AddLayerDialog.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/AppgvSIGDefaultImplLibrary.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/AppgvSIGDefaultImplLibrary.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/AppgvSIGDefaultImplLibrary.java	(revision 38262)
@@ -0,0 +1,58 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 {DiSiD Technologies}  {{Task}}
+ */
+package org.gvsig.app.imp;
+
+import org.gvsig.app.ApplicationLibrary;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.installer.lib.api.InstallerLibrary;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+
+/**
+ * Registers the default implementation for the AppGvSigManager.
+ * @author <a href="mailto:cordinyana@gvsig.org">C�sar Ordi�ana</a>
+ */
+public class AppgvSIGDefaultImplLibrary extends AbstractLibrary {
+
+    @Override
+    public void doRegistration() {
+        registerAsImplementationOf(ApplicationLibrary.class);
+        require(InstallerLibrary.class);
+    }
+
+	@Override
+	protected void doInitialize() throws LibraryException {
+		ApplicationLocator
+				.registerDefaultAppgvSIGManager(DefaultAppgvSIGManager.class);
+	}
+
+	@Override
+	protected void doPostInitialize() throws LibraryException {
+		// do nothing
+	}
+
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultPreferencesNode.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultPreferencesNode.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultPreferencesNode.java	(revision 38262)
@@ -0,0 +1,197 @@
+package org.gvsig.app.imp;
+
+import java.awt.Color;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.PreferencesNode;
+import org.gvsig.utils.StringUtilities;
+import org.gvsig.utils.XMLEntity;
+
+public class DefaultPreferencesNode implements PreferencesNode {
+
+	private String name;
+	private XMLEntity node;
+	
+	public DefaultPreferencesNode() {
+		this.name = null;
+	}
+	
+	public DefaultPreferencesNode(String nodeName) {
+		this.name = nodeName;
+	}
+	
+	protected XMLEntity getRootNode() {
+		XMLEntity node = PluginServices.getPluginServices("org.gvsig.app")	.getPersistentXML();
+		return node;
+	}
+	
+	protected XMLEntity getNode() {
+		if( this.node == null ) {
+			if( this.name == null ) {
+				this.node = this.getRootNode();
+			} else {
+		        this.node = this.getRootNode().firstChild(this.name);		
+			}
+		}
+        return this.node;
+	}
+	
+	public String name() {
+		return this.name;
+	}
+
+	public String[] keys() throws Exception {
+		XMLEntity node = this.getNode();
+		int count = node.getChildrenCount();
+		String[] keys = new String[count];
+		for(int  i=0 ; i<count ; i++ ) {
+			keys[i] = node.getChild(i).getName();
+		}
+		return keys;
+	}
+
+	public void clear() throws Exception {
+		XMLEntity node = this.getNode();
+		node.removeAllChildren();
+	}
+
+	public void flush() throws Exception {
+		// do nothing
+	}
+
+	public String get(String name, String defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		String value = node.getStringProperty(name);
+		return value;
+	}
+
+	public boolean getBoolean(String name, boolean defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		boolean value = node.getBooleanProperty(name);
+		return value;
+	}
+
+	public byte[] getByteArray(String name, byte[] defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		byte[] value = node.getByteArrayProperty(name);
+		return value;
+	}
+
+	public double getDouble(String name, double defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		double value = node.getDoubleProperty(name);
+		return value;
+	}
+
+	public float getFloat(String name, float defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		float value = node.getFloatProperty(name);
+		return value;
+	}
+
+	public int getInt(String name, int defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		int value = node.getIntProperty(name);
+		return value;
+	}
+
+	public long getLong(String name, long defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		long value = node.getLongProperty(name);
+		return value;
+	}
+
+	public Color getColor(String name, Color defaultValue) {
+		XMLEntity node = this.getNode();
+		
+		if (!node.contains(name)) {
+			return defaultValue;
+		}
+		String value = node.getStringProperty(name);
+		return  StringUtilities.string2Color(value);
+	}
+
+	public void put(String name, String value) {
+		XMLEntity node = this.getNode();
+		
+		node.putProperty(name, value);
+	}
+
+	public void putBoolean(String name, boolean value) {
+		XMLEntity node = this.getNode();
+		
+		node.putProperty(name, value);
+	}
+
+	public void putByteArray(String name, byte[] value) {
+		XMLEntity node = this.getNode();
+		
+		node.putProperty(name, value);
+	}
+
+	public void putDouble(String name, double value) {
+		XMLEntity node = this.getNode();
+		
+		node.putProperty(name, value);
+	}
+
+	public void putFloat(String name, float value) {
+		XMLEntity node = this.getNode();
+		
+		node.putProperty(name, value);
+	}
+
+	public void putInt(String name, int value) {
+		XMLEntity node = this.getNode();
+		
+		node.putProperty(name, value);
+	}
+
+	public void putLong(String name, long value) {
+		XMLEntity node = this.getNode();
+		
+		node.putProperty(name, value);
+	}
+
+	public void remove(String name) {
+		XMLEntity node = this.getNode();
+
+		if (!node.contains(name)) {
+			return;
+		}
+		node.remove(name);
+	}
+
+	public void sync() throws Exception {
+		// do nothing
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultPreferencesNode.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultAppgvSIGManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultAppgvSIGManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultAppgvSIGManager.java	(revision 38262)
@@ -0,0 +1,445 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+/**
+ *
+ */
+package org.gvsig.app.imp;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+
+import org.cresques.cts.IProjection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.about.AboutLocator;
+import org.gvsig.about.AboutManager;
+import org.gvsig.andami.Launcher;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.iconthemes.IconThemeManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.MDIManager;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.PreferencesNode;
+import org.gvsig.app.extension.Version;
+import org.gvsig.app.gui.WizardPanel;
+import org.gvsig.app.prepareAction.PrepareContext;
+import org.gvsig.app.prepareAction.PrepareContextView;
+import org.gvsig.app.prepareAction.PrepareDataStore;
+import org.gvsig.app.prepareAction.PrepareDataStoreParameters;
+import org.gvsig.app.prepareAction.PrepareLayer;
+import org.gvsig.app.project.DefaultProject;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.gui.IDocumentWindow;
+import org.gvsig.fmap.crs.CRSFactory;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataStore;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.MapContextManager;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.gui.IColorTablesFactory;
+import org.gvsig.symbology.swing.SymbologySwingLocator;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.DataTypesManager;
+import org.gvsig.tools.dispose.DisposableManager;
+import org.gvsig.tools.dynobject.DynObjectManager;
+import org.gvsig.tools.extensionpoint.ExtensionPoint;
+import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+
+
+
+/**
+ * @author jmvivo
+ *
+ */
+public class DefaultAppgvSIGManager implements ApplicationManager {
+
+    private static Logger logger = LoggerFactory.getLogger(DefaultAppgvSIGManager.class);
+	private static final String EPNAME_PREPARE_OPEN_DATASTORE = "org.gvsig.datastore.open.prepare"; //"PrepareOpenDataStore";
+	private static final String EPNAME_PREPARE_OPEN_DATASTOREPARAMETERS = "org.gvsig.datastoreparameters.open.prepare"; //"PrepareOpenDataStoreParameters";
+	private static final String EPNAME_PREPARE_OPEN_LAYER = "org.gvsig.layer.open.prepare"; // "PrepareOpenLayer";
+
+	private static final String EPNAME_ADD_TABLE_WIZARD = "AddLayerWizard";
+
+	private ExtensionPointManager epManager;
+
+    private Version version;
+
+	public DefaultAppgvSIGManager() {
+		epManager = ToolsLocator.getExtensionPointManager();
+		epManager.add(EPNAME_PREPARE_OPEN_DATASTORE,
+				"Actions to do when open a DataStore");
+		epManager.add(EPNAME_PREPARE_OPEN_DATASTOREPARAMETERS,
+				"Actions to do before open a DataStore with parameters");
+		epManager.add(EPNAME_PREPARE_OPEN_LAYER,
+			"Actions to do after create a Layer");
+		epManager.add(EPNAME_ADD_TABLE_WIZARD,
+				"Wizards to add new document table");
+
+        version = new Version();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.appGvSigManager#pepareOpenDataSource(org.gvsig.fmap.dal.DataStore)
+	 */
+	@SuppressWarnings("unchecked")
+	public DataStore pepareOpenDataSource(DataStore store,
+			PrepareContext context) throws Exception {
+		ExtensionPoint ep = epManager.get(EPNAME_PREPARE_OPEN_DATASTORE);
+		if (ep.getCount() == 0) {
+			return store;
+		}
+		DataStore result = store;
+		Iterator<ExtensionPoint.Extension> iter = ep.iterator();
+		PrepareDataStore prepare;
+		while (iter.hasNext()) {
+			prepare = (PrepareDataStore) iter.next().create();
+			result = prepare.prepare(store, context);
+		}
+		return result;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.appGvSigManager#prepareOpenDataStoreParameters(org.gvsig.fmap.dal.DataStoreParameters)
+	 */
+	@SuppressWarnings("unchecked")
+	public DataStoreParameters prepareOpenDataStoreParameters(
+			DataStoreParameters storeParameters, PrepareContext context)
+			throws Exception {
+
+		ExtensionPoint ep = epManager
+				.get(EPNAME_PREPARE_OPEN_DATASTOREPARAMETERS);
+		if (ep.getCount() == 0) {
+			return storeParameters;
+		}
+		DataStoreParameters result = storeParameters;
+		Iterator<ExtensionPoint.Extension> iter = ep.iterator();
+		PrepareDataStoreParameters prepare;
+		while (iter.hasNext()) {
+			prepare = (PrepareDataStoreParameters) iter.next().create();
+			result = prepare.prepare(storeParameters, context);
+		}
+
+		return result;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.app.ApplicationManager#prepareOpenDataStoreParameters(java.util.List, org.gvsig.app.prepareAction.PrepareContext)
+	 */
+	@SuppressWarnings("unchecked")
+	public List<DataStoreParameters> prepareOpenDataStoreParameters(
+			List<DataStoreParameters> storeParameters, PrepareContext context)
+			throws Exception {
+
+		ExtensionPoint ep = epManager
+				.get(EPNAME_PREPARE_OPEN_DATASTOREPARAMETERS);
+		if (ep.getCount() == 0) {
+			return storeParameters;
+		}
+		
+		List<DataStoreParameters> result = new ArrayList<DataStoreParameters>();
+		
+		Iterator<ExtensionPoint.Extension> iter = ep.iterator();
+		List<PrepareDataStoreParameters> prepareList = new ArrayList<PrepareDataStoreParameters>();
+		while (iter.hasNext()) {
+			prepareList.add((PrepareDataStoreParameters) iter.next().create());
+		}
+		
+		for (int i = 0; i < storeParameters.size(); i++) {
+			DataStoreParameters param = storeParameters.get(i);
+			for (int j = 0; j < prepareList.size(); j++) {
+				prepareList.get(j).pre(param, context);
+			}
+		}
+		
+		for (int i = 0; i < storeParameters.size(); i++) {
+			DataStoreParameters param = storeParameters.get(i);
+			if(param != null) {
+				for (int j = 0; j < prepareList.size(); j++) {
+					param = prepareList.get(j).prepare(param, context);
+					if(param == null)
+						break;
+				}
+				if(param != null)
+					result.add(param);
+			}
+		}
+		
+		for (int i = 0; i < storeParameters.size(); i++) {
+			DataStoreParameters param = storeParameters.get(i);
+			for (int j = 0; j < prepareList.size(); j++) {
+				prepareList.get(j).post(param, context);
+			}
+		}
+
+		return result;
+	}
+
+	public void registerPrepareOpenDataStore(PrepareDataStore action) {
+		ExtensionPoint ep = epManager.get(EPNAME_PREPARE_OPEN_DATASTORE);
+		ep.append(action.getName(), action.getDescription(), action);
+	}
+
+	public void registerPrepareOpenDataStoreParameters(
+			PrepareDataStoreParameters action) {
+		ExtensionPoint ep = epManager
+				.get(EPNAME_PREPARE_OPEN_DATASTOREPARAMETERS);
+		ep.append(action.getName(), action.getDescription(), action);
+
+
+	}
+
+	@SuppressWarnings("unchecked")
+	public FLayer prepareOpenLayer(FLayer layer,
+			PrepareContextView context)
+			throws Exception {
+
+		ExtensionPoint ep = epManager.get(EPNAME_PREPARE_OPEN_LAYER);
+
+		if (ep.getCount() == 0) {
+			return layer;
+		}
+		FLayer result = layer;
+		Iterator<ExtensionPoint.Extension> iter = ep.iterator();
+		PrepareLayer prepare;
+		while (iter.hasNext()) {
+			prepare = (PrepareLayer) iter.next().create();
+			result = prepare.prepare(layer, context);
+		}
+
+		return result;
+
+	}
+
+	public void registerPrepareOpenLayer(PrepareLayer action) {
+		ExtensionPoint ep = epManager.get(EPNAME_PREPARE_OPEN_LAYER);
+		ep.append(action.getName(), action.getDescription(), action);
+	}
+
+	public void registerAddTableWizard(String name, String description,
+			Class<? extends WizardPanel> wpClass) {
+		ExtensionPoint ep = epManager.get(EPNAME_ADD_TABLE_WIZARD);
+		ep.append(name, description, wpClass);
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<WizardPanel> getWizardPanels() throws Exception {
+		ExtensionPoint ep = epManager.get(EPNAME_ADD_TABLE_WIZARD);
+		List<WizardPanel> result = new ArrayList<WizardPanel>();
+		Iterator<Extension> iter = ep.iterator();
+		while (iter.hasNext()) {
+			result.add((WizardPanel) iter.next().create());
+		}
+		return result;
+	}
+
+	public DataManager getDataManager() {
+		return DALLocator.getDataManager();
+	}
+
+	public GeometryManager getGeometryManager() {
+		return GeometryLocator.getGeometryManager();
+	}
+
+	public PersistenceManager getPersistenceManager() {
+		return ToolsLocator.getPersistenceManager();
+	}
+
+	public DisposableManager getDisposableManager() {
+		return ToolsLocator.getDisposableManager();
+	}
+
+	public DynObjectManager getDynObjectManager() {
+		return ToolsLocator.getDynObjectManager();
+	}
+
+	public ExtensionPointManager getExtensionPointManager() {
+		return ToolsLocator.getExtensionPointManager();
+	}
+
+	public ProjectManager getProjectManager() {
+		return ProjectManager.getInstance();
+	}
+
+	public MDIManager getUIManager() {
+		return PluginServices.getMDIManager();
+	}
+
+	public MapContextManager getMapContextManager() {
+		return MapContextLocator.getMapContextManager();
+	}
+
+	public DataTypesManager getDataTypesManager() {
+		return ToolsLocator.getDataTypesManager();
+	}
+	
+	public IProjection getCRS(String code) {
+		return CRSFactory.getCRS(code);
+	}
+
+	public IconThemeManager getIconThemeManager() {
+		return IconThemeManager.getIconThemeManager();
+	}
+
+	public String getArgument(String name) {
+		return PluginServices.getArgumentByName(name);
+	}
+
+	public String[] getArguments() {
+		return PluginServices.getArguments();
+	}
+
+	public String getFromClipboard() {
+		return PluginServices.getFromClipboard();
+	}
+
+	public void putInClipboard(String data) {
+		PluginServices.putInClipboard(data);
+	}
+
+	public Project getCurrentProject() {
+		return ProjectManager.getInstance().getCurrentProject();
+	}
+
+	public PreferencesNode getPreferences(String node) {
+		if( node.equalsIgnoreCase("project")) {
+			return DefaultProject.getPreferences();
+		}
+		return new DefaultPreferencesNode(node);
+	}
+
+	public PreferencesNode getPreferences() {
+		return new DefaultPreferencesNode();
+	}
+
+	public Version getVersion() {
+        return version;
+	}
+	
+	public AboutManager getAbout() {
+		AboutManager manager = AboutLocator.getManager();
+		return manager;
+	}
+
+	public IColorTablesFactory getColorTablesFactory() {
+		return SymbologySwingLocator.getSwingManager().getColorTablesFactory();
+	}
+
+	public void registerColorTablesFactory(IColorTablesFactory factory) {
+		SymbologySwingLocator.getSwingManager().setColorTablesFactory(factory);
+		
+	}
+
+    public IWindow getActiveWindow() {
+        try {
+            IWindow window = PluginServices.getMDIManager().getActiveWindow();
+            return window;
+        } catch (Exception ex) {
+            return null;
+        }
+    }
+
+    public Document getActiveDocument() {
+        Project project = this.getCurrentProject();
+        if( project == null ) {
+            return null;
+        }
+        return project.getActiveDocument();
+    }
+    
+    public Document getActiveDocument(String documentTypeName) {
+        Document document = this.getActiveDocument();
+        if( document!= null && document.getTypeName().equalsIgnoreCase(documentTypeName) ) {
+            return document;
+        }
+        return null;
+    }
+    
+    public Document getActiveDocument(Class<? extends Document> documentClass) {
+        Document document = this.getActiveDocument();
+        if( documentClass.isInstance(document) ) {
+            return document;
+        }
+        return null;
+    }
+    
+    public IDocumentWindow getDocumentWindow(Document document) {
+        Class<? extends IDocumentWindow> defaultDocumentClass =
+            document.getFactory().getMainWindowClass();
+        return (IDocumentWindow) this.getUIManager().getSingletonWindow(defaultDocumentClass, document);
+    }
+
+	public String getLocaleLanguage() {
+		return Launcher.getAndamiConfig().getLocaleLanguage();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.gvsig.app.ApplicationManager#message(java.lang.String, int)
+	 */
+	public void message(String message, int message_type) {
+        
+	    String msg = message;
+	    if (message.startsWith("_")) {
+	        msg = PluginServices.getText(this, message);
+	    }
+	    switch (message_type) {
+	    
+        case JOptionPane.ERROR_MESSAGE:
+            PluginServices.getMainFrame().getStatusBar().setErrorText(msg);
+            break;
+        case JOptionPane.WARNING_MESSAGE:
+            PluginServices.getMainFrame().getStatusBar().setWarningText(msg);
+            break;
+        default:
+            try {
+                throw new IllegalArgumentException("message_type");
+            } catch (IllegalArgumentException ex) {
+                logger.info("Illegal message type in message()", ex);
+                
+            }
+        case JOptionPane.INFORMATION_MESSAGE:
+          PluginServices.getMainFrame().getStatusBar().setInfoText(msg);
+          break;
+	    
+	    }
+	    
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/imp/DefaultAppgvSIGManager.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/DefaultProject.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/DefaultProject.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/DefaultProject.java	(revision 38262)
@@ -0,0 +1,1135 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2009 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2004-2009 IVER TI
+ *   
+ */
+
+package org.gvsig.app.project;
+
+import java.awt.Color;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.text.DateFormat;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+import org.cresques.cts.IProjection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.MDIManager;
+import org.gvsig.andami.ui.mdiManager.SingletonWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.extension.Version;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.exceptions.SaveException;
+import org.gvsig.app.project.documents.gui.IDocumentWindow;
+import org.gvsig.app.project.documents.gui.ProjectWindow;
+import org.gvsig.app.project.documents.view.DefaultViewDocument;
+import org.gvsig.app.project.documents.view.ViewManager;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.Persistent;
+import org.gvsig.tools.persistence.PersistentContext;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.gvsig.utils.StringUtilities;
+
+/**
+ * Clase que representa un proyecto de gvSIG
+ * 
+ * @author 2004-2005 Fernando Gonz�lez Cort�s
+ * @author 2006-2009 Jose Manuel Vivo
+ * @author 2005- Vicente Caballero
+ * @author 2009- Joaquin del Cerro
+ * 
+ */
+
+public class DefaultProject implements Serializable, PropertyChangeListener,
+		Project {
+
+	private Logger LOG = LoggerFactory.getLogger(DefaultProject.class);
+	/**
+	 * @deprecated see ApplicationLocator.getManager().getVersion()
+	 */
+	public static String VERSION = Version.format();
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4449622027521773178L;
+
+	private static final Logger logger = LoggerFactory.getLogger(Project.class);
+
+	private static ProjectPreferences preferences = new ProjectPreferences();
+
+	/**
+	 * Index used by the generator of unique names of documents.
+	 */
+	private Map<String, Integer> nextDocumentIndexByType = new HashMap<String, Integer>();
+
+	private PropertyChangeSupport change;
+
+	private boolean modified = false;
+
+	private String name = null;
+
+	private String creationDate = null;
+
+	private String modificationDate = null;
+
+	private String owner = null;
+
+	private String comments = null;
+
+	private Color selectionColor = null;
+
+	private List<Document> documents = null;
+
+	private List<ProjectExtent> extents = null;
+
+	private IProjection projection;
+
+	/**
+	 * Creates a new Project object.
+	 */
+	DefaultProject() {
+		this.change = new PropertyChangeSupport(this);
+		this.clean();
+	}
+
+	protected void clean() {
+		this.owner = "";
+		this.comments = "";
+		this.name = PluginServices.getText(this, "untitled");
+		this.creationDate = DateFormat.getDateInstance().format(new Date());
+		this.modificationDate = this.creationDate;
+
+		this.documents = new ArrayList<Document>();
+		this.extents = new ArrayList<ProjectExtent>();
+
+		this.setSelectionColor(getPreferences().getDefaultSelectionColor());
+
+		this.projection = null; // se inicializa en el getProjection()
+	}
+
+	public static ProjectPreferences getPreferences() {
+		return preferences;
+	}
+
+	public void propertyChange(PropertyChangeEvent evt) {
+		change.firePropertyChange(evt);
+	}
+
+	public synchronized void addPropertyChangeListener(
+			PropertyChangeListener arg0) {
+		change.addPropertyChangeListener(arg0);
+	}
+
+	/**
+	 * Return the creation date of the project
+	 * 
+	 * @return
+	 */
+	public String getCreationDate() {
+		return creationDate;
+	}
+
+	protected void setCreationDate(String creationDate) {
+		this.creationDate = creationDate;
+		change.firePropertyChange("setCreationDate", null, null);
+	}
+
+    public Document createDocument(String type) {
+    	logger.info("createDocument('{}')",type);
+        return ProjectManager.getInstance().createDocument(type);
+    }
+
+    /**
+     * Return the name of the project
+     * 
+     * @return
+     */
+    public String getName() {
+        return name;
+    }
+
+	/**
+	 * Set the name of he project.
+	 * 
+	 * @param string
+	 */
+	public void setName(String name) {
+		this.name = name;
+		change.firePropertyChange("setName", null, null);
+	}
+
+	/**
+	 * Return the comments associateds with the project
+	 * 
+	 * @return comments
+	 */
+	public String getComments() {
+		return comments;
+	}
+
+	/**
+	 * Set the comments associateds with the project
+	 * 
+	 * @param comments
+	 *            as string
+	 */
+	public void setComments(String string) {
+		comments = string;
+		change.firePropertyChange("setComments", null, null);
+	}
+
+	/**
+	 * Retuen the modification date of the project.
+	 * 
+	 * @return modification date as string
+	 */
+	public String getModificationDate() {
+		return modificationDate;
+	}
+
+	protected void setModificationDate(String string) {
+		modificationDate = string;
+		change.firePropertyChange("setModificationDate", null, null);
+	}
+
+	/**
+	 * Return the author of the project,
+	 * 
+	 * @return author as string
+	 */
+	public String getOwner() {
+		return owner;
+	}
+
+	/**
+	 * Sets the author of the project
+	 * 
+	 * @param author
+	 *            name as string
+	 */
+	public void setOwner(String owner) {
+		this.owner = owner;
+		change.firePropertyChange("setOwner", null, null);
+	}
+
+	/**
+	 * Obtiene el color de selecci�n que se usar� en el proyecto
+	 * 
+	 * @return
+	 */
+	public Color getSelectionColor() {
+		if (selectionColor == null) {
+			selectionColor = getPreferences().getDefaultSelectionColor();
+		}
+		return selectionColor;
+	}
+
+	/**
+	 * Sets the selecction color
+	 * 
+	 * @param selection
+	 *            color as string
+	 */
+	public void setSelectionColor(String selectionColor) {
+		this.setSelectionColor(StringUtilities.string2Color(selectionColor));
+	}
+
+	/**
+	 * Sets the selecction color
+	 * 
+	 * @param selection
+	 *            color as Color
+	 */
+	public void setSelectionColor(Color selectionColor) {
+		this.selectionColor = selectionColor;
+		MapContext.setSelectionColor(selectionColor);
+		change.firePropertyChange("selectionColor", null, selectionColor);
+	}
+
+	public IProjection getProjection() {
+		if (projection == null) {
+			projection = getPreferences().getDefaultProjection();
+		}
+		return projection;
+	}
+
+	public void setProjection(IProjection projection) {
+		this.projection = projection;
+	}
+
+	/**
+	 * Sets the modified state of project.
+	 * 
+	 * Can't set to not modified.
+	 * 
+	 * @param modified
+	 *            as boolean
+	 */
+	public void setModified(boolean modified) {
+		this.modified = modified;
+		if (modified == false) {
+			List<Document> documents = this.getDocuments();
+			for (int i = 0; i < documents.size(); i++) {
+				documents.get(i).setModified(false);
+			}
+		}
+	}
+
+	public boolean hasChanged() {
+		// we return true if the project is not empty (until we have a better
+		// method...)
+		if ((this.getDocuments().size() != 0) || modified) {
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * Return a list of documents in the project.
+	 * 
+	 * @return documents as List of IProjectDocument
+	 */
+	public List<Document> getDocuments() {
+		return Collections.unmodifiableList(documents);
+	}
+
+	/**
+	 * Return a list with all documents of especified type.
+	 * 
+	 * @param type
+	 *            of document
+	 * 
+	 * @return List of IProjectDocument
+	 */
+	public List<Document> getDocuments(String type) {
+		List<Document> docs = new ArrayList<Document>();
+		if (type != null) {
+			for (Document document : this.documents) {
+				if (type.equalsIgnoreCase(document.getTypeName())) {
+					docs.add(document);
+				}
+			}
+		}
+		return Collections.unmodifiableList(docs);
+	}
+
+	/**
+	 * Adds a document to the project
+	 * 
+	 * @param document
+	 *            as IProjectDocument
+	 */
+	public void add(Document document) {
+        logger.info("add('{}')", document.toString());
+
+		document.addPropertyChangeListener(this);
+		document.setProject(this);
+		document.setName(this.getUniqueNameForDocument(document.getTypeName(),
+				document.getName()));
+		documents.add(document);
+		document.afterAdd();
+		this.setModified(true);
+        change.firePropertyChange("addDocument", null, document);
+	}
+
+	/**
+	 * Remove a document of the project
+	 * 
+	 * @param document
+	 *            as IProjectDocument
+	 */
+	public void remove(Document doc) {
+        logger.info("remove('{}')", doc.toString());
+		documents.remove(doc);
+		this.setModified(true);
+        change.firePropertyChange("delDocument", doc, null);
+		doc.afterRemove();
+	}
+
+	public Iterator<Document> iterator() {
+		return documents.iterator();
+	}
+
+	public boolean isEmpty() {
+		return documents.isEmpty();
+	}
+
+	/**
+	 * Return the view that contains the especified layer.
+	 * 
+	 * @param layer
+	 * 
+	 * @return name of the view that contains the layer
+	 * 
+	 * @throws RuntimeException
+	 *             Si la capa que se pasa como par�metro no se encuentra en
+	 *             ninguna vista
+	 */
+	public String getViewName(FLayer layer) {
+		List<Document> views = getDocuments(ViewManager.TYPENAME);
+		for (int v = 0; v < views.size(); v++) {
+			DefaultViewDocument pView = (DefaultViewDocument) views.get(v);
+			FLayers layers = pView.getMapContext().getLayers();
+			if (isView(layers, layer)) {
+				return pView.getName();
+			}
+		}
+
+		throw new RuntimeException(MessageFormat.format(
+				"The layer '{1}' is not in a view", layer.getName()));
+	}
+
+	private boolean isView(FLayers layers, FLayer layer) {
+		for (int i = 0; i < layers.getLayersCount(); i++) {
+			if (layers.getLayer(i) instanceof FLayers) {
+				if (isView((FLayers) layers.getLayer(i), layer)) {
+					return true;
+				}
+			}
+			if (layers.getLayer(i) == layer) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public void addExtent(ProjectExtent arg1) {
+		extents.add(arg1);
+		change.firePropertyChange("addExtent", null, null);
+	}
+
+	public ProjectExtent removeExtent(int arg0) {
+		change.firePropertyChange("delExtent", null, null);
+		return extents.remove(arg0);
+	}
+
+	public ProjectExtent[] getExtents() {
+		return (ProjectExtent[]) extents.toArray(new ProjectExtent[0]);
+	}
+
+	/**
+	 * Obtiene un documento a partir de su nombre y el nombre de registro en el
+	 * pointExtension, este �ltimo se puede obtener del
+	 * Project****Factory.registerName.
+	 * 
+	 * @param name
+	 *            Nombre del documento
+	 * @param type
+	 *            nombre de registro en el extensionPoint
+	 * 
+	 * @return Documento
+	 */
+	public Document getDocument(String name, String type) {
+		if (type != null) {
+			for (int i = 0; i < documents.size(); i++) {
+				Document document = documents.get(i);
+				if (type.equalsIgnoreCase(document.getTypeName())
+						&& name.equalsIgnoreCase(document.getName())) {
+					return document;
+				}
+			}
+		}
+		return null;
+	}
+
+	public String getUniqueNameForDocument(String type, String name) {
+		Document document = getDocument(name, type);
+		if (document == null) {
+			return name;
+		}
+
+		String newName = null;
+		int num = this.getNextDocumentIndex(type);
+		while (document != null) {
+			newName = name + " - " + num++;
+			document = getDocument(newName, type);
+		}
+		this.setNextDocumentIndex(type, num);
+		return newName;
+	}
+
+	private int getNextDocumentIndex(String type) {
+		if (nextDocumentIndexByType.get(type) == null) {
+			nextDocumentIndexByType.put(type, new Integer(1));
+			return 1;
+		}
+		return nextDocumentIndexByType.get(type).intValue();
+	}
+
+	private void setNextDocumentIndex(String type, int newIndex) {
+		if (nextDocumentIndexByType.get(type) == null) {
+			nextDocumentIndexByType.put(type, new Integer(newIndex));
+		} else {
+			nextDocumentIndexByType.put(type, new Integer(newIndex));
+		}
+	}
+
+	public void saveState(File out) throws PersistenceException {
+		FileOutputStream fout;
+		try {
+			fout = new FileOutputStream(out);
+			saveState(fout, new File(out.getParent()));
+		} catch (FileNotFoundException e) {
+			throw new PersistenceException(e);
+		}
+	}
+
+	public void saveState(OutputStream out) throws PersistenceException {
+		saveState(out, null);
+	}
+
+	public void saveState(OutputStream out, File rootFolder)
+			throws PersistenceException {
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+		PersistentState state = null;
+		state = manager.getState(this, true);
+		try {
+			if (rootFolder != null) {
+				relativizeFiles(state, rootFolder);
+			}
+		} catch (Exception ex) {
+			state.getContext().addError(ex);
+		}
+		manager.saveState(state, out);
+		if (state.getContext().getErrors() != null) {
+			throw state.getContext().getErrors();
+		}
+	}
+
+	private void relativizeFiles(PersistentState state, File rootFolder) {
+		PersistentContext context = state.getContext();
+
+		URI cwd = new File(System.getProperty("user.dir")).toURI();
+		@SuppressWarnings("unchecked")
+		Iterator<PersistentState> statesIterator = context.iterator();
+		while (statesIterator.hasNext()) {
+			PersistentState aState = statesIterator.next();
+			DynStruct definition = aState.getDefinition();
+			DynField[] fields = definition.getDynFields();
+			for (DynField field : fields) {
+				if (field.getType() == DataTypes.FILE
+						|| field.getType() == DataTypes.FOLDER) {
+					try {
+						File value = aState.getFile(field.getName());
+						value = relativizeFile(value, rootFolder);
+						aState.set(field.getName(), value);
+					} catch (PersistenceException e) {
+						LOG.warn(
+								"Can't relativice field '" + field.getName()
+										+ "' for class '"
+										+ definition.getName() + "'.", e);
+					}
+				} else if (field.getType() == DataTypes.URL) {
+					try {
+						URL value = aState.getURL(field.getName());
+						if ("FILE".equalsIgnoreCase(value.getProtocol())) {
+							File file = new File(value.toURI());
+							file = relativizeFile(file, rootFolder);
+							value = new URL("file","",file.toURI().toString().substring(cwd.toString().length()));
+							aState.set(field.getName(), value);
+						}
+					} catch (PersistenceException e) {
+						// do nothind
+					} catch (MalformedURLException e) {
+						// do nothind
+					} catch (URISyntaxException e) {
+						// do nothind
+					}
+				}
+			}
+		}
+	}
+
+	private File relativizeFile(File file, File rootFolder) {
+		if (rootFolder == null) {
+			return file;
+		}
+		if (file == null) {
+			return null;
+		}
+		boolean isDir = false;
+		// isDir = file.isDirectory();
+		isDir = rootFolder.isDirectory();
+		String basePath = rootFolder.getAbsolutePath();
+		String targetPath = file.getPath();
+		String pathSeparator = File.separator;
+		// We need the -1 argument to split to make sure we get a trailing
+		// "" token if the base ends in the path separator and is therefore
+		// a directory. We require directory paths to end in the path
+		// separator -- otherwise they are indistinguishable from files.
+		String[] base = basePath.split(Pattern.quote(pathSeparator), -1);
+		String[] target = targetPath.split(Pattern.quote(pathSeparator), 0);
+
+		// First get all the common elements. Store them as a string,
+		// and also count how many of them there are.
+		String common = "";
+		int commonIndex = 0;
+		for (int i = 0; i < target.length && i < base.length; i++) {
+			if (target[i].equals(base[i])) {
+				common += target[i] + pathSeparator;
+				commonIndex++;
+			} else
+				break;
+		}
+
+		if (commonIndex == 0) {
+			// Whoops -- not even a single common path element. This most
+			// likely indicates differing drive letters, like C: and D:.
+			// These paths cannot be relativized. Return the target path.
+			return file;
+			// This should never happen when all absolute paths
+			// begin with / as in *nix.
+		}
+
+		String relative = "";
+		if (base.length == commonIndex) {
+			// Comment this out if you prefer that a relative path not start
+			// with ./
+			relative = "." + pathSeparator;
+		} else {
+			int numDirsUp = base.length - commonIndex - (isDir ? 0 : 1); /*
+																		 * only
+																		 * subtract
+																		 * 1 if
+																		 * it is
+																		 * a
+																		 * file.
+																		 */
+			// The number of directories we have to backtrack is the length of
+			// the base path MINUS the number of common path elements, minus
+			// one because the last element in the path isn't a directory.
+			for (int i = 1; i <= (numDirsUp); i++) {
+				relative += ".." + pathSeparator;
+			}
+		}
+		// if we are comparing directories then we
+		if (targetPath.length() > common.length()) {
+			// it's OK, it isn't a directory
+			relative += targetPath.substring(common.length());
+		}
+
+		return new File(relative);
+	}
+
+	private void fixFiles(PersistentState state, File rootFolder) {
+		PersistentContext context = state.getContext();
+		URI cwd = new File(System.getProperty("user.dir")).toURI();
+
+		@SuppressWarnings("unchecked")
+		Iterator<PersistentState> statesIterator = context.iterator();
+		while (statesIterator.hasNext()) {
+			PersistentState aState = statesIterator.next();
+			DynStruct definition = aState.getDefinition();
+			DynField[] fields = definition.getDynFields();
+			for (DynField field : fields) {
+				if (field.getType() == DataTypes.FILE
+						|| field.getType() == DataTypes.FOLDER) {
+					try {
+						File value = aState.getFile(field.getName());
+						value = fixFile(value, rootFolder);
+						aState.set(field.getName(), value);
+					} catch (PersistenceException e) {
+						LOG.warn(
+								"Can't fix field '" + field.getName()
+										+ "' for class '"
+										+ definition.getName() + "'.", e);
+					}
+				} else if (field.getType() == DataTypes.URL) {
+					try {
+						URL value = aState.getURL(field.getName());
+						if ("FILE".equalsIgnoreCase(value.getProtocol())) {
+							if (!value.getFile().startsWith("/")){
+								value = new URL("file","",cwd.getRawPath()+value.getFile());
+								File file = new File(value.toURI().getPath().substring(cwd.getPath().length()));
+								file = fixFile(file, rootFolder);
+								aState.set(field.getName(), file.toURI().toURL());
+							}
+						}
+					} catch (PersistenceException e) {
+						// do nothing
+					} catch (MalformedURLException e) {
+						// do nothing
+					} catch (URISyntaxException e) {
+						// do nothing
+					}
+
+				}
+			}
+		}
+	}
+
+	private File fixFile(File file, File rootFolder) {
+		if (file.isAbsolute()) {
+			return file;
+		}
+		return new File(rootFolder, file.getPath()).getAbsoluteFile();
+	}
+
+	public void loadState(InputStream in) {
+		loadState(in, null);
+	}
+
+	public void loadState(InputStream in, File rootFolder) {
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+		try {
+			PersistentState state = manager.loadState(in);
+			try {
+				if (rootFolder != null) {
+					fixFiles(state, rootFolder);
+				}
+			} catch (Exception ex) {
+				state.getContext().addError(ex);
+			}
+			this.loadFromState(state);
+		} catch (PersistenceException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+	}
+
+	public void loadState(File in) {
+		FileInputStream fin;
+		try {
+			fin = new FileInputStream(in);
+			loadState(fin, new File(in.getParent()));
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	public void loadFromState(PersistentState state)
+			throws PersistenceException {
+		this.clean();
+
+		this.setComments(state.getString("comments"));
+		this.setCreationDate(state.getString("creationDate"));
+		this.setModificationDate(state.getString("modificationDate"));
+		this.setName(state.getString("name"));
+		this.setOwner(state.getString("owner"));
+		this.setSelectionColor((Color) state.get("selectionColor"));
+		this.setProjection((IProjection) state.get("projection"));
+
+		List<ProjectExtent> extents = (List<ProjectExtent>) state
+				.get("extents");
+		for (int i = 0; i < extents.size(); i++) {
+			this.addExtent(extents.get(i));
+		}
+
+		List<AbstractDocument> documents = (List<AbstractDocument>) state
+				.get("documents");
+		for (int i = 0; i < documents.size(); i++) {
+			this.add(documents.get(i));
+		}
+
+		List<DocumentWindowInfo> persistentWindows = (List<DocumentWindowInfo>) state.get("documentWindowsInformation");
+				
+		for (int i = 0; i < persistentWindows.size(); i++) {
+			DocumentWindowInfo persistentWindow = persistentWindows.get(i);
+			String docName = persistentWindow.getDocumentName();
+			String docType = persistentWindow.getDocumentType();
+			Document doc = this.getDocument(docName, docType);
+			IWindow win = doc.getFactory().getMainWindow(doc);
+			win.getWindowInfo().setWindowInfo(persistentWindow.getWindowInfo());
+			PluginServices.getMDIManager().addWindow(win);
+		}
+		
+		if (state.hasValue("projectWindowInfo")){
+			WindowInfo projectWindowInfo = (WindowInfo)state.get("projectWindowInfo"); 
+			ProjectExtension pe = (ProjectExtension) PluginServices.getExtension(org.gvsig.app.extension.ProjectExtension.class);
+			pe.setProject(this);
+			pe.showProjectWindow(projectWindowInfo);
+		}
+
+	}
+
+	public void saveToState(PersistentState state) throws PersistenceException {
+		state.set("version", VERSION);
+		state.set("comments", getComments());
+		state.set("creationDate", this.getCreationDate());
+
+		state.set("modificationDate", this.getModificationDate());
+		state.set("name", this.getName());
+		state.set("owner", this.getOwner());
+		state.set("selectionColor", this.getSelectionColor());
+
+		state.set("projection", this.getProjection());
+
+		state.set("extents", this.extents);
+		state.set("documents", this.getDocuments());
+
+		List<DocumentWindowInfo> persistentWindows = new ArrayList<DocumentWindowInfo>();
+		MDIManager mdiMan = PluginServices.getMDIManager();
+		IWindow[] windows = mdiMan.getOrderedWindows();
+		for (int i = windows.length - 1; i >= 0; i--) {
+			IWindow window = windows[i];
+			if (window instanceof IDocumentWindow){
+				WindowInfo wi =  mdiMan.getWindowInfo(window);
+				DocumentWindowInfo dwi = new DocumentWindowInfo(
+						wi,
+						((IDocumentWindow) window).getDocument().getTypeName(),
+						((IDocumentWindow) window).getDocument().getName());
+				persistentWindows.add(dwi);
+			} else if (window instanceof ProjectWindow){
+				state.set("projectWindowInfo", mdiMan.getWindowInfo(window));
+			}
+		}
+		state.set("documentWindowsInformation", persistentWindows);
+
+	}
+
+	public static class DocumentWindowInfo implements Persistent {
+
+		public static final String PERSISTENCE_DEFINITION_NAME = "DocumentWindowInfo";
+
+		private WindowInfo windowInfo;
+		private String documentType;
+		private String documentName;
+
+		public DocumentWindowInfo(){
+		}
+		
+		DocumentWindowInfo(WindowInfo wi, String docType, String docName){
+			windowInfo = wi;
+			documentType = docType;
+			documentName = docName;
+		}
+
+		public WindowInfo getWindowInfo() {
+			return windowInfo;
+		}
+		
+		public String getDocumentType() {
+			return documentType;
+		}
+
+		public String getDocumentName() {
+			return documentName;
+		}
+
+		public void saveToState(PersistentState state)
+				throws PersistenceException {
+			state.set("windowInfo", this.windowInfo);
+			state.set("documentType", this.documentType);
+			state.set("documentName", this.documentName);
+		}
+
+		public void loadFromState(PersistentState state)
+				throws PersistenceException {
+			this.windowInfo = (WindowInfo) state.get("windowInfo");
+			this.documentType = state.getString("documentType");
+			this.documentName = state.getString("documentName");
+		}
+		
+		public static void registerPersistent() {
+			PersistenceManager manager = ToolsLocator.getPersistenceManager();
+			DynStruct definition = manager.getDefinition(PERSISTENCE_DEFINITION_NAME);
+			if ( definition == null ){
+				definition = manager.addDefinition(
+						DocumentWindowInfo.class,
+						PERSISTENCE_DEFINITION_NAME,
+						"DocumentWindowInfo persistence definition",
+						null, 
+						null
+				);
+				definition.addDynFieldObject("windowInfo").setMandatory(true).setClassOfValue(WindowInfo.class);
+				definition.addDynFieldString("documentType").setMandatory(true);
+				definition.addDynFieldString("documentName").setMandatory(true);
+			}
+
+		}
+	}
+	
+	public static void registerPersistent() {
+		AbstractDocument.registerPersistent();
+		DocumentWindowInfo.registerPersistent();
+
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+		DynStruct definition = manager.addDefinition(DefaultProject.class,
+				"Project", "Project Persistence definition", null, null);
+		definition.addDynFieldString("version").setMandatory(true);
+		definition.addDynFieldString("comments").setMandatory(true);
+		definition.addDynFieldString("creationDate").setMandatory(true);
+		definition.addDynFieldString("modificationDate").setMandatory(true);
+		definition.addDynFieldString("name").setMandatory(true);
+		definition.addDynFieldString("owner").setMandatory(true);
+
+		definition.addDynFieldObject("selectionColor")
+				.setClassOfValue(Color.class).setMandatory(true);
+		definition.addDynFieldObject("projection")
+				.setClassOfValue(IProjection.class).setMandatory(true);
+
+		definition.addDynFieldList("extents")
+				.setClassOfItems(ProjectExtent.class).setMandatory(true);
+
+		definition.addDynFieldList("documents").setClassOfItems(Document.class)
+				.setMandatory(true);
+
+		definition.addDynFieldObject("projectWindowInfo").setClassOfValue(WindowInfo.class).setMandatory(false);
+
+		definition.addDynFieldList("documentWindowsInformation").setClassOfItems(WindowInfo.class).setMandatory(false);
+
+	}
+
+	/**
+	 * @deprecated use getPreferences().setDefaultSelectionColor()
+	 */
+	public static void setDefaultSelectionColor(Color color) {
+		getPreferences().setDefaultSelectionColor(color);
+	}
+
+	/**
+	 * @deprecated use getPreferences().getDefaultSelectionColor()
+	 */
+
+	public static Color getDefaultSelectionColor() {
+		return getPreferences().getDefaultSelectionColor();
+	}
+
+	/**
+	 * @deprecated use getPreferences().getDefaultMapUnits()
+	 */
+	public static int getDefaultMapUnits() {
+		return getPreferences().getDefaultMapUnits();
+	}
+
+	/**
+	 * @deprecated use getPreferences().getDefaultDistanceUnits()
+	 */
+	public static int getDefaultDistanceUnits() {
+		return getPreferences().getDefaultDistanceUnits();
+	}
+
+	/**
+	 * @deprecated use getPreferences().getDefaultDistanceArea()
+	 */
+	public static int getDefaultDistanceArea() {
+		return getPreferences().getDefaultDistanceArea();
+	}
+
+	/**
+	 * @deprecated use getPreferences().setDefaultMapUnits()
+	 */
+	public static void setDefaultMapUnits(int mapUnits) {
+		getPreferences().setDefaultMapUnits(mapUnits);
+	}
+
+	/**
+	 * @deprecated use getPreferences().setDefaultDistanceUnits()
+	 */
+	public static void setDefaultDistanceUnits(int distanceUnits) {
+		getPreferences().setDefaultDistanceUnits(distanceUnits);
+	}
+
+	/**
+	 * @deprecated use getPreferences().setDefaultDistanceArea()
+	 */
+	public static void setDefaultDistanceArea(int distanceArea) {
+		getPreferences().setDefaultDistanceArea(distanceArea);
+	}
+
+	/**
+	 * @deprecated use getPreferences().setDefaultProjection()
+	 */
+	public static void setDefaultProjection(IProjection defaultProjection) {
+		getPreferences().setDefaultProjection(defaultProjection);
+	}
+
+	/**
+	 * @deprecated use getPreferences().getDefaultProjection()
+	 */
+	public static IProjection getDefaultProjection() {
+		return getPreferences().getDefaultProjection();
+	}
+
+	/**
+	 * @deprecated see {@link #setSelectionColor(String)}, to be remove in gvSIG
+	 *             2.1.0
+	 */
+	public void setColor(String color) {
+		this.setSelectionColor(StringUtilities.string2Color(color));
+	}
+
+	/**
+	 * Return the selection color
+	 * 
+	 * @return selection color as string
+	 * @deprecated use {@link #getSelectionColor()}
+	 */
+	public String getColor() {
+		return StringUtilities.color2String(selectionColor);
+	}
+
+	/**
+	 * Return the list of views of the project
+	 * 
+	 * @return views as ArrayList of ProjectDocument
+	 * 
+	 * @deprecated see {@link #getDocumentsByType(String)}
+	 */
+	public List<Document> getViews() {
+		return getDocuments(ViewManager.TYPENAME);
+	}
+
+	/**
+	 * Add a view to the project
+	 * 
+	 * @deprecated see {@link #add(AbstractDocument)}
+	 */
+	public void addView(DefaultViewDocument v) {
+		add(v);
+	}
+
+	/**
+	 * Remove a view of the project
+	 * 
+	 * @param index
+	 *            of the view as integer
+	 * 
+	 * @deprecated see {@link #remove(AbstractDocument)}
+	 */
+	public void delView(int i) {
+		List<Document> list = getDocuments(ViewManager.TYPENAME);
+		remove(list.get(i));
+	}
+
+	/**
+	 * @deprecated see {@link #getDocument(String, String)}
+	 */
+	public Document getProjectDocumentByName(String name, String type) {
+		return this.getDocument(name, type);
+	}
+
+	/**
+	 * @deprecated see {@link #getDocuments(String)}
+	 */
+	public List<Document> getDocumentsByType(String type) {
+		return this.getDocuments(type);
+	}
+
+	/**
+	 * @deprecated aun por decidir que API darle al copy/paste
+	 */
+	public String exportToXML(AbstractDocument[] selectedItems)
+			throws SaveException {
+		// FIXME jjdc:hay que decirdir que API darle al copy/paste
+		throw new UnsupportedOperationException("This method is not supported");
+	}
+
+	/**
+	 * @deprecated aun por decidir que API darle al copy/paste
+	 */
+	public void importFromXML(String sourceString, String docType) {
+		// FIXME jjdc:hay que decirdir que API darle al copy/paste
+		throw new UnsupportedOperationException("This method is not supported");
+	}
+
+	/**
+	 * @deprecated aun por decidir que API darle al copy/paste
+	 */
+	public boolean isValidXMLForImport(String sourceString, String docType) {
+		// FIXME jjdc:hay que decirdir que API darle al copy/paste
+		throw new UnsupportedOperationException("This method is not supported");
+	}
+
+	public boolean canImportDocuments(String data, String doctype) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public String exportDocumentsAsText(List<Document> documents) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void importDocuments(String data, String doctype) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public Document getActiveDocument() {
+		ApplicationManager application = ApplicationLocator.getManager();
+
+		Document document = null;
+		IWindow[] windows = application.getUIManager().getOrderedWindows();
+		IWindow window = null;
+		for (int i = 0; i < windows.length; i++) {
+		    window = windows[i];
+			if (window instanceof SingletonWindow) {
+				// Cogemos no la primera ventana, si no la primera
+				// ventana de tipo documento (SingletonWindow).
+				// Y por si las mosca no es un documento, atrapamos
+				// los errores y continuamos si no puede hacer un cast
+				// del Model a Document
+				try {
+					document = (Document) ((SingletonWindow) window).getWindowModel();
+					return document;
+				} catch (ClassCastException e) {
+					// Do nothing, skip this window
+				}
+			}
+		}
+		return null;
+	} 
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/DefaultProject.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectExtent.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectExtent.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectExtent.java	(revision 38262)
@@ -0,0 +1,147 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2009 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2004-2009 IVER TI
+*   
+*/
+package org.gvsig.app.project;
+
+import java.awt.geom.Rectangle2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.tools.persistence.Persistent;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ *
+ * @author 2006-2009 Jose Manuel Vivo
+ * @author 2005-         Vicente Caballero
+ * @author 2009-         Joaquin del Cerro
+ * 
+ */
+
+public class ProjectExtent implements Persistent {
+	private static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
+	private static final Logger logger = LoggerFactory.getLogger(ProjectExtent.class);
+
+	private Envelope extent;
+    private String description;
+
+    public ProjectExtent() {
+    	this.extent = null;
+    	this.description = null;
+    }
+    
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String string) {
+        description = string;
+    }
+
+    public Envelope getExtent() {
+    	if( this.extent == null ) {
+    		try {
+				this.extent = geomManager.createEnvelope(Geometry.SUBTYPES.GEOM2D);
+			} catch (CreateEnvelopeException e) {
+				logger.warn("Can't create envelop.", e);
+			}
+    	}
+    	return this.extent;
+    }
+
+    public void setExtent(Envelope envelope) {
+        this.extent = envelope;
+    }
+
+    /**
+     * @deprecated use {link {@link #setExtent(Envelope)}
+     */
+    public void setExtent(Rectangle2D rectangle2D) {
+        try {
+			this.extent = geomManager.createEnvelope(
+					rectangle2D.getMinX(),
+					rectangle2D.getMinY(),
+					rectangle2D.getMaxX(),
+					rectangle2D.getMaxY(),
+					Geometry.SUBTYPES.GEOM2D);
+		} catch (CreateEnvelopeException e) {
+			logger.warn("Can't create envelope.", e);
+			throw new RuntimeException("Can't create envelope.",e);
+		}
+    }
+
+    public String getEncuadre() {
+    	Point lower = extent.getLowerCorner();
+    	Point upper = extent.getUpperCorner();
+    	return lower.getX() + "," + lower.getY() + "," + upper.getX() + "," + upper.getY(); 
+    }
+
+    public void setEncuadre(String encuadre) {
+        String[] coords = encuadre.split(",");
+        try {
+			this.extent = geomManager.createEnvelope(
+					Double.parseDouble(coords[0]),
+					Double.parseDouble(coords[1]),
+					Double.parseDouble(coords[2]),
+					Double.parseDouble(coords[3]),
+					Geometry.SUBTYPES.GEOM2D);
+		} catch (NumberFormatException e) {
+			logger.warn("Incorrect format string.", e);
+			throw new RuntimeException("Incorrect format string.",e);
+		} catch (CreateEnvelopeException e) {
+			logger.warn("Can't create envelope.", e);
+			throw new RuntimeException("Can't create envelope.",e);
+		}
+    }
+
+    /**
+     * @see java.lang.Object#toString()
+     */
+    public String toString() {
+        return description;
+    }
+
+    public void loadFromState(PersistentState state)
+			throws PersistenceException {
+		this.extent = (Envelope) state.get("envelope");
+		this.description = state.getString("description");
+	}
+
+	public void saveToState(PersistentState state) throws PersistenceException {
+        state.set("description", description);
+        state.set("envelope", extent);
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectExtent.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectManager.java	(revision 38262)
@@ -0,0 +1,283 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.documents.DefaultDocumentActionGroup;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.DocumentAction;
+import org.gvsig.app.project.documents.DocumentActionGroup;
+import org.gvsig.app.project.documents.DocumentManager;
+import org.gvsig.app.project.documents.gui.ProjectWindow;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.extensionpoint.ExtensionPoint;
+import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+import org.gvsig.tools.observer.impl.BaseWeakReferencingObservable;
+
+public class ProjectManager extends BaseWeakReferencingObservable {
+
+    private static final Logger logger = LoggerFactory
+        .getLogger(ProjectManager.class);
+    private static ProjectManager factory = null;
+
+    // private static final String KEY_PROJECT = "app.project";
+    // private static final String KEY_DOCUMENTS = "app.project.documents";
+    private static final String KEY_DOCUMENTS_FACTORIES =
+        "app.project.documents.factories";
+    private static final String KEY_DOCUMENTS_ACTIONS =
+        "app.project.documents.actions";
+
+    private Map<String, DocumentActionGroup> documentActionGroups;
+
+    public static ProjectManager getInstance() {
+        if (factory == null) {
+            factory = new ProjectManager();
+        }
+        return factory;
+    }
+
+    private ProjectManager() {
+        this.documentActionGroups = new HashMap<String, DocumentActionGroup>();
+    }
+
+    public Project getCurrentProject() {
+        return ((ProjectExtension) PluginServices
+            .getExtension(ProjectExtension.class)).getProject();
+    }
+
+    public ProjectWindow getCurrentProjectWindow() {
+        ProjectExtension projectExtension =
+            (ProjectExtension) PluginServices
+                .getExtension(ProjectExtension.class);
+        ProjectWindow window =
+            (ProjectWindow) projectExtension.getProjectWindow();
+        return window;
+    }
+
+    /**
+     * @deprecated use {@link #getDocumentManagers()} instead.
+     */
+    public List<DocumentManager> getDocumentManager() {
+        return getDocumentManagers();
+    }
+
+    @SuppressWarnings("unchecked")
+    public List<DocumentManager> getDocumentManagers() {
+        Iterator<Extension> iterator =
+            ToolsLocator.getExtensionPointManager()
+                .get(KEY_DOCUMENTS_FACTORIES).iterator();
+        List<DocumentManager> factories = new ArrayList<DocumentManager>();
+        while (iterator.hasNext()) {
+            Extension extension = iterator.next();
+            try {
+                factories.add((DocumentManager) extension.create());
+            } catch (InstantiationException e) {
+                logger.error("Can't access to project document factory ("
+                    + extension.getName() + ").");
+            } catch (IllegalAccessException e) {
+                logger.error("Can't access to project document factory ("
+                    + extension.getName() + ").");
+            }
+        }
+        return factories;
+    }
+
+    /**
+     * @deprecated use {@link #getDocumentManager(String)} instead.
+     */
+    public DocumentManager getDocumentManagers(String type) {
+        return getDocumentManager(type);
+    }
+
+    public DocumentManager getDocumentManager(String type) {
+        DocumentManager factory = null;
+        try {
+            factory =
+                (DocumentManager) ToolsLocator.getExtensionPointManager()
+                    .get(KEY_DOCUMENTS_FACTORIES).create(type);
+        } catch (Exception ex) {
+            logger
+                .warn(
+                    MessageFormat.format(
+                        "Unable to locate factory for documents of type {0}",
+                        type), ex);
+        }
+        return factory;
+    }
+
+    public Document createDocument(String type) {
+        Document doc = getDocumentManager(type).createDocument();
+        return doc;
+    }
+
+    public Document createDocument(String type, String name) {
+        Document doc = createDocument(type);
+        doc.setName(name);
+        return doc;
+    }
+
+    /**
+     * @deprecated use {@link #createDocumentsByUser(String)} instead
+     */
+    public Document createDocumentByUser(String type) {
+        Document doc = getDocumentManager(type).createDocumentByUser();
+        return doc;
+    }
+
+    /**
+     * Creates a group of documents of a given type through the user interface.
+     * 
+     * @param type
+     *            the type of documents to create
+     * @return the created documents
+     */
+    public Iterator<? extends Document> createDocumentsByUser(String type) {
+        logger.info("createDocumentsByUser('{}')", type);
+        return getDocumentManager(type).createDocumentsByUser();
+    }
+
+    public Project createProject() {
+        return new DefaultProject();
+    }
+
+    public ProjectExtent createExtent() {
+        return new ProjectExtent();
+    }
+
+    public void registerDocumentFactory(DocumentManager documentManager) {
+        ExtensionPointManager manager = ToolsLocator.getExtensionPointManager();
+        manager.add(KEY_DOCUMENTS_FACTORIES).append(
+            documentManager.getTypeName(), null, documentManager);
+        notifyObservers();
+    }
+
+    public void registerDocumentFactoryAlias(String typeName, String alias) {
+        ExtensionPointManager manager = ToolsLocator.getExtensionPointManager();
+
+        manager.get(KEY_DOCUMENTS_FACTORIES).addAlias(typeName, alias);
+    }
+
+    public void registerDocumentAction(String typeName, DocumentAction action) {
+        ExtensionPointManager manager = ToolsLocator.getExtensionPointManager();
+
+        String key = KEY_DOCUMENTS_ACTIONS + "." + typeName;
+        String description =
+            MessageFormat.format("Actions for {1} documents ", typeName);
+
+        manager.add(key, description).append(action.getId(),
+            action.getDescription(), action);
+    }
+
+    /**
+     * Gets a list of actions for the document type especified.
+     * 
+     * La lista esta ordenada deacuerdo al orden especificado en
+     * las acciones y grupos de acciones involucrados.
+     * 
+     * @param doctype
+     * @return list of actions as List<DocumentAction>
+     */
+    @SuppressWarnings("unchecked")
+    public List<DocumentAction> getDocumentActions(String doctype) {
+
+        ExtensionPointManager manager = ToolsLocator.getExtensionPointManager();
+
+        String key = KEY_DOCUMENTS_ACTIONS + "." + doctype;
+        ExtensionPoint extensionPoint = manager.get(key);
+        if (extensionPoint == null) {
+            // No hay acciones registradas para ese tipo de documento
+            return null;
+        }
+        List<DocumentAction> actions = new ArrayList<DocumentAction>();
+        Iterator<Extension> it = extensionPoint.iterator();
+        while (it.hasNext()) {
+            try {
+                DocumentAction action;
+                action = (DocumentAction) it.next().create();
+                actions.add(action);
+            } catch (InstantiationException e) {
+                logger.warn("Can't retrieve document action", e);
+            } catch (IllegalAccessException e) {
+                logger.warn("Can't retrieve document action", e);
+            }
+        }
+        if (actions.size() < 1) {
+            return null;
+        }
+        Collections.sort(actions, new CompareAction());
+        return actions;
+    }
+
+    private class CompareAction implements Comparator<DocumentAction> {
+
+        public int compare(DocumentAction action1, DocumentAction action2) {
+            // FIXME: flata formatear los enteros!!!!
+            String key1 =
+                MessageFormat.format("{1}.{2}.{3}", action1.getGroup()
+                    .getOrder(), action1.getGroup().getTitle(), action1
+                    .getOrder());
+            String key2 =
+                MessageFormat.format("{1}.{2}.{3}", action2.getGroup()
+                    .getOrder(), action2.getGroup().getTitle(), action2
+                    .getOrder());
+            return key1.compareTo(key2);
+        }
+    }
+
+    /**
+     * Create, add and return a new action for documents.
+     * 
+     * If action already exists don't create and return this.
+     * 
+     * @param unique
+     *            identifier for the action
+     * @param title
+     * @param description
+     * @param order
+     * @return
+     */
+    public DocumentActionGroup addDocumentActionGroup(String id, String title,
+        String description, int order) {
+        DocumentActionGroup group = this.documentActionGroups.get(id);
+        if (group != null) {
+            return group;
+        }
+        group = new DefaultDocumentActionGroup(id, title, description, order);
+        this.documentActionGroups.put(id, group);
+        return group;
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectManager.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewDocument.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewDocument.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewDocument.java	(revision 38262)
@@ -0,0 +1,62 @@
+package org.gvsig.app.project.documents.view;
+
+import java.beans.PropertyChangeListener;
+
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.fmap.mapcontext.MapContext;
+
+
+public interface ViewDocument extends Document {
+
+	/**
+	 * Gets the FMap's contexts of the main map in the view.
+	 *
+	 * @return
+	 */
+	public MapContext getMapContext();
+
+	/**
+	 * Gets the FMap's context from the locator, which is the
+	 * small map in the left-bottom corner of the View.
+	 *
+	 * @return
+	 */
+	public MapContext getMapOverViewContext();
+
+	/**
+	 * @see org.gvsig.app.project.documents.view.DefaultViewDocument#setMapContext(org.gvsig.fmap.mapcontext.MapContext)
+	 */
+	public void setMapContext(MapContext fmap);
+
+	public void setMapOverViewContext(MapContext fmap);
+
+	public String getName();
+
+	public Project getProject();
+
+	public void addPropertyChangeListener(PropertyChangeListener listener);
+
+//	public String getExtLink();
+//
+//	public int getTypeLink();
+//
+//	/**
+//     * Se selecciona la extensi�n para realizar cuando se quiera el link.
+//     *
+//     * @param s nombre del campo.
+//     */
+//	public void setExtLink(String s);
+//
+//	/**
+//     * Se selecciona el tipo de fichero para realizar cuando se quiera el link.
+//     *
+//     * @param i tipo de fichero.
+//     */
+//	public void setTypeLink(int i);
+//
+//	public void setSelectedField(String s);
+//
+//	public String getSelectedField();
+	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewDocument.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/AbstractContextMenuAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/AbstractContextMenuAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/AbstractContextMenuAction.java	(revision 38262)
@@ -0,0 +1,35 @@
+package org.gvsig.app.project.documents.view;
+
+import org.gvsig.tools.extensionpoint.ExtensionBuilder;
+
+
+public abstract class AbstractContextMenuAction implements IContextMenuAction,
+		ExtensionBuilder {
+
+	public boolean isVisible(Object item, Object[] selectedItems) {
+		return true;
+	}
+
+	public boolean isEnabled(Object item, Object[] selectedItems) {
+		return true;
+	}
+
+	public String getGroup() {
+		return "general";
+	}
+
+	public int getGroupOrder() {
+		return 50;
+	}
+
+	public int getOrder() {
+		return 0;
+	}
+
+	public String getDescription() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/AbstractContextMenuAction.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialog.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialog.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialog.java	(revision 38262)
@@ -0,0 +1,62 @@
+
+package org.gvsig.app.project.documents.view.info.gui;
+
+import java.awt.BorderLayout;
+
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindowListener;
+import org.gvsig.andami.ui.mdiManager.SingletonWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.fmap.mapcontrol.swing.dynobject.LayersDynObjectSetComponent;
+
+
+
+/**
+ * Dialog that contains the generic Feature Info Viewer
+ *
+ * @author laura
+ *
+ */
+public class FInfoDialog extends JPanel implements SingletonWindow,
+    IWindowListener {
+
+    private static final long serialVersionUID = -6707094091114785970L;
+    private final LayersDynObjectSetComponent infoViewer;
+
+    public FInfoDialog(LayersDynObjectSetComponent infoViewer) {
+        super(new BorderLayout());
+        this.infoViewer = infoViewer;
+        add(infoViewer.asJComponent(), BorderLayout.CENTER);
+		setSize(600, 375);
+	}
+
+	public WindowInfo getWindowInfo() {
+
+		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODELESSDIALOG |
+				WindowInfo.RESIZABLE | WindowInfo.PALETTE);
+		m_viewinfo.setWidth(getWidth()+8);
+		m_viewinfo.setHeight(getHeight());
+		m_viewinfo.setTitle(PluginServices.getText(this,
+				"Identificar_Resultados"));
+
+		return m_viewinfo;
+	}
+
+	public Object getWindowModel() {
+		return "FInfoDialog";
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.PROPERTIES_PROFILE;
+	}
+
+    public void windowActivated() {
+        // Nothing to do
+    }
+
+    public void windowClosed() {
+        infoViewer.dispose();
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialog.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialogXML.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialogXML.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialogXML.java	(revision 38262)
@@ -0,0 +1,98 @@
+/*
+ * Created on 13-sep-2004
+ *
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.info.gui;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.utils.xmlViewer.XMLViewer;
+
+
+
+/**
+ * Di�logo utilizado para mostrar la infromaci�n.
+ *
+ * @author fernando To change the template for this generated type comment go
+ * 		   to Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and
+ * 		   Comments
+ */
+public class FInfoDialogXML extends XMLViewer implements IWindow {
+
+
+	public FInfoDialogXML(){
+		super();
+		setNamesColumn(new String[]{PluginServices.getText(this, "Atributo"), PluginServices.getText(this, "Valor")});
+		setSize(500, 375);
+	}
+	/**
+	 * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
+	 */
+	public void viewActivated() {
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.mdiApp.ui.MDIManager.View#getViewInfo()
+	 */
+	public WindowInfo getWindowInfo() {
+		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODELESSDIALOG |
+				WindowInfo.RESIZABLE | WindowInfo.PALETTE);
+		m_viewinfo.setWidth(getWidth()+8);
+		m_viewinfo.setHeight(getHeight());
+		m_viewinfo.setTitle(PluginServices.getText(this,
+				"Identificar_Resultados"));
+
+		return m_viewinfo;
+	}
+
+	/**
+	 * @see com.iver.mdiApp.ui.MDIManager.SingletonWindow#getWindowModel()
+	 */
+	public Object getViewModel() {
+		return "FInfoDialogXML";
+	}
+	public Object getWindowProfile() {
+		return WindowInfo.PROPERTIES_PROFILE;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/FInfoDialogXML.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IInfoToolPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IInfoToolPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IInfoToolPanel.java	(revision 38262)
@@ -0,0 +1,16 @@
+package org.gvsig.app.project.documents.view.info.gui;
+
+
+/**
+ * Interface that must implement the panels provided from a layer
+ * to display its Feature Information
+ * 
+ * @author laura
+ *
+ */
+public interface IInfoToolPanel{
+
+	public void show(String s);
+	public void refreshSize();
+	public void show(XMLItem item);
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IInfoToolPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IXULInfoToolSupport.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IXULInfoToolSupport.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IXULInfoToolSupport.java	(revision 38262)
@@ -0,0 +1,9 @@
+package org.gvsig.app.project.documents.view.info.gui;
+
+import java.io.IOException;
+
+public interface IXULInfoToolSupport extends IInfoToolPanel {
+
+	public void setXULFile(String xulFile) throws IOException;
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/IXULInfoToolSupport.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/VectorialXMLItem.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/VectorialXMLItem.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/VectorialXMLItem.java	(revision 38262)
@@ -0,0 +1,126 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.app.project.documents.view.info.gui;
+
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.tools.dispose.DisposableIterator;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.tools.dispose.DisposeUtils;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public class VectorialXMLItem implements XMLItem {
+
+	private FeatureSet selection;
+	private FLayer layer;
+
+	public VectorialXMLItem(FeatureSet selection, FLayer layer) {
+		this.selection = selection;
+		this.layer = layer;
+	}
+
+	public FLayer getLayer(){
+		return layer;
+	}
+	/**
+	 * @see org.gvsig.app.project.documents.view.info.gui.iver.cit.gvsig.gui.toolListeners.InfoListener.XMLItem#parse(org.xml.sax.ContentHandler)
+	 */
+	public void parse(ContentHandler handler) throws SAXException {
+		AttributesImpl aii = new AttributesImpl();
+		handler.startElement("", "", (layer).getName(), aii);
+		DisposableIterator iterator = null;
+		try {
+
+//			FeatureStore ds = ((FLyrVect) layer).getFeatureStore();
+			iterator = selection.iterator();
+			int j=0;
+			FeatureAttributeDescriptor attr;
+			Object value;
+			String strValue;
+			while (iterator.hasNext()) {
+				Feature feature = (Feature) iterator.next();
+				AttributesImpl ai = new AttributesImpl();
+				FeatureType featureType=((FLyrVect) layer).getFeatureStore().getDefaultFeatureType();
+				for (int k = 0; k < featureType.size(); k++) {
+					attr = (FeatureAttributeDescriptor) featureType
+							.get(k);
+					value = feature.get(k);
+					if (value == null) {
+						strValue = "{null}";
+					} else {
+						strValue = value.toString();
+					}
+					ai.addAttribute("", attr.getName(), attr.getName(),
+					"xs:string",
+							strValue);
+				}
+				handler.startElement("", "", String.valueOf(j), ai);
+				handler.endElement("", "", String.valueOf(j));
+				j++;
+			}
+
+			//TODO
+//			ds.start();
+//
+//			for (int j = bitset.nextSetBit(0); j >= 0; j = bitset
+//					.nextSetBit(j + 1)) {
+//				AttributesImpl ai = new AttributesImpl();
+//
+//				for (int k = 0; k < ds.getFieldCount(); k++) {
+//					ai.addAttribute("", ds.getFieldName(k), "",
+//							"xs:string", ds.getFieldValue(j, k).toString());
+//				}
+//				handler.startElement("", "", String.valueOf(j), ai);
+//				handler.endElement("", "", String.valueOf(j));
+//			}
+//
+//			ds.stop();
+
+		} catch (ReadException e) {
+			throw new SAXException(e);
+		} catch (DataException e) {
+			throw new SAXException(e);
+		}
+		finally {
+			DisposeUtils.dispose(iterator);
+		}
+		handler.endElement("", "", (layer).getName());
+	}
+}
+
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/VectorialXMLItem.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/CSSelectionDialog.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/CSSelectionDialog.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/CSSelectionDialog.java	(revision 38262)
@@ -0,0 +1,93 @@
+/*
+ * Created on 26-ene-2005
+ */
+package org.gvsig.app.project.documents.view.info.gui;
+
+import java.awt.Dimension;
+
+import org.cresques.cts.IProjection;
+import org.cresques.ui.cts.CSSelectionDialogPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.gui.panels.crs.ISelectCrsPanel;
+
+/**
+ * @author Luis W. Sevilla (sevilla_lui@gva.es)
+ */
+public class CSSelectionDialog extends CSSelectionDialogPanel implements
+    IWindow, ISelectCrsPanel {
+
+    private boolean okPressed = false;
+    private IProjection lastProj = null;
+
+    /**
+	 *
+	 */
+    public CSSelectionDialog() {
+        super();
+        this.init();
+    }
+
+    /**
+     * This method initializes this
+     * 
+     * @return void
+     */
+    private void init() {
+        getAcceptButton().addActionListener(
+            new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    PluginServices.getMDIManager().closeWindow(
+                        CSSelectionDialog.this);
+                    okPressed = true;
+                }
+            });
+        getCancelButton().addActionListener(
+            new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    setProjection(lastProj);
+                    PluginServices.getMDIManager().closeWindow(
+                        CSSelectionDialog.this);
+                    okPressed = false;
+                }
+            });
+    }
+
+    public WindowInfo getWindowInfo() {
+        WindowInfo m_viewinfo =
+            new WindowInfo(WindowInfo.MODALDIALOG | WindowInfo.RESIZABLE);
+        m_viewinfo.setTitle(PluginServices.getText(this,
+            "selecciona_sistema_de_referencia"));
+        Dimension dim = getPreferredSize();
+        m_viewinfo.setWidth(dim.width);
+        m_viewinfo.setHeight(dim.height);
+        return m_viewinfo;
+    }
+
+    public boolean isOkPressed() {
+        return okPressed;
+    }
+
+    /**
+     * @return
+     */
+    public IProjection getProjection() {
+        return getProjPanel().getProjection();
+    }
+
+    /**
+     * @param proj
+     */
+    public void setProjection(IProjection proj) {
+        lastProj = proj;
+        getProjPanel().setProjection(proj);
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.DIALOG_PROFILE;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/CSSelectionDialog.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/InfoToolViewer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/InfoToolViewer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/InfoToolViewer.java	(revision 38262)
@@ -0,0 +1,311 @@
+package org.gvsig.app.project.documents.view.info.gui;
+
+import java.awt.Dimension;
+import java.awt.event.ComponentEvent;
+import java.awt.event.ComponentListener;
+import java.util.Vector;
+
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreePath;
+
+import org.gvsig.app.gui.wizards.FormatListModel;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLyrDefault;
+import org.gvsig.fmap.mapcontext.layers.operations.InfoByPoint;
+import org.gvsig.utils.xmlViewer.XMLContent;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
+/**
+ * This is the generic Feature Info Viewer
+ * 
+ * If the feature Info comes from a special layer which has registered
+ * the way to visualize itself, adds a panel that the layer should provide
+ * otherwise this viewer will add a panel to visualize HTML or a special
+ * viewer to show XML.
+ * 
+ * @author laura
+ *
+ */
+public class InfoToolViewer extends JPanel {
+	
+	public static Class XULPanelClass = null;
+	
+    private javax.swing.JScrollPane jScrollPane = null;
+    private JList layerList = null;
+    private javax.swing.JSplitPane jSplitPane1 = null;
+    private javax.swing.JPanel layerListPanel = null;
+	private JPanel infoViewerPanel;	
+	private XMLItem[] m_layers;
+	IInfoToolPanel infoPanel = null;
+
+    /**
+     * This is the default constructor
+     */
+    public InfoToolViewer() {
+        super();
+        initialize();
+        this.addComponentListener(new componentListener());
+    }
+    
+    public InfoToolViewer(XMLItem[] layers) {
+    	super();
+    	initialize();
+    	setLayers(layers);
+    }
+    
+    public void setLayers(XMLItem[] layers){    	
+    	m_layers = layers;
+    	initilizeLayerListModel();
+    	updateViewer(0);
+    	// layerList.setSelectedIndex(0);
+    }
+
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        this.setLayout(new java.awt.BorderLayout());
+        this.add(getJSplitPane1(), java.awt.BorderLayout.CENTER);
+        this.setSize(600, 600);
+        this.setPreferredSize(new Dimension(600, 600));
+    }
+
+    /**
+     * This method initializes jScrollPane
+     *
+     * @return javax.swing.JScrollPane
+     */
+    private javax.swing.JScrollPane getJScrollPane() {
+        if (jScrollPane == null) {
+            jScrollPane = new javax.swing.JScrollPane();
+            jScrollPane.setSize(new Dimension(600,600));
+            jScrollPane.setPreferredSize( new Dimension(600,600));
+            jScrollPane.setViewportView(getLayerListPanel());
+        }
+
+        return jScrollPane;
+    }
+    
+    private void initilizeLayerListModel() {
+        Vector layerNames = new Vector();
+        if (m_layers != null)
+        {
+        	for (int i = 0; i < m_layers.length; i++)
+        	{
+        		layerNames.add(m_layers[i].getLayer().getName());
+        	}        	
+        }         
+        
+        FormatListModel model = new FormatListModel((String[])layerNames.toArray(new String[0])); 
+        getJList().setModel(model);    	
+    }
+
+    public JList getJList(){
+
+	  if (layerList == null) {
+		  layerList = new JList();
+		  initilizeLayerListModel();
+	      layerList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+	  }
+  
+      layerList.addListSelectionListener(new ListSelectionListener() { 
+				public void valueChanged(javax.swing.event.ListSelectionEvent e) {
+				  int changedIdx = layerList.getSelectedIndex();//e.getFirstIndex();
+				 
+				  if (changedIdx == -1) return;
+				  updateViewer(changedIdx);
+	           }
+          });    
+      return layerList;
+}
+    /**
+     * This method initializes jSplitPane1
+     *
+     * @return javax.swing.JSplitPane
+     */
+    private javax.swing.JSplitPane getJSplitPane1() {
+        if (jSplitPane1 == null) {
+            jSplitPane1 = new javax.swing.JSplitPane();
+            jSplitPane1.setLeftComponent(getJScrollPane());
+            jSplitPane1.setRightComponent(getInfoViewerPanel());
+            jSplitPane1.setDividerSize(4);
+            jSplitPane1.setDividerLocation(100);
+            jSplitPane1.setSize( new Dimension(600,600));
+            jSplitPane1.setPreferredSize( new Dimension(600,600));
+        }
+        return jSplitPane1;
+    }
+
+    /**
+     * This method initializes jPanel
+     *
+     * @return javax.swing.JPanel
+     */
+    private javax.swing.JPanel getLayerListPanel() {
+        if (layerListPanel == null) {
+            layerListPanel = new javax.swing.JPanel();
+            layerListPanel.setLayout(new java.awt.BorderLayout());
+            layerListPanel.add(getJList(), java.awt.BorderLayout.CENTER);
+        }
+
+        return layerListPanel;
+    }
+
+    /**
+     * This method initializes jPanel1
+     *
+     * @return javax.swing.JPanel
+     */
+    private javax.swing.JPanel getInfoViewerPanel() {
+        if (infoViewerPanel == null) {
+            infoViewerPanel = new javax.swing.JPanel();
+            infoViewerPanel.setLayout(new java.awt.BorderLayout());
+        }
+        validate();
+        return infoViewerPanel;
+    } 
+    
+    /**
+     * updates the layer to display
+     *
+     */
+    private void updateViewer(int changedIdx)
+    {
+    	if((m_layers == null) || (m_layers.length == 0)) return;    	  
+		  final XMLItem item = m_layers[changedIdx];
+		  FLayer layer = item.getLayer(); 
+		
+		  if (layer instanceof InfoByPoint){					  				
+			  FLyrDefault defaultLayer = (FLyrDefault)layer;
+              if ( XULPanelClass!=null && defaultLayer.getProperty("infoTool.XULFile") != null){
+            	try {
+					IXULInfoToolSupport infoPanel = (IXULInfoToolSupport) XULPanelClass.newInstance();
+					infoPanel.setXULFile((String)defaultLayer.getProperty("infoTool.XULFile"));
+					infoViewerPanel.removeAll();
+					infoViewerPanel.add((JPanel)infoPanel);
+					infoPanel.show(item);
+					infoViewerPanel.setVisible( true ); 
+					revalidate();
+					return;
+				} catch (Exception e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+            	  
+              }
+              
+              if (defaultLayer.getProperty("customPanel") != null){
+				  
+				Object o = (Object)defaultLayer.getProperty("customPanel");
+				if (o instanceof IInfoToolPanel) {
+					  infoPanel = (IInfoToolPanel)o;
+				} else {
+				 	try {
+						Class c = (Class)o;
+				 		infoPanel = (IInfoToolPanel)c.newInstance();
+					} catch (InstantiationException e1) {
+						e1.printStackTrace();
+					} catch (IllegalAccessException e1) {
+						e1.printStackTrace();
+					}
+				}
+				infoViewerPanel.removeAll();
+				infoViewerPanel.add((JPanel)infoPanel);
+				infoPanel.show(item);
+				infoViewerPanel.setVisible( true ); 
+				revalidate();
+
+			  } else {
+				  
+				  if (item.toString().toLowerCase().endsWith( "</html>"))//if (item.toString().toLowerCase().startsWith( "<html>"))
+				  {
+					  //skip the header info
+					  IInfoToolPanel htmlPanel = new HTMLInfoToolPanel();
+					 
+					  int idx = item.toString().toLowerCase().indexOf("<html");
+					  if (idx != -1){
+						  htmlPanel.show(item.toString().substring(idx));					  
+					  }else{
+						  htmlPanel.show(item.toString());
+					  }
+					  infoViewerPanel.removeAll();
+					  infoViewerPanel.add((JPanel)htmlPanel);
+					  infoViewerPanel.setVisible( true ); 							  
+					  revalidate();
+				  } else {
+					  FInfoDialogXML dlgXML = new FInfoDialogXML();
+						try {
+							dlgXML.setModel(new XMLContent() {
+								private ContentHandler handler;
+
+								public void setContentHandler(ContentHandler arg0) {
+									handler = arg0;
+								}
+
+								public void parse() throws SAXException {
+									handler.startDocument();
+									item.parse( handler);
+									handler.endDocument();
+								}
+							});
+							dlgXML.getXmlTree().setRootVisible(false);
+							DefaultTreeModel treeModel = (DefaultTreeModel) dlgXML
+									.getXmlTree().getModel();
+							DefaultMutableTreeNode n;
+							DefaultMutableTreeNode root = (DefaultMutableTreeNode) dlgXML
+									.getXmlTree().getModel().getRoot();
+							n = root.getFirstLeaf();
+							TreePath path = new TreePath(treeModel.getPathToRoot(n));
+							dlgXML.getXmlTree().expandPath(path);
+							dlgXML.getXmlTree().setSelectionPath(path);
+							//dlgXML.
+							
+							infoViewerPanel.removeAll();
+							infoViewerPanel.add(dlgXML);
+							infoViewerPanel.setVisible( true ); 
+							this.validate();
+	    					this.doLayout();	
+							
+						} catch (SAXException e1) {
+							e1.printStackTrace();
+						}
+				  }
+			  }
+		  }    	
+    }
+    
+    class componentListener implements ComponentListener{
+
+		public void componentHidden(ComponentEvent e) {
+			// TODO Auto-generated method stub
+			
+		}
+
+		public void componentMoved(ComponentEvent e) {
+			// TODO Auto-generated method stub
+			
+		}
+
+		public void componentResized(ComponentEvent e) {
+			
+			//if (e.getComponent() == )
+			if (infoPanel != null){
+				infoPanel.refreshSize();
+			}
+			
+			
+		}
+
+		public void componentShown(ComponentEvent e) {
+			// TODO Auto-generated method stub
+			
+		}
+    	
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/InfoToolViewer.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/HTMLInfoToolPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/HTMLInfoToolPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/HTMLInfoToolPanel.java	(revision 38262)
@@ -0,0 +1,83 @@
+package org.gvsig.app.project.documents.view.info.gui;
+
+import java.awt.Dimension;
+import java.awt.HeadlessException;
+
+import javax.swing.JEditorPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.event.HyperlinkEvent;
+import javax.swing.text.html.HTMLEditorKit;
+
+import org.gvsig.utils.BrowserControl;
+
+
+/**
+ * JPanel to show the feature information return in HTML code
+ * @author laura
+ *
+ */
+public class HTMLInfoToolPanel extends JPanel implements IInfoToolPanel{
+		
+	private boolean initialized = false;
+	private JEditorPane editor = null;
+	private JScrollPane scrollPane = null;
+
+	public HTMLInfoToolPanel() throws HeadlessException {
+		super();
+	}
+	
+	private void init() {
+		if (this.initialized ) return;
+				
+		this.setAutoscrolls(true);
+		this.setLocation(0,0);
+
+		scrollPane = new JScrollPane();		
+		scrollPane.setAutoscrolls(true);
+				
+		editor = new JEditorPane();
+		editor.setContentType("text/html");
+		editor.setAutoscrolls(true);
+		editor.setEditable(false);
+		editor.addHyperlinkListener(new javax.swing.event.HyperlinkListener() { 
+	          public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent e) {
+	           if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
+	           {
+	        	   BrowserControl.displayURL(e.getURL().toString());
+	           }
+	          }
+		});
+		
+//azabala		this.add(editor);
+		
+		
+		this.setSize(new Dimension(640, 400));
+		editor.setSize(new Dimension(640, 400));
+		
+		
+		editor.setEditorKit(new HTMLEditorKit());
+        scrollPane.setViewportView(editor);
+//azabalA		
+		this.add(scrollPane);
+		
+//azabala		scrollPane.setLocation(0,0);
+	}
+	
+	public void show(String text) 
+	{
+		this.init();
+		this.setVisible(true);	
+		editor.setText(text.replaceFirst("Content-Type","Content-Typex"));		
+	}
+
+	public void refreshSize() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void show(XMLItem item) {
+		// TODO Auto-generated method stub
+		
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/HTMLInfoToolPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/XMLItem.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/XMLItem.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/XMLItem.java	(revision 38262)
@@ -0,0 +1,42 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.app.project.documents.view.info.gui;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public interface XMLItem {
+	public void parse(ContentHandler handler) throws SAXException;
+	public FLayer getLayer();
+	
+}
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/info/gui/XMLItem.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/DefaultViewDocument.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/DefaultViewDocument.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/DefaultViewDocument.java	(revision 38262)
@@ -0,0 +1,116 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2009 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2004-2009 IVER TI
+*   
+*/
+package org.gvsig.app.project.documents.view;
+
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.project.ProjectPreferences;
+import org.gvsig.app.project.documents.DocumentManager;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+
+
+/**
+ * Clase que representa una vista del proyecto
+ *
+ * @author 2004-2005 Fernando Gonz�lez Cort�s
+ * @author 2006-2009 Jose Manuel Vivo
+ * @author 2005-         Vicente Caballero
+ * @author 2009-         Joaquin del Cerro
+ * 
+ */
+
+public class DefaultViewDocument extends BaseViewDocument {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 676711512482334764L;
+
+	public static final String PERSISTENCE_DEFINITION_NAME = "DefaultViewDocument";
+	
+
+	public DefaultViewDocument() {
+		this(null);
+	}
+	
+	public DefaultViewDocument(DocumentManager factory) {
+		super(factory); 
+
+		ViewPort vp;
+	
+		ProjectPreferences preferences = (ProjectPreferences) ApplicationLocator.getManager().getPreferences("project");
+    	
+    	MapContext viewMapContext = new MapContext(
+				new ViewPort( preferences.getDefaultProjection() )
+		);
+		vp = viewMapContext.getViewPort();
+		vp.setBackColor(preferences.getDefaultViewBackColor());
+		vp.setDistanceUnits(preferences.getDefaultDistanceUnits());
+		vp.setDistanceArea(preferences.getDefaultDistanceArea());
+		vp.setMapUnits(preferences.getDefaultMapUnits());
+		this.setMapContext(viewMapContext);
+		
+		MapContext overviewMapContext = new MapContext(
+				new ViewPort( viewMapContext.getProjection() )
+		);
+		vp = viewMapContext.getViewPort();
+		vp.setBackColor(preferences.getDefaultViewBackColor());
+		this.setMapOverViewContext(overviewMapContext);
+	}
+	
+	public void saveToState(PersistentState state) throws PersistenceException {
+		super.saveToState(state);
+	}
+	
+	public void loadFromState(PersistentState state) throws PersistenceException {
+		super.loadFromState(state);
+	}
+
+	public String exportDocumentAsText() {
+		// FIXME: jjdc PersistentManager getStateAsText o similar
+//		 PersistenceManager manager = ToolsLocator.getPersistenceManager();
+//		 PersistentState state = manager.getState(this);
+//		 return manager.getStateAsText(state);
+		return null;
+	}
+
+	public void setStateFromText(String text) {
+		// FIXME: jjdc PersistentManager getStateFromText o similar
+//		 PersistenceManager manager = ToolsLocator.getPersistenceManager();
+//		 PersistentState state = manager.getStateFromText(text);
+//		 this.loadFromState(state);
+	}
+
+	
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/DefaultViewDocument.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/CreateSpatialIndexMonitorableTask.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/CreateSpatialIndexMonitorableTask.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/CreateSpatialIndexMonitorableTask.java	(revision 38262)
@@ -0,0 +1,182 @@
+/*
+ * Created on 03-may-2006
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.4  2007-07-30 12:56:04  jaume
+* organize imports, java 5 code downgraded to 1.4 and added PictureFillSymbol
+*
+* Revision 1.3  2007/05/15 07:22:56  cesar
+* Add the finished method for execution from Event Dispatch Thread
+*
+* Revision 1.2  2007/03/06 16:37:08  caballero
+* Exceptions
+*
+* Revision 1.1  2006/09/15 10:41:30  caballero
+* extensibilidad de documentos
+*
+* Revision 1.2  2006/05/22 10:35:41  fjp
+* Monitorable tasks easy
+*
+* Revision 1.1  2006/05/08 15:41:06  azabala
+* added rtree spatial indexing capabilities
+*
+*
+*/
+package org.gvsig.app.project.documents.view.legend;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.utils.swing.threads.CancellableMonitorable;
+import org.gvsig.utils.swing.threads.DefaultCancellableMonitorable;
+import org.gvsig.utils.swing.threads.IMonitorableTask;
+
+
+public class CreateSpatialIndexMonitorableTask implements IMonitorableTask{
+
+	String MAIN_MESSAGE;
+	String HULL_MESSAGE = PluginServices.getText(this, "Indexando");
+	String OF = "de";
+
+	FLyrVect layer;
+	/**
+	 * It monitors advance of indexing process
+	 */
+	private CancellableMonitorable cancelMonitor = null;
+	/**
+	 * flag to tell if the process is finished
+	 */
+	private boolean finished = false;
+
+	/**
+	 * Default constructor
+	 * @throws DriverIOException
+	 * @throws DriverException
+	 */
+	public CreateSpatialIndexMonitorableTask(FLyrVect layer)
+			throws DataException {
+		this.layer = layer;
+		MAIN_MESSAGE = PluginServices.getText(this, "Indexando_espacialmente") +
+								layer.getName();
+//		cancelMonitor = createCancelMonitor();
+	}
+
+	/**
+	 * Creates a CancellableMonitorable instance to monitor
+	 * progress and to cancel the process.
+	 * @return
+	 * @throws DriverIOException
+	 * @throws DriverException
+	 */
+//	private CancellableMonitorable createCancelMonitor()
+//				throws ReadException {
+//		DefaultCancellableMonitorable monitor =
+//			new DefaultCancellableMonitorable();
+//		monitor.setInitialStep(0);
+//		monitor.setDeterminatedProcess(true);
+//		int numSteps = ((FLyrVect)layer).getFeatureStore().getDataCollection().size();
+//		monitor.setFinalStep(numSteps);
+//		return monitor;
+//	}
+
+	public void run() throws Exception {
+		FeatureStore fs=(layer).getFeatureStore();
+		//TODO comentado para que compile
+//		fs.createIndex(fs.getDefaultFeatureType());
+		finished = true;
+	}
+
+	public int getInitialStep() {
+		return cancelMonitor.getInitialStep();
+	}
+
+	public int getFinishStep() {
+		return cancelMonitor.getFinalStep();
+	}
+
+	public int getCurrentStep() {
+		return cancelMonitor.getCurrentStep();
+	}
+
+	public String getStatusMessage() {
+		return MAIN_MESSAGE;
+	}
+
+	public String getNote() {
+		return HULL_MESSAGE + " " +
+		getCurrentStep()+ " " +
+		OF  + " "+
+		getFinishStep();
+	}
+	//FIXME Borrar los ficheros de indice en caso de cancelacion
+	public void cancel() {
+		((DefaultCancellableMonitorable) cancelMonitor).setCanceled(true);
+	}
+	/**
+	 * Tells if it is a defined process (we know its number of steps)
+	 */
+	public boolean isDefined() {
+		return true;
+	}
+	public boolean isCanceled() {
+		return cancelMonitor.isCanceled();
+	}
+
+	public boolean isFinished() {
+		return finished;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.utiles.swing.threads.IMonitorableTask#finished()
+	 */
+	public void finished() {
+		// TODO Auto-generated method stub
+
+	}
+}//CreateSpatialIndexMonitorableTask
+
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/CreateSpatialIndexMonitorableTask.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/ValueCellEditor.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/ValueCellEditor.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/ValueCellEditor.java	(revision 38262)
@@ -0,0 +1,231 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.edition.gui;
+
+import java.awt.Component;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+import java.util.EventObject;
+
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.event.CellEditorListener;
+import javax.swing.event.ChangeEvent;
+import javax.swing.table.TableCellEditor;
+
+/**
+ * Cell Editor sobre los valores �nicos.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ValueCellEditor extends JTextField implements TableCellEditor {
+	private ArrayList listeners = new ArrayList();
+	//private Value initialValue;
+
+	/**
+	 * Crea un nuevo FLabelCellEditor.
+	 */
+	public ValueCellEditor() {
+		addKeyListener(new KeyAdapter() {
+				public void keyReleased(KeyEvent e) {
+					if (e.getKeyCode() == KeyEvent.VK_ENTER) {
+						stopCellEditing();
+					} else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
+						cancelCellEditing();
+					}
+				}
+			});
+	}
+
+	//Implement the one CellEditor method that AbstractCellEditor doesn't.
+	public Object getCellEditorValue() {
+		return getValue(getText());
+	}
+
+	//Implement the one method defined by TableCellEditor.
+	public Component getTableCellEditorComponent(JTable table, Object value,
+		boolean isSelected, int row, int column) {
+		//initialValue=(Value)value;
+		if (value == null) {
+			setText("");
+		} else {
+			setText(value.toString());
+		}
+
+		return this;
+	}
+
+	/**
+	 * @see javax.swing.CellEditor#cancelCellEditing()
+	 */
+	public void cancelCellEditing() {
+		//if (initialValue != null) {
+		//	setText(initialValue.toString());
+		//}
+
+		for (int i = 0; i < listeners.size(); i++) {
+			CellEditorListener l = (CellEditorListener) listeners.get(i);
+			ChangeEvent evt = new ChangeEvent(this);
+			l.editingCanceled(evt);
+		}
+	}
+
+	/**
+	 * @see javax.swing.CellEditor#stopCellEditing()
+	 */
+	public boolean stopCellEditing() {
+		for (int i = 0; i < listeners.size(); i++) {
+			CellEditorListener l = (CellEditorListener) listeners.get(i);
+			ChangeEvent evt = new ChangeEvent(this);
+			l.editingStopped(evt);
+		}
+
+		return true;
+	}
+
+	/**
+	 * @see javax.swing.CellEditor#isCellEditable(java.util.EventObject)
+	 */
+	public boolean isCellEditable(EventObject anEvent) {
+		return true;
+	}
+
+	/**
+	 * @see javax.swing.CellEditor#shouldSelectCell(java.util.EventObject)
+	 */
+	public boolean shouldSelectCell(EventObject anEvent) {
+		return true;
+	}
+
+	/**
+	 * @see javax.swing.CellEditor#addCellEditorListener(javax.swing.event.CellEditorListener)
+	 */
+	public void addCellEditorListener(CellEditorListener l) {
+		listeners.add(l);
+	}
+
+	/**
+	 * @see javax.swing.CellEditor#removeCellEditorListener(javax.swing.event.CellEditorListener)
+	 */
+	public void removeCellEditorListener(CellEditorListener l) {
+		listeners.remove(l);
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param s DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 */
+	private Object getValue(String s) {
+		Object val = null;
+		//Value cero = null;
+
+//		try {
+			try {
+				val = new Integer(s);//ValueFactory.createValueByType(s, Types.INTEGER);
+
+				return val;
+			} catch (NumberFormatException e) {
+			}
+
+			try {
+				val = new Long(s);//ValueFactory.createValueByType(s, Types.BIGINT);
+
+				return val;
+			} catch (NumberFormatException e) {
+			}
+
+			try {
+				val = new Float(s);//ValueFactory.createValueByType(s, Types.FLOAT);
+
+				return val;
+			} catch (NumberFormatException e) {
+			}
+
+			try {
+				val = new Double(s);//ValueFactory.createValueByType(s, Types.DOUBLE);
+
+				return val;
+			} catch (NumberFormatException e) {
+			}
+
+			val = s;//ValueFactory.createValueByType(s, Types.LONGVARCHAR);
+//		} catch (ParseException e) {
+//			e.printStackTrace();
+//		}
+
+		/*try {
+		   if (v instanceof DoubleValue) {
+		           val = ValueFactory.createValue(Double.parseDouble(s));
+		           cero = ValueFactory.createValue((double) 0);
+		   } else if (v instanceof StringValue) {
+		           val = ValueFactory.createValue(s);
+		           cero = ValueFactory.createValue((String) "");
+		   } else if (v instanceof LongValue) {
+		           val = ValueFactory.createValue(Long.parseLong(s));
+		           cero = ValueFactory.createValue((long) 0);
+		   } else if (v instanceof IntValue) {
+		           val = ValueFactory.createValue(Integer.parseInt(s));
+		           cero = ValueFactory.createValue((int) 0);
+		   } else if (v instanceof FloatValue) {
+		           val = ValueFactory.createValue(Float.parseFloat(s));
+		           cero = ValueFactory.createValue((float) 0);
+		   } else if (v instanceof ShortValue) {
+		           val = ValueFactory.createValue(Short.parseShort(s));
+		           cero = ValueFactory.createValue((short) 0);
+		   } else if (v instanceof BooleanValue) {
+		           val = ValueFactory.createValue(Boolean.getBoolean(s));
+		           cero = ValueFactory.createValue((boolean) false);
+		   } else if (v instanceof DateValue) {
+		           val = ValueFactory.createValue(Date.parse(s));
+		           cero = ValueFactory.createValue((Date) new Date());
+		   }
+		   } catch (NumberFormatException e) {
+		           ///JOptionPane.showMessageDialog(null, PluginServices...getText(this,"Formato de n�mero erroneo")+".");
+		           return cero;
+		   }
+		 */
+		return val;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/ValueCellEditor.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PanelEditInterval.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PanelEditInterval.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PanelEditInterval.java	(revision 38262)
@@ -0,0 +1,244 @@
+/*
+ * Created on 24-may-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.edition.gui;
+
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.fmap.mapcontext.rendering.legend.IInterval;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.FInterval;
+
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author fjp To change the template for this generated type comment go to
+ *         Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and
+ *         Comments
+*/
+public class PanelEditInterval extends JPanel implements IWindow  {
+	private JButton jButton = null;
+	//private FIntervalCellEditor intervaleditor;
+	private JPanel jPanel = null;
+	private JPanel jPanel1 = null;
+	private JLabel jLabel = null;
+	private JTextField m_txtMin1 = null;
+	private JPanel jPanel2 = null;
+	private JLabel jLabel1 = null;
+	private JTextField m_txtMax1 = null;
+	private boolean ok=false;
+	/**
+     * This is the default constructor
+     */
+    public PanelEditInterval() {
+        super();
+        initialize();
+		//intervaleditor=ice;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param i DOCUMENT ME!
+     */
+    public void setFInterval(IInterval i) {
+    	ok=false;
+		if (i instanceof FInterval){
+
+			m_txtMin1.setText(String.valueOf(((FInterval)i).getMin()));
+			m_txtMax1.setText(String.valueOf(((FInterval)i).getMax()));
+		}
+	}
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public FInterval getFInterval() {
+		double from=0;
+		double to=0;
+		try{
+        from = Double.parseDouble(m_txtMin1.getText());
+        to =Double.parseDouble(m_txtMax1.getText());
+
+		}catch (NumberFormatException e) {
+			JOptionPane.showMessageDialog(null, PluginServices.getText(this,"Formato_de_numero_erroneo")+".");
+		}
+		FInterval i = new FInterval(from, to);
+        return i;
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        this.setSize(316, 124);
+		this.add(getJPanel1(), null);
+		this.add(getJPanel2(), null);
+		this.add(getJPanel(), null);
+
+
+    }
+
+	public WindowInfo getWindowInfo() {
+		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
+		m_viewinfo.setTitle(PluginServices.getText(this, "Intervalo"));
+		m_viewinfo.setWidth(this.getWidth());
+		m_viewinfo.setHeight(this.getHeight());
+		return m_viewinfo;
+	}
+
+	/**
+	 * This method initializes jButton
+	 *
+	 * @return javax.swing.JButton
+	 */
+	private JButton getJButton() {
+		if (jButton == null) {
+			jButton = new JButton();
+			jButton.setText("aceptar");
+			jButton.setPreferredSize(new java.awt.Dimension(90,26));
+			jButton.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					//intervaleditor.setCurrentInterval(getFInterval());
+					ok=true;
+					PluginServices.getMDIManager().closeWindow(PanelEditInterval.this);
+				}
+			});
+		}
+		return jButton;
+	}
+	public boolean isOK(){
+		return ok;
+	}
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel() {
+		if (jPanel == null) {
+			jPanel = new JPanel();
+			jPanel.setPreferredSize(new java.awt.Dimension(140,36));
+			jPanel.add(getJButton(), null);
+		}
+		return jPanel;
+	}
+
+	/**
+	 * This method initializes jPanel1
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel1() {
+		if (jPanel1 == null) {
+			jLabel = new JLabel();
+			jLabel.setText("Valor minimo");
+			jPanel1 = new JPanel();
+			jPanel1.add(jLabel, null);
+			jPanel1.add(getM_txtMin1(), null);
+
+		}
+		return jPanel1;
+	}
+
+	/**
+	 * This method initializes jTextField
+	 *
+	 * @return javax.swing.JTextField
+	 */
+	private JTextField getM_txtMin1() {
+		if (m_txtMin1 == null) {
+			m_txtMin1 = new JTextField();
+			m_txtMin1.setPreferredSize(new java.awt.Dimension(100,20));
+		}
+		return m_txtMin1;
+	}
+
+	/**
+	 * This method initializes jPanel2
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel2() {
+		if (jPanel2 == null) {
+			jLabel1 = new JLabel();
+			jLabel1.setText("Valor maximo");
+			jPanel2 = new JPanel();
+			jPanel2.add(jLabel1, null);
+			jPanel2.add(getM_txtMax1(), null);
+
+		}
+		return jPanel2;
+	}
+
+	/**
+	 * This method initializes jTextField
+	 *
+	 * @return javax.swing.JTextField
+	 */
+	private JTextField getM_txtMax1() {
+		if (m_txtMax1 == null) {
+			m_txtMax1 = new JTextField();
+			m_txtMax1.setPreferredSize(new java.awt.Dimension(100,20));
+		}
+		return m_txtMax1;
+	}
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+
+}  //  @jve:decl-index=0:visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PanelEditInterval.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PreviewIcon.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PreviewIcon.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PreviewIcon.java	(revision 38262)
@@ -0,0 +1,80 @@
+package org.gvsig.app.project.documents.view.legend.edition.gui;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.event.MouseListener;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+
+public class PreviewIcon extends JPanel {
+	private ImageIcon icon;
+	private boolean isSelected;
+
+	/**
+	 *
+	 */
+	public PreviewIcon() {
+		super();
+			initialize();
+	}
+
+
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private void initialize() {
+        this.setSize(70, 52);
+
+	}
+	protected void paintComponent(Graphics g) {
+		super.paintComponent(g);
+		if (icon == null)
+			return;
+
+		Graphics2D g2 = (Graphics2D) g;
+		//g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+		//g.setClip(0,0,getWidth(), getHeight());
+		//Rectangle r = g.getClipBounds(); //getClipRect();
+		if (isSelected)
+			g2.setColor(Color.blue);
+		else
+			g2.setColor(Color.white);
+
+		//g2.setColor(color);
+		g2.fillRect(0,0,getWidth(),getHeight());
+		g2.drawImage(icon.getImage(),0,0,this);
+
+	}
+	public void setSelected(boolean b) {
+		isSelected=b;
+	}
+	public void setIcon(ImageIcon icon) {
+		this.icon=icon;
+		repaint();
+	}
+	public ImageIcon getIcon() {
+		return icon;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.Component#isShowing()
+	 */
+	public boolean isShowing() {
+		return true; // super.isShowing();
+	}
+
+
+	public boolean isSelected() {
+		return isSelected;
+	}
+
+
+	public synchronized void addMouseListener(MouseListener arg0) {
+		super.addMouseListener(arg0);
+
+	}
+}  //  @jve:visual-info  decl-index=0 visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/PreviewIcon.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/IntervalCellEditor.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/IntervalCellEditor.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/IntervalCellEditor.java	(revision 38262)
@@ -0,0 +1,183 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+*
+* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+*
+* For more information, contact:
+*
+*  Generalitat Valenciana
+*   Conselleria d'Infraestructures i Transport
+*   Av. Blasco Ib��ez, 50
+*   46010 VALENCIA
+*   SPAIN
+*
+*      +34 963862235
+*   gvsig@gva.es
+*      www.gvsig.gva.es
+*
+*    or
+*
+*   IVER T.I. S.A
+*   Salamanca 50
+*   46005 Valencia
+*   Spain
+*
+*   +34 963163400
+*   dac@iver.es
+*/
+package org.gvsig.app.project.documents.view.legend.edition.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.ArrayList;
+import java.util.EventObject;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JTable;
+import javax.swing.event.CellEditorListener;
+import javax.swing.event.ChangeEvent;
+import javax.swing.table.TableCellEditor;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontext.rendering.legend.IInterval;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.FInterval;
+
+
+
+/**
+ * Cell Editor de intervalos. Controla los eventos de edici�n que se realicen
+ * sobre la columna de intervalos.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class IntervalCellEditor extends JButton
+	implements TableCellEditor{
+
+	private static final long serialVersionUID = 2020808901328629215L;
+
+	private List listeners = new ArrayList();
+	private IInterval interval;
+	private PanelEditInterval editPanel;
+		/**
+	 * Crea un nuevo FIntervalCellEditor.
+	 */
+	public IntervalCellEditor() {
+		addMouseListener(new MouseListener(){
+
+			public void mouseClicked(MouseEvent e) {
+				if (e.getClickCount()==2){
+					if (interval instanceof IInterval){
+					editPanel.setFInterval(interval);
+					PluginServices.getMDIManager().addWindow(editPanel);
+					if (editPanel.isOK()){
+						interval = editPanel.getFInterval();
+						setBackground(Color.white);
+						setText(interval.toString());
+						stopCellEditing();
+					}
+					}
+				}
+			}
+
+			public void mouseEntered(MouseEvent e) {
+			}
+
+			public void mouseExited(MouseEvent e) {
+			}
+
+			public void mousePressed(MouseEvent e) {
+			}
+
+			public void mouseReleased(MouseEvent e) {
+			}
+			
+		});
+		addKeyListener(new KeyAdapter() {
+            public void keyReleased(KeyEvent e) {
+                if (e.getKeyCode() == KeyEvent.VK_ENTER){
+                    stopCellEditing();
+                }else if (e.getKeyCode() == KeyEvent.VK_ESCAPE){
+                    cancelCellEditing();
+                }
+            }
+        });
+		editPanel = new PanelEditInterval();
+		this.setBackground(Color.white);
+		
+	}
+
+	/**
+	 * Inserta el intervalo.
+	 *
+	 * @param i DOCUMENT ME!
+	 */
+	public void setCurrentInterval(FInterval i) {
+		interval = i;
+		this.setText(i.toString());
+	}
+
+	//Implement the one CellEditor method that AbstractCellEditor doesn't.
+	public Object getCellEditorValue() {
+		return interval;
+	}
+
+	//Implement the one method defined by TableCellEditor.
+	public Component getTableCellEditorComponent(JTable table, Object value,
+		boolean isSelected, int row, int column) {
+		interval = (IInterval) value;
+		this.setText(interval.toString());
+		editPanel.setFInterval(interval);
+		return this;
+	}
+
+	public void cancelCellEditing() {
+		for (int i = 0; i < listeners.size(); i++) {
+	        CellEditorListener l = (CellEditorListener) listeners.get(i);
+	        ChangeEvent evt = new ChangeEvent(this);
+	        l.editingCanceled(evt);
+	    }
+	}
+
+	public boolean stopCellEditing() {
+		for (int i = 0; i < listeners.size(); i++) {
+            CellEditorListener l = (CellEditorListener) listeners.get(i);
+            ChangeEvent evt = new ChangeEvent(this);
+            l.editingStopped(evt);
+        }
+        return true;
+	}
+
+	public boolean isCellEditable(EventObject anEvent) {
+		return true;
+	}
+
+	public boolean shouldSelectCell(EventObject anEvent) {
+		return true;
+	}
+
+	public void addCellEditorListener(CellEditorListener l) {
+		listeners.add(l);
+	}
+
+	public void removeCellEditorListener(CellEditorListener l) {
+		listeners.remove(l);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/edition/gui/IntervalCellEditor.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/JLegendFileChooser.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/JLegendFileChooser.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/JLegendFileChooser.java	(revision 38262)
@@ -0,0 +1,173 @@
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import javax.swing.JFileChooser;
+
+
+/**
+ *
+ * JLegendFileChooser.java
+ *
+ *
+ * @author jaume dominguez faus - jaume.dominguez@iver.es Jul 22, 2008
+ *
+ */
+public class JLegendFileChooser extends JFileChooser  {
+	private static final long serialVersionUID = 8855060580358068594L;
+	private static String lastPath;
+//	private IFMapLegendDriver[] drivers;
+	private boolean write_mode = false;
+	public static String driverVersion;
+
+	public JLegendFileChooser() {
+		super();
+	}
+
+//	public JLegendFileChooser(IFMapLegendDriver[] legendDrivers) {
+//		this(legendDrivers, false);
+//	}
+//
+//	public JLegendFileChooser(final IFMapLegendDriver[] legendDrivers, boolean write_mode) {
+//		super(lastPath);
+//		this.write_mode = write_mode;
+//		this.drivers = legendDrivers;
+//
+//		setMultiSelectionEnabled(false);
+//
+//		if (!this.write_mode){//load method->"all the drivers in one"
+//
+//			this.setFileFilter(new FileFilter() {
+//				@Override
+//				public boolean accept(File f) {
+//					for (int i = 0; i < legendDrivers.length; i++) {
+//						if (legendDrivers[i].accept(f))
+//							return true;
+//					}
+//					return false;
+//				}
+//
+//				@Override
+//				public String getDescription() {
+//					String strLegendFormats = "";
+//					for (int i = 0; i < legendDrivers.length; i++) {
+//
+//						strLegendFormats += "*."+legendDrivers[i].getFileExtension();
+//						if (i<legendDrivers.length-1) strLegendFormats += ", ";
+//					}
+//
+//					return PluginServices.getText(this, "all_supported_legend_formats") +
+//					" ("+strLegendFormats+")";
+//				}
+//			});
+//		}
+//		else {//write method->all drivers are separated
+//			for (int i = 0; i < legendDrivers.length; i++) {
+//				final IFMapLegendDriver driver = legendDrivers[i];
+//
+//				if (driver.getSupportedVersions() != null) {
+//
+//					for (int j = 0; j < driver.getSupportedVersions().size(); j++) {
+//
+//						final String version = (String)driver.getSupportedVersions().get(j);
+//
+//						FileFilter aFilter = new FileFilter() {
+//
+//							@Override
+//							public boolean accept(File f) {
+//								return driver.accept(f);
+//							}
+//
+//							@Override
+//							public String getDescription() {
+//								return PluginServices.getText(this, driver.getDescription()+" "+version+" (*."+driver.getFileExtension()+")");
+//							}
+//
+//						};
+//						this.addChoosableFileFilter(aFilter);
+//					}
+//				}
+//				else {
+//
+//					FileFilter aFilter = new FileFilter() {
+//
+//						@Override
+//						public boolean accept(File f) {
+//							return driver.accept(f);
+//						}
+//
+//						@Override
+//						public String getDescription() {
+//							return PluginServices.getText(this, driver.getDescription()+" (*."+driver.getFileExtension()+")");
+//						}
+//
+//					};
+//					this.addChoosableFileFilter(aFilter);
+//				}
+//
+//			}
+//		}
+//	}
+//
+//
+//
+//	public IFMapLegendDriver getSuitableDriver() {
+//		File f = getSelectedFile();
+//
+//		for (int i = 0; drivers != null && i < drivers.length; i++) {
+//			if (drivers[i].accept(f))
+//				return drivers[i];
+//		}
+//		return null;
+//	}
+//
+//
+//
+//	public IFMapLegendDriver getDriverFromDescription(File file) {
+//		if (getFileFilter() != null){
+//			String descripFile = getFileFilter().getDescription();
+//			IFMapLegendDriver myDriver = null;
+//
+//			for (int i = 0; i < drivers.length; i++) {
+//
+//				myDriver = drivers[i];
+//				String driverDesc;
+//
+//				if(myDriver.getSupportedVersions() != null) {
+//					for (int j = 0; j < myDriver.getSupportedVersions().size(); j++) {
+//						driverDesc = myDriver.getDescription()+" "+myDriver.getSupportedVersions().get(j)+" (*."+myDriver.getFileExtension()+")";
+//						if (driverDesc.equals(descripFile)){
+//							driverVersion = (String)myDriver.getSupportedVersions().get(j);
+//							return myDriver;
+//						}
+//					}
+//				}
+//				else {
+//					driverDesc = myDriver.getDescription()+" (*."+myDriver.getFileExtension()+")";
+//					if (driverDesc.equals(descripFile)){
+//						driverVersion ="";
+//						return myDriver;
+//					}
+//				}
+//			}
+//		}
+//		return null;
+//	}
+//
+//	public File getSelectedFile() {
+//		File f = super.getSelectedFile();
+//
+//		IFMapLegendDriver myDriver = getDriverFromDescription(f);
+//		if (f!=null){
+//			if(myDriver != null && !(f.getPath().toLowerCase().endsWith("."+myDriver.getFileExtension()))){
+//				f = new File(f.getPath()+ "."+myDriver.getFileExtension());
+//			}
+//			lastPath = f.getAbsolutePath().substring(0, f.getAbsolutePath().lastIndexOf(File.separator));
+//		}
+//		return f;
+//	}
+
+	public static String getDriverVersion() {
+		return driverVersion;
+	}
+
+
+}
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/PanelEditSymbol.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/PanelEditSymbol.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/PanelEditSymbol.java	(revision 38262)
@@ -0,0 +1,164 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+
+
+
+/**
+ * Panel creado para editar el s�mbolo seleccionado.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class PanelEditSymbol extends JPanel implements IWindow {
+	private SingleSymbol panel = null;
+	private JButton bAceptar = null;  //  @jve:decl-index=0:visual-constraint="198,310"
+	private JPanel panelbutton = null;
+	private boolean ok=false;
+	//private FSymbol symbol;
+
+
+	public PanelEditSymbol(){
+		initialize();
+	}
+
+	/**
+	 * This method initializes this
+	 *
+	 */
+	private void initialize() {
+        this.setLayout(new BorderLayout());
+        this.setSize(450, 343);
+        this.add(getPanel(), java.awt.BorderLayout.NORTH);
+		this.add(getPanelbutton(),BorderLayout.SOUTH);
+	}
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @return DOCUMENT ME!
+	 */
+	public WindowInfo getWindowInfo() {
+		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
+		m_viewinfo.setTitle(PluginServices.getText(this, "simbolo"));
+		m_viewinfo.setWidth(getWidth()+10);
+		m_viewinfo.setHeight(getHeight());
+		return m_viewinfo;
+	}
+
+	/**
+	 * This method initializes panel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private SingleSymbol getPanel() {
+		if (panel == null) {
+			panel = new SingleSymbol();
+			panel.setPreferredSize(new Dimension(400, 300));
+			panel.setVisible(true);
+		}
+		return panel;
+	}
+
+	/**
+	 * This method initializes bAceptar
+	 *
+	 * @return javax.swing.JButton
+	 */
+	private JButton getBAceptar() {
+		if (bAceptar == null) {
+			bAceptar = new JButton();
+			bAceptar.setPreferredSize(new java.awt.Dimension(80,20));
+			bAceptar.setText("Aceptar");
+			bAceptar.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					ok=true;
+					PluginServices.getMDIManager().closeWindow(PanelEditSymbol.this);
+				}
+			});
+			bAceptar.setSize(35, 20);
+		}
+		return bAceptar;
+	}
+
+	public ISymbol getSymbol(){
+		return panel.getSymbol();
+	}
+
+	public void setSymbol(ISymbol s){
+		ok=false;
+		panel.setSymbol(s);
+	}
+
+	public boolean isOK(){
+		return ok;
+	}
+	/**
+	 * This method initializes panelbutton
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getPanelbutton() {
+		if (panelbutton == null) {
+			panelbutton = new JPanel();
+			panelbutton.add(getBAceptar(), null);
+		}
+		return panelbutton;
+	}
+
+	public void setShapeType(int shapeType) {
+		getPanel().setShapeType(shapeType);
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+
+}  //  @jve:decl-index=0:visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/PanelEditSymbol.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialInterval.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialInterval.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialInterval.java	(revision 38262)
@@ -0,0 +1,895 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.swing.BorderFactory;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.ImageIcon;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.gui.panels.ColorChooserPanel;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.MapContextManager;
+import org.gvsig.fmap.mapcontext.exceptions.LegendLayerException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.operations.ClassifiableVectorial;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.IInterval;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.IVectorialIntervalLegend;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
+import org.gvsig.gui.beans.swing.JButton;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.FInterval;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.VectorialIntervalLegend;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class VectorialInterval extends JPanel implements ILegendPanel{
+    private static final Logger logger = LoggerFactory
+            .getLogger(VectorialInterval.class);
+    private GridBagLayoutPanel pnlGeneral = null;
+    protected JComboBox cmbField = null;
+    protected JTextField txtNumIntervals = null;
+    private ColorChooserPanel colorChooserPanel = null;
+    private ColorChooserPanel colorChooserPanel1 = null;
+    protected JCheckBox chkdefaultvalues = null;
+    protected JComboBox cmbFieldType = null;
+    private JPanel panelS = null;
+    private JButton bintervals = null;
+    private JButton bInsert = null;
+    protected JButton bDelAll = null;
+    protected JButton bDel = null;
+    private int count = 0;
+    protected ClassifiableVectorial layer;
+    protected VectorialIntervalLegend theLegend;
+    protected IVectorialIntervalLegend auxLegend = null;
+    protected SymbolTable symbolTable;
+    private MyListener listener = new MyListener();
+    protected JPanel pnlCenter = null;
+    protected JPanel optionPanel;
+    private JPanel pnlNorth;
+	protected JSymbolPreviewButton defaultSymbolPrev;
+	private GridBagLayoutPanel defaultSymbolPanel = new GridBagLayoutPanel();
+	
+	private MapContextManager mapContextManager = MapContextLocator
+			.getMapContextManager();
+
+    /**
+     * This is the default constructor
+     */
+    public VectorialInterval() {
+        super();
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        this.setLayout(new BorderLayout());
+        this.setSize(700, 350);
+        this.add(getPnlNorth(), BorderLayout.NORTH);
+
+        this.add(getPnlButtons(), BorderLayout.SOUTH);
+        this.add(getPnlCenter(), BorderLayout.CENTER);
+        setOptionPanel(getOptionPanel());
+    }
+
+    private JPanel getPnlNorth() {
+        if (pnlNorth == null) {
+            pnlNorth = new JPanel(new GridLayout(1, 2));
+            pnlNorth.add(getGeneralPanel());
+        }
+        return pnlNorth;
+    }
+
+    /**
+     * This method initializes panelN
+     *
+     * @return javax.swing.JPanel
+     */
+    private JPanel getGeneralPanel() {
+        if (pnlGeneral == null) {
+            pnlGeneral = new GridBagLayoutPanel();
+            pnlGeneral.setBorder(BorderFactory.
+                    createTitledBorder(null,
+                            PluginServices.getText(this, "fields")));
+            pnlGeneral.addComponent(PluginServices.getText(this, "Campo_de_clasificacion"),
+                    getCmbFields());
+            pnlGeneral.addComponent(PluginServices.getText(this, "tipo_de_intervalo"),
+                    getCmbIntervalTypes());
+
+            JPanel aux = new JPanel(new FlowLayout(FlowLayout.LEADING, 0, 0));
+            aux.add(getTxtNumIntervals());
+            pnlGeneral.addComponent(PluginServices.getText(this, "No_de_intervalos"),
+                    aux);
+            defaultSymbolPanel.add(getChkDefaultvalues(), null);
+			pnlGeneral.addComponent(defaultSymbolPanel);
+        }
+        return pnlGeneral;
+    }
+
+    public JPanel getOptionPanel() {
+        if (optionPanel == null) {
+            optionPanel = new JPanel(new FlowLayout(FlowLayout.LEADING));
+            optionPanel.setBorder(BorderFactory.
+                    createTitledBorder(null,
+                            PluginServices.getText(this, "color_ramp")));
+
+            GridBagLayoutPanel aux = new GridBagLayoutPanel();
+            aux.addComponent(PluginServices.getText(this, "Color_final"),
+                    getColorChooserPanel());
+            aux.addComponent(PluginServices.getText(this, "Color_inicio"),
+                    getColorChooserPanel1());
+            optionPanel.add(aux);
+        }
+        return optionPanel;
+    }
+
+    private void setOptionPanel(JPanel p) {
+        getPnlNorth().remove(getOptionPanel());
+        getPnlNorth().add(p, BorderLayout.NORTH);
+    }
+    /**
+     * This method initializes jComboBox
+     *
+     * @return javax.swing.JComboBox
+     */
+    private JComboBox getCmbFields() {
+        if (cmbField == null) {
+            cmbField = new JComboBox();
+            cmbField.setActionCommand("FIELD_SELECTED");
+            cmbField.addActionListener(listener);
+            cmbField.setVisible(true);
+        }
+
+        return cmbField;
+    }
+
+    /**
+     * This method initializes txtNumIntervals
+     *
+     * @return javax.swing.JTextField
+     */
+    private JTextField getTxtNumIntervals() {
+        if (txtNumIntervals == null) {
+            txtNumIntervals = new JTextField(5);
+            txtNumIntervals.setText("5");
+        }
+
+        return txtNumIntervals;
+    }
+
+    /**
+     * This method initializes colorChooserPanel
+     *
+     * @return com.iver.cit.gvsig.gui.Panels.ColorChooserPanel
+     */
+    private ColorChooserPanel getColorChooserPanel() {
+        if (colorChooserPanel == null) {
+            colorChooserPanel = new ColorChooserPanel();
+            colorChooserPanel.setBounds(new java.awt.Rectangle(108, 49, 54, 20));
+            colorChooserPanel.setAlpha(255);
+            colorChooserPanel.setColor(Color.red);
+        }
+
+        return colorChooserPanel;
+    }
+
+    /**
+     * This method initializes colorChooserPanel1
+     *
+     * @return com.iver.cit.gvsig.gui.Panels.ColorChooserPanel
+     */
+    private ColorChooserPanel getColorChooserPanel1() {
+        if (colorChooserPanel1 == null) {
+            colorChooserPanel1 = new ColorChooserPanel();
+            colorChooserPanel1.setBounds(new java.awt.Rectangle(251, 49, 54, 20));
+            colorChooserPanel1.setAlpha(255);
+            colorChooserPanel1.setColor(Color.blue);
+        }
+
+        return colorChooserPanel1;
+    }
+
+    /**
+     * This method initializes chkdefaultvalues
+     *
+     * @return javax.swing.JCheckBox
+     */
+    protected JCheckBox getChkDefaultvalues() {
+		if (chkdefaultvalues == null) {
+			chkdefaultvalues = new JCheckBox();
+			chkdefaultvalues.setText(PluginServices.getText(this,
+			"resto_valores")+": ");
+			chkdefaultvalues.setBounds(new java.awt.Rectangle(342, 26, 141, 20));
+			chkdefaultvalues.setSelected(false);
+			chkdefaultvalues.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					if (chkdefaultvalues.isSelected()) {
+						auxLegend.useDefaultSymbol(true);
+					} else {
+						auxLegend.useDefaultSymbol(false);
+					}
+				}
+			});
+		}
+
+		return chkdefaultvalues;
+	}
+
+    /**
+     * This method initializes jComboBox1
+     *
+     * @return javax.swing.JComboBox
+     */
+    private JComboBox getCmbIntervalTypes() {
+        if (cmbFieldType == null) {
+            cmbFieldType = new JComboBox();
+            cmbFieldType.setActionCommand("INTERVAL_TYPE");
+            cmbFieldType.addActionListener(listener);
+            cmbFieldType.addItem(PluginServices.getText(this, "equal_intervals"));
+            cmbFieldType.addItem(PluginServices.getText(this,
+                    "natural_intervals"));
+            cmbFieldType.addItem(PluginServices.getText(this,
+                    "quantile_intervals"));
+            cmbFieldType.setVisible(true);
+        }
+
+        return cmbFieldType;
+    }
+
+    /**
+     * This method initializes panelS
+     *
+     * @return javax.swing.JPanel
+     */
+    protected JPanel getPnlButtons() {
+        if (panelS == null) {
+            panelS = new JPanel();
+            panelS.setPreferredSize(new java.awt.Dimension(417, 32));
+            panelS.add(getBintervals(), null);
+            panelS.add(getBInsert(), null);
+            panelS.add(getBDelAll(), null);
+            panelS.add(getBDel(), null);
+        }
+
+        return panelS;
+    }
+
+    /**
+     * This method initializes bintervals
+     *
+     * @return javax.swing.JButton
+     */
+    private JButton getBintervals() {
+        if (bintervals == null) {
+            bintervals = new JButton();
+            bintervals.setActionCommand("ADD_ALL_VALUES");
+            bintervals.addActionListener(listener);
+            bintervals.setText(PluginServices.getText(this,
+                    "Calcular_intervalos"));
+        }
+
+        return bintervals;
+    }
+
+    /**
+     * This method initializes bInsert
+     *
+     * @return javax.swing.JButton
+     */
+    private JButton getBInsert() {
+        if (bInsert == null) {
+            bInsert = new JButton();
+            bInsert.setActionCommand("ADD_VALUE");
+            bInsert.addActionListener(listener);
+            bInsert.setText(PluginServices.getText(this, "Anadir"));
+        }
+
+        return bInsert;
+    }
+
+    /**
+     * This method initializes bDelAll
+     *
+     * @return javax.swing.JButton
+     */
+    private JButton getBDelAll() {
+        if (bDelAll == null) {
+            bDelAll = new JButton();
+            bDelAll.setActionCommand("REMOVE_ALL");
+            bDelAll.addActionListener(listener);
+            bDelAll.setText(PluginServices.getText(this, "Quitar_todos"));
+        }
+
+        return bDelAll;
+    }
+
+    /**
+     * This method initializes bDel
+     *
+     * @return javax.swing.JButton
+     */
+    private JButton getBDel() {
+        if (bDel == null) {
+            bDel = new JButton();
+            bDel.setText(PluginServices.getText(this, "Quitar"));
+            bDel.setActionCommand("REMOVE");
+            bDel.addActionListener(listener);
+        }
+
+        return bDel;
+    }
+
+
+    /**
+     * Damos una primera pasada para saber los l�mites inferior y superior y
+     * rellenar un array con los valores. Luego dividimos ese array en
+     * intervalos.
+     */
+    protected void fillTableValues() {
+
+        symbolTable.removeAllItems();
+
+        try {
+            IInterval[] arrayIntervalos = calculateIntervals();
+            if (arrayIntervalos == null) {
+				return;
+			}
+
+            IInterval interval;
+            NumberFormat.getInstance().setMaximumFractionDigits(2);
+            //theLegend.clear();
+            auxLegend.clear();
+
+            int r;
+            int g;
+            int b;
+            int stepR;
+            int stepG;
+            int stepB;
+
+            // Cogemos el tipo de gradaci�n de colores que quiere el usuario y
+            // Creamos el primer y �ltimo color.
+            Color startColor = colorChooserPanel.getColor();
+
+            Color endColor = colorChooserPanel1.getColor();
+
+            r = startColor.getRed();
+            g = startColor.getGreen();
+            b = startColor.getBlue();
+            stepR = (endColor.getRed() - r) / arrayIntervalos.length;
+            stepG = (endColor.getGreen() - g) / arrayIntervalos.length;
+            stepB = (endColor.getBlue() - b) / arrayIntervalos.length;
+
+//            auxLegend = LegendFactory.createVectorialIntervalLegend(layer.getShapeType());
+			auxLegend = (IVectorialIntervalLegend) MapContextLocator
+					.getMapContextManager().createLegend(
+							IVectorialIntervalLegend.LEGEND_NAME);
+            auxLegend.setShapeType(layer.getShapeType());
+            auxLegend.useDefaultSymbol(false);
+            auxLegend.setStartColor(startColor);
+            auxLegend.setEndColor(endColor);
+
+            int symbolType = layer.getShapeType();
+            int numSymbols = 0;
+
+            for (int k = 0; k < arrayIntervalos.length; k++) {
+                interval = arrayIntervalos[k];
+
+				ISymbol theSymbol =
+						mapContextManager.getSymbolManager().createSymbol(
+                		symbolType,
+                		new Color(r, g, b));
+                theSymbol.setDescription(NumberFormat.getInstance().format(interval.getMin()) +
+                    " - " +
+                    NumberFormat.getInstance().format(interval.getMax()));
+
+                //////////////////////////////////////
+                // CALCULAMOS UN COLOR APROPIADO
+                r = r + stepR;
+                g = g + stepG;
+                b = b + stepB;
+
+                /////////////////////////////////
+                auxLegend.addSymbol(interval, theSymbol);
+                System.out.println("addSymbol = " + interval +
+                    " theSymbol = " + theSymbol.getDescription());
+                numSymbols++;
+
+                if (numSymbols > 100) {
+                    int resp = JOptionPane.showConfirmDialog(this,
+                            PluginServices.getText(this, "mas_de_100_simbolos"),
+                            PluginServices.getText(this, "quiere_continuar"),
+                            JOptionPane.YES_NO_OPTION,
+                            JOptionPane.WARNING_MESSAGE);
+
+                    if ((resp == JOptionPane.NO_OPTION) ||
+                            (resp == JOptionPane.DEFAULT_OPTION)) {
+                        return;
+                    }
+                }
+
+                // }
+            } // for
+
+            System.out.println("Num. Simbolos = " +
+                auxLegend.getValues().length);
+          symbolTable.fillTableFromSymbolList(auxLegend.getSymbols(),
+          auxLegend.getValues(), auxLegend.getDescriptions());
+
+        } catch (DataException e) {
+        	NotificationManager.addError(PluginServices.getText(this, "could_not_get_shape_type"), e);
+        } catch (LegendLayerException e) {
+        	NotificationManager.addError(PluginServices.getText(this, "failed_computing_intervals"), e);
+		}
+
+        bDelAll.setEnabled(true);
+        bDel.setEnabled(true);
+    }
+
+    protected IInterval[] calculateIntervals() throws LegendLayerException {
+    	int intervalCount = 1;
+    	// ensure the interval value is an integer greather than 0
+    	try {
+    		intervalCount = (int) Double.
+    				parseDouble(txtNumIntervals.getText());
+    		if (intervalCount<1) {
+    			throw new Exception();
+    		}
+    	} catch (Exception e) {
+    		JOptionPane.showMessageDialog(this,
+    				PluginServices.getText(this, "invalid_interval_count_value"));
+    		return null;
+    	}
+
+    	try {
+            auxLegend.setIntervalType(getCmbIntervalTypes().getSelectedIndex());
+
+    		return auxLegend.calculateIntervals(
+    		//return theLegend.calculateIntervals(
+    				((FLyrVect) layer).getFeatureStore(),
+    				(String) cmbField.getSelectedItem(),
+    				intervalCount,
+    				layer.getShapeType()
+    				);
+    	} catch (DataException e) {
+    		return null;
+    	}
+    }
+
+    public void setData(FLayer layer, ILegend legend) {
+        this.layer = (ClassifiableVectorial) layer;
+    	int shapeType = 0;
+    	try {
+    		shapeType = this.layer.getShapeType();
+    	} catch (DataException e) {
+    		NotificationManager.addError(PluginServices.getText(this, "generating_intervals"), e);
+    	}
+
+    	if (symbolTable != null) {
+			pnlCenter.remove(symbolTable);
+		}
+
+    	getDefaultSymbolPrev(shapeType);
+
+    	symbolTable = new SymbolTable(this, SymbolTable.INTERVALS_TYPE, shapeType);
+    	pnlCenter.add(symbolTable);
+        fillFieldNames();
+
+/*        if (legend instanceof VectorialIntervalLegend) {
+            theLegend = (VectorialIntervalLegend) legend;
+            getChkDefaultvalues().setSelected(theLegend.isUseDefaultSymbol());
+            cmbField.getModel().setSelectedItem(theLegend.getClassifyingFieldNames()[0]);
+            symbolTable.fillTableFromSymbolList(theLegend.getSymbols(),
+                theLegend.getValues(), theLegend.getDescriptions());
+            colorChooserPanel.setColor(theLegend.getStartColor());
+            colorChooserPanel1.setColor(theLegend.getEndColor());
+            colorChooserPanel.repaint();
+            colorChooserPanel1.repaint();
+        } else {
+        		// Si la capa viene con otro tipo de leyenda, creamos
+        		// una nueva del tipo que maneja este panel
+        		theLegend = new VectorialIntervalLegend();
+        		theLegend.setShapeType(shapeType);
+        }
+
+
+        cmbFieldType.setSelectedIndex(theLegend.getIntervalType());
+*/
+		if (VectorialIntervalLegend.class.equals(legend.getClass())) {
+			auxLegend = (VectorialIntervalLegend) legend.cloneLegend();
+			chkdefaultvalues.setSelected(auxLegend.isUseDefaultSymbol());
+			cmbField.getModel().setSelectedItem(auxLegend.getClassifyingFieldNames()[0]);
+			
+			//Patch to fix an array overflow 
+            Object[] auxValues = auxLegend.getValues();
+            List<ISymbol> symbols = new ArrayList();
+            List<Object> values = new ArrayList();
+            List<String> descriptions = new ArrayList();
+            
+            for( int i=0; i<auxValues.length; i++){
+                Object key = auxValues[i];
+                if (key!=null){
+                    IInterval auxInterval = null;
+                    if (key instanceof IInterval){
+                        auxInterval = (IInterval) key;
+                        ISymbol symbol = auxLegend.getSymbolByInterval(auxInterval);
+                        symbols.add(symbol);
+                        values.add(auxValues[i]);
+                        descriptions.add(symbol.getDescription());
+                    }
+                }
+            }
+            symbolTable.fillTableFromSymbolList(
+                symbols.toArray(new ISymbol[0]),
+                values.toArray(),
+                descriptions.toArray(new String[0]));
+            //End Patch
+
+			colorChooserPanel.setColor(auxLegend.getStartColor());
+			colorChooserPanel1.setColor(auxLegend.getEndColor());
+			colorChooserPanel.repaint();
+			colorChooserPanel1.repaint();
+			if(auxLegend.isUseDefaultSymbol()) {
+				txtNumIntervals.setText(String.valueOf(auxLegend.getSymbols().length - 1));
+			} else {
+				txtNumIntervals.setText(String.valueOf(auxLegend.getSymbols().length));
+			}
+		} else {
+			// Si la capa viene con otro tipo de leyenda, creamos
+			// una nueva del tipo que maneja este panel
+			auxLegend = new VectorialIntervalLegend();
+			auxLegend.setShapeType(shapeType);
+			auxLegend.useDefaultSymbol(false);
+		}
+		defaultSymbolPrev.setSymbol(auxLegend.getDefaultSymbol());
+		cmbFieldType.setSelectedIndex(auxLegend.getIntervalType());
+    }
+
+
+	public void getDefaultSymbolPrev(int shapeType) {
+		if(defaultSymbolPrev == null){
+		defaultSymbolPrev = new JSymbolPreviewButton(shapeType);
+		defaultSymbolPrev.setPreferredSize(new Dimension(110,20));
+		defaultSymbolPanel.add(defaultSymbolPrev,null);
+		}
+	}
+
+    protected void fillFieldNames() {
+        FeatureStore rs = null;
+        ArrayList<String> nomFields = null;
+
+        try {
+            rs = ((FLyrVect) layer).getFeatureStore();
+//            logger.debug("rs.start()");
+//            rs.start();
+
+            nomFields = new ArrayList<String>();
+
+            int type;
+            Iterator<FeatureAttributeDescriptor> iterator=rs.getDefaultFeatureType().iterator();
+            while (iterator.hasNext()) {
+				FeatureAttributeDescriptor descriptor = iterator.next();
+
+//			}
+//            for (int i = 0; i < rs.getFieldCount(); i++) {
+                type = descriptor.getType();//rs.getFieldType(i);
+
+//                if (type.equals(FeatureAttributeDescriptor.) == Types.NULL) {
+//                    continue;
+//                }
+
+                if (type == DataTypes.INT ||
+                		type == DataTypes.DOUBLE ||
+                		type == DataTypes.FLOAT ||
+                		type  == DataTypes.LONG)
+                {
+                	nomFields.add(descriptor.getName());
+                }
+            }
+
+//            rs.stop();
+        } catch (DataException e) {
+        	NotificationManager.addError(PluginServices.getText(this, "recovering_recordset"), e);
+        }
+
+        DefaultComboBoxModel cM = new DefaultComboBoxModel(nomFields.toArray());
+        cmbField.setModel(cM);
+
+        symbolTable.removeAllItems();
+    }
+
+    /**
+     * @see com.iver.cit.gvsig.gui.legendmanager.panels.ILegendPanel#getLegend()
+     */
+     public ILegend getLegend() {
+		fillSymbolListFromTable();
+		if(defaultSymbolPrev.getSymbol() != null) {
+			auxLegend.setDefaultSymbol(defaultSymbolPrev.getSymbol());
+		}
+
+		auxLegend.useDefaultSymbol(chkdefaultvalues.isSelected());
+
+		theLegend = (VectorialIntervalLegend) auxLegend.cloneLegend();
+		return theLegend;
+	}
+
+    /**
+     * A partir de los registros de la tabla, regenera el FRenderer. (No solo
+     * el symbolList, si no tambi�n el arrayKeys y el defaultRenderer
+     */
+
+    private void fillSymbolListFromTable() {
+		ISymbol theSymbol;
+		IInterval theInterval = null;
+
+		// Borramos las anteriores listas:
+		auxLegend.clear();
+
+		String fieldName = (String) cmbField.getSelectedItem();
+		auxLegend.setClassifyingFieldNames(new String[] {fieldName});
+
+		auxLegend.useDefaultSymbol(chkdefaultvalues.isSelected());
+
+		FeatureStore rs;
+		try {
+
+			rs = ((FLyrVect) layer).getFeatureStore();
+//			rs.start();
+			FeatureType featureType=rs.getDefaultFeatureType();
+			auxLegend
+					.setClassifyingFieldTypes(new int[] { new Integer(
+							featureType.getAttributeDescriptor(fieldName)
+									.getType()) });
+			logger.debug("rs.start()");
+//			rs.stop();
+
+		} catch (DataException e) {
+			NotificationManager.addError(PluginServices.getText(this, "recovering_recordset"), e);
+		}
+
+
+
+		for (int row = 0; row < symbolTable.getRowCount(); row++) {
+			if (!(symbolTable.getFieldValue(row, 1) instanceof FInterval)) {
+				theSymbol = (ISymbol) symbolTable.getFieldValue(row, 0);
+				theSymbol.setDescription((String) symbolTable.getFieldValue(
+						row, 2));
+				auxLegend.addSymbol(null, theSymbol);
+			} else {
+				theInterval = (IInterval) symbolTable.getFieldValue(row, 1);
+				theSymbol = (ISymbol) symbolTable.getFieldValue(row, 0);
+				theSymbol.setDescription((String) symbolTable.getFieldValue(
+						row, 2));
+				auxLegend.addSymbol(theInterval, theSymbol);
+			}
+		}
+		if(chkdefaultvalues.isSelected()){
+			if(defaultSymbolPrev.getSymbol() != null){
+				String description = PluginServices.getText(this,"default");
+				defaultSymbolPrev.getSymbol().setDescription(description);
+				auxLegend.addSymbol(null, defaultSymbolPrev.getSymbol());
+			}
+		}
+	}
+
+    /**
+     * This method initializes panelC
+     *
+     * @return javax.swing.JPanel
+     */
+    private JPanel getPnlCenter() {
+        if (pnlCenter == null) {
+            pnlCenter = new JPanel();
+        }
+
+        return pnlCenter;
+    }
+
+    /**
+     * Listener.
+     *
+     * @author Vicente Caballero Navarro
+     */
+    class MyListener implements ActionListener {
+
+       public void actionPerformed(ActionEvent e) {
+            System.out.println("ActionEvent con " + e.getActionCommand());
+
+            //modificar el combobox de valor
+            if (e.getActionCommand() == "FIELD_SELECTED") {
+                JComboBox cb = (JComboBox) e.getSource();
+                String fieldName = (String) cb.getSelectedItem();
+                System.out.println("Nombre del campo: " + fieldName);
+                symbolTable.removeAllItems();
+
+                //theLegend.setClassifyingFieldNames(new String[] {fieldName});
+                auxLegend.setClassifyingFieldNames(new String[] {fieldName});
+            } else if (e.getActionCommand() == "INTERVAL_TYPE") {
+                JComboBox cb = (JComboBox) e.getSource();
+
+                //if ((theLegend != null) &&
+                if ((auxLegend != null) &&
+                    //    (cb.getSelectedIndex() != theLegend.getIntervalType())) {
+                        (cb.getSelectedIndex() != auxLegend.getIntervalType())) {
+                    //theLegend.setIntervalType(cb.getSelectedIndex());
+                    auxLegend.setIntervalType(cb.getSelectedIndex());
+                    symbolTable.removeAllItems();
+                }
+            }
+
+            //A�adir todos los elementos por valor
+            if (e.getActionCommand() == "ADD_ALL_VALUES") {
+                fillTableValues();
+            }
+
+            //A�adir un �nico elemento
+            if (e.getActionCommand() == "ADD_VALUE") {
+                try {
+                    symbolTable.addTableRecord(
+							mapContextManager.getSymbolManager().createSymbol(
+									layer.getShapeType()),
+                    		new FInterval(0, 0),
+                    		"0 - 0");
+                } catch (DataException e1) {
+                	NotificationManager.addError(PluginServices.getText(this, "could_not_get_shape_type"), e1);
+                }
+
+            }
+
+            //Vacia la tabla
+            if (e.getActionCommand() == "REMOVE_ALL") {
+                symbolTable.removeAllItems();
+
+            }
+
+            //Quitar solo el elemento seleccionado
+            if (e.getActionCommand() == "REMOVE") {
+                symbolTable.removeSelectedRows();
+            }
+        }
+    }
+
+    public String getDescription() {
+        return PluginServices.getText(this,"Muestra_los_elementos_de_la_capa_usando_una_gama_de_colores_en_funcion_del_valor_de_un_determinado_campo_de_atributos") + ".";
+    }
+
+    public ImageIcon getIcon() {
+        return new ImageIcon(this.getClass().getClassLoader().
+				getResource("images/Intervalos.png"));
+    }
+
+    public Class getParentClass() {
+        return Quantities.class;
+    }
+
+    public String getTitle() {
+        return PluginServices.getText(this,"Intervalos");
+    }
+
+    public JPanel getPanel() {
+        return this;
+    }
+
+    public Class getLegendClass() {
+        return VectorialIntervalLegend.class;
+    }
+
+    private boolean isNumericField(int fieldType) {
+		if (fieldType == DataTypes.DOUBLE || fieldType == DataTypes.FLOAT
+				|| fieldType == DataTypes.LONG || fieldType == DataTypes.INT) {
+			return true;
+		}else{
+			return false;
+		}
+//    	switch (fieldType) {
+//		case Types.BIGINT:
+//		case Types.DECIMAL:
+//		case Types.DOUBLE:
+//		case Types.FLOAT:
+//		case Types.INTEGER:
+//		case Types.NUMERIC:
+//		case Types.REAL:
+//		case Types.SMALLINT:
+//		case Types.TINYINT:
+//			return true;
+//		default:
+//			return false;
+//		}
+
+	}
+	public boolean isSuitableFor(FLayer layer) {
+		if (layer instanceof FLyrVect) {
+			FeatureStore sds;
+			try {
+				sds = ((FLyrVect) layer).getFeatureStore();
+				FeatureType featureType=sds.getDefaultFeatureType();
+				Iterator iterator=featureType.iterator();
+				while (iterator.hasNext()) {
+					FeatureAttributeDescriptor descriptor = (FeatureAttributeDescriptor) iterator.next();
+
+//				}
+//				String[] fNames = sds.getFieldNames();
+//				for (int i = 0; i < fNames.length; i++) {
+					if (descriptor.getDataType().isNumeric() ) {
+						return true;
+					}
+				}
+			} catch (DataException e) {
+				return false;
+			}
+		}
+		return false;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialInterval.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractParentPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractParentPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractParentPanel.java	(revision 38262)
@@ -0,0 +1,96 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.3  2007-05-10 09:46:45  jaume
+* Refactored legend interface names
+*
+* Revision 1.2  2007/03/09 11:25:00  jaume
+* Advanced symbology (start committing)
+*
+* Revision 1.1.2.3  2007/02/21 07:35:14  jaume
+* *** empty log message ***
+*
+* Revision 1.1.2.2  2007/02/09 11:00:03  jaume
+* *** empty log message ***
+*
+* Revision 1.1.2.1  2007/01/26 13:49:03  jaume
+* *** empty log message ***
+*
+*
+*/
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+
+
+public abstract class AbstractParentPanel implements ILegendPanel {
+
+	public final void setData(FLayer lyr, ILegend legend) {}
+
+	public final ILegend getLegend() {
+		return null;
+	}
+
+	public final ImageIcon getIcon() {
+		return null;
+	}
+
+	public Class getParentClass() {
+		return null;
+	}
+
+	public final JPanel getPanel() {
+		return null;
+	}
+
+	public Class getLegendClass() {
+		return null;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractParentPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/MultipleAttributes.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/MultipleAttributes.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/MultipleAttributes.java	(revision 38262)
@@ -0,0 +1,21 @@
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+
+
+public class MultipleAttributes extends AbstractParentPanel {
+
+	public String getDescription() {
+		return null;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this, "multiple_atributes");
+	}
+
+	public boolean isSuitableFor(FLayer layer) {
+		return layer instanceof FLyrVect;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/MultipleAttributes.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AttrInTableLabeling.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AttrInTableLabeling.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AttrInTableLabeling.java	(revision 38262)
@@ -0,0 +1,544 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.gui.JComboBoxUnits;
+import org.gvsig.app.gui.panels.ColorChooserPanel;
+import org.gvsig.app.gui.styling.JComboBoxUnitsReferenceSystem;
+import org.gvsig.app.gui.utils.FontChooser;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelingStrategy;
+import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
+import org.gvsig.gui.beans.swing.JBlank;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling.AttrInTableLabelingStrategy;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling.IAttrInTableLabelingStrategy;
+import org.gvsig.utils.swing.JComboBox;
+
+
+public class AttrInTableLabeling extends JPanel implements  ILabelingStrategyPanel{
+	private static final long serialVersionUID = 8229927418031917075L;
+	private static final String NO_FIELD_ITEM = "-- " +
+			PluginServices.getText(LabelingManager.class, "none") + " --";
+	private String[] fieldNames;
+	private String[] numericFieldNames;
+	private String[] integerFieldNames;
+
+	private JRadioButton rdBtnFixedHeight;
+	private JRadioButton rdBtnHeightField;
+	private JRadioButton rdBtnFixedColor;
+	private JRadioButton rdBtnColorField;
+	private JComboBox cmbTextField;
+	private JComboBox cmbHeightField;
+	private JComboBox cmbRotationField;
+	private JComboBoxUnits cmbUnits;
+	private JComboBoxUnitsReferenceSystem cmbReferenceSystem;
+	private JTextField txtHeightField;
+	private FLyrVect layer;
+
+	private ColorChooserPanel colorChooser;
+	private JComboBox cmbColorField;
+	private JButton chooseFontBut;
+	private Font labelFont;
+
+	public AttrInTableLabeling() {
+		labelFont =
+				MapContextLocator.getSymbolManager()
+						.getSymbolPreferences()
+						.getDefaultSymbolFont();
+		initialize();
+	}
+
+	private void initialize() {
+		setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
+		GridBagLayoutPanel panel = new GridBagLayoutPanel();
+
+		GridBagLayoutPanel aux = new GridBagLayoutPanel();
+		aux.addComponent(PluginServices.getText(this, "field_to_be_labeled") + ":", getCmbTextField());
+		aux.addComponent(getRdBtnHeightField(), getCmbHeightField());
+		aux.addComponent(getRdBtnFixedHeight(), getTxtHeightField());
+		aux.addComponent(PluginServices.getText(this, "rotation_height") + ":", getCmbRotationField());
+		aux.addComponent(PluginServices.getText(this, "units") + ":", getCmbUnits());
+		aux.addComponent(PluginServices.getText(this,""),getCmbReferenceSystem());
+		panel.add(aux);
+
+		aux = new GridBagLayoutPanel();
+		aux.addComponent(getChooseFontBut(),new JBlank(20,20));
+		GridBagLayoutPanel aux2 = new GridBagLayoutPanel();
+		aux2.setBorder(BorderFactory.createTitledBorder(null,PluginServices.getText(this,"color")));
+		aux2.addComponent(getRdBtnFixedColor(),colorChooser = new ColorChooserPanel(true));
+		aux2.addComponent(getRdBtnColorField(),getCmbColorField());
+		aux.addComponent(aux2);
+
+		panel.add(new JBlank(20,20));
+		panel.add(aux);
+
+
+		add(panel);
+
+
+		ButtonGroup group = new ButtonGroup();
+		group.add(getRdBtnFixedHeight());
+		group.add(getRdBtnHeightField());
+
+		ButtonGroup colorGroup = new ButtonGroup();
+		colorGroup.add(getRdBtnFixedColor());
+		colorGroup.add(getRdBtnColorField());
+
+//		getRdBtnHeightField().setEnabled(true);
+	}
+
+	private JButton getChooseFontBut() {
+		if(chooseFontBut == null){
+			chooseFontBut = new JButton(PluginServices.getText(this,"font"));
+			chooseFontBut.setPreferredSize(new Dimension(80,10));
+			chooseFontBut.addActionListener(new ActionListener(){
+
+				public void actionPerformed(ActionEvent e) {
+					Font newFont;
+
+					newFont = FontChooser.showDialog("Choose Font", labelFont);
+					if (newFont == null) {
+						return;
+					}
+
+					labelFont = newFont;
+				}
+
+			});
+		}
+		return chooseFontBut;
+	}
+
+	private JRadioButton getRdBtnFixedHeight() {
+		if (rdBtnFixedHeight == null) {
+			rdBtnFixedHeight = new JRadioButton(PluginServices.getText(this, "fixed_height") + ":");
+			rdBtnFixedHeight.setSelected(false);
+			rdBtnFixedHeight.setName("RDFIXEDHEIGHT");
+		}
+
+		return rdBtnFixedHeight;
+	}
+
+	private JRadioButton getRdBtnHeightField() {
+		if (rdBtnHeightField == null) {
+			rdBtnHeightField = new JRadioButton(PluginServices.getText(this, "text_height_field") + ":");
+			rdBtnHeightField.setSelected(true);
+			rdBtnHeightField.setName("RDHEIGHTFIELD");
+		}
+
+		return rdBtnHeightField;
+	}
+
+	private JRadioButton getRdBtnFixedColor() {
+		if (rdBtnFixedColor == null) {
+			rdBtnFixedColor = new JRadioButton(PluginServices.getText(this, "fixed_color") + ":");
+			rdBtnFixedColor.setSelected(false);
+			rdBtnFixedColor.setName("RDFIXEDCOLOR");
+		}
+
+		return rdBtnFixedColor;
+	}
+
+	private JRadioButton getRdBtnColorField() {
+		if (rdBtnColorField == null) {
+			rdBtnColorField = new JRadioButton(PluginServices.getText(this, "color_field") + ":");
+			rdBtnColorField.setSelected(true);
+			rdBtnColorField.setName("RDCOLORFIELD");
+		}
+
+		return rdBtnColorField;
+	}
+
+	private JComboBoxUnits getCmbUnits() {
+		if (cmbUnits == null) {
+			cmbUnits = new JComboBoxUnits();
+			cmbUnits.setSelectedIndex(
+					ApplicationLocator.getManager().getPreferences().getInt("DefaultDistanceUnits", 0)
+			);
+			cmbUnits.setName("CMBUNITS");
+		}
+
+		return cmbUnits;
+	}
+
+	private JComboBoxUnitsReferenceSystem getCmbReferenceSystem(){
+		if(cmbReferenceSystem == null){
+			cmbReferenceSystem = new JComboBoxUnitsReferenceSystem();
+			cmbReferenceSystem.setName("CMBREFSYST");
+		}
+		return cmbReferenceSystem;
+	}
+
+	private JComboBox getCmbColorField() {
+		if (cmbColorField == null) {
+			cmbColorField = new JComboBox();
+			cmbColorField.setName("CMBCOLOR");
+		}
+
+		return cmbColorField;
+	}
+
+	private void refreshControls() {
+		// When the attributes are in the table -----
+		//      field with the text
+		refreshCmbTextField();
+
+		//      field with the rotation
+		refreshCmbRotationField();
+
+		//      field with the text height or the text size
+		refreshTextHeight();
+
+		//		the text size unit name
+		refreshCmbUnits();
+
+		refreshCmbRefSystem();
+		//		the font for the text
+		refreshFont();
+		//		the color for the font
+		refreshColorFont();
+	}
+
+	private JComboBox getCmbRotationField() {
+		if (cmbRotationField == null) {
+			cmbRotationField = new JComboBox();
+			cmbRotationField.setPreferredSize(new Dimension(200, 20));
+			cmbRotationField.setName("CMBROTATIONFIELD");
+		}
+		return cmbRotationField;
+	}
+
+	private JComboBox getCmbHeightField() {
+		if (cmbHeightField == null) {
+			cmbHeightField = new JComboBox();
+			cmbHeightField.setPreferredSize(new Dimension(200, 20));
+			cmbHeightField.setName("CMBHEIGHTFIELD");
+		}
+		return cmbHeightField;
+	}
+
+	private JComboBox getCmbTextField() {
+		if (cmbTextField == null) {
+			cmbTextField = new JComboBox();
+			cmbTextField.setPreferredSize(new Dimension(200, 20));
+			cmbTextField.setName("CMBTEXTFIELD");
+		}
+		return cmbTextField;
+	}
+
+
+	private JTextField getTxtHeightField() {
+		if (txtHeightField == null) {
+			txtHeightField = new JTextField(10);
+			txtHeightField.setText("10");
+			txtHeightField.setName("TXTHEIGHTFIELD");
+		}
+
+		return txtHeightField;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		// TODO Auto-generated method stub
+		throw new Error("Not yet implemented!");
+
+	}
+	private ColorChooserPanel getColorChooser() {
+		if (colorChooser == null){
+			colorChooser = new ColorChooserPanel(true);
+		}
+		return colorChooser;
+	}
+
+	public ILabelingStrategy getLabelingStrategy() {
+		// user selected to define each label attributes from values
+		// contained in the table for each feature row.
+
+		double fixedSize;
+		try {
+			fixedSize = Double.parseDouble(getTxtHeightField().getText());
+		} catch (Exception e) {
+			fixedSize = 10;
+		}
+		AttrInTableLabelingStrategy strategy = new AttrInTableLabelingStrategy();
+		strategy.setLayer(layer);
+
+		if(getCmbHeightField().getItemCount() > 0 && !rdBtnFixedHeight.isSelected()) {
+			strategy.setHeightField(
+				(String) getCmbHeightField().getSelectedItem());
+		}
+		if(getCmbRotationField().getItemCount() > 0) {
+			if(!getCmbRotationField().getSelectedItem().equals(NO_FIELD_ITEM)) {
+				strategy.setRotationField(
+						(String) getCmbRotationField().getSelectedItem());
+			} else {
+				strategy.setRotationField(null);
+			}
+		}
+
+		if(getCmbTextField().getItemCount() > 0) {
+			strategy.setTextField(
+				(String) getCmbTextField().getSelectedItem());
+		}
+
+		strategy.setUsesFixedSize(getRdBtnFixedHeight().isSelected());
+		strategy.setFixedSize(fixedSize);
+
+		if(getCmbUnits().getItemCount() > 0) {
+			strategy.setUnit(getCmbUnits().getSelectedUnitIndex());
+		}
+		if(getCmbReferenceSystem().getItemCount() > 0) {
+			strategy.setReferenceSystem(getCmbReferenceSystem().getSelectedIndex());
+		}
+
+		strategy.setUsesFixedColor(getRdBtnFixedColor().isSelected());
+		strategy.setFixedColor(getColorChooser().getColor());
+
+		if(getCmbColorField().getItemCount() > 0 && !rdBtnFixedColor.isSelected()) {
+			strategy.setColorField((String) getCmbColorField().getSelectedItem());
+		}
+
+
+		strategy.setFont(labelFont);
+		return strategy;
+	}
+
+	public void setModel(FLayer layer, ILabelingStrategy str) {
+		this.layer = (FLyrVect) layer;
+		// to allow the labeling of non-FLyrVect layers
+		if (layer instanceof FLyrVect) {
+			FLyrVect lv = (FLyrVect) layer;
+			try {
+				FeatureType featureType = lv.getFeatureStore()
+						.getDefaultFeatureType();
+				fieldNames = new String[featureType.size()];
+				Iterator<FeatureAttributeDescriptor> iterator = featureType
+						.iterator();
+				ArrayList<String> l = new ArrayList<String>();
+				ArrayList<String> lColors = new ArrayList<String>();
+				String name;
+				FeatureAttributeDescriptor descriptor;
+				while (iterator.hasNext()) {
+					descriptor = iterator.next();
+
+					name = descriptor.getName();
+					fieldNames[descriptor.getIndex()] = name;
+					switch (descriptor.getType()) {
+//					case DataTypes.DECIMAL:
+//					case DataTypes.NUMERIC:
+					case DataTypes.FLOAT:
+//					case DataTypes.REAL:
+					case DataTypes.DOUBLE:
+						l.add(name);
+						break;
+					case DataTypes.INT:
+//					case DataTypes.SMALLINT:
+//					case DataTypes.TINYINT:
+					case DataTypes.LONG:
+						lColors.add(name);
+						l.add(name);
+						break;
+					}
+				}
+				numericFieldNames = l.toArray(new String[l.size()]);
+				integerFieldNames = lColors.toArray(new String[lColors.size()]);
+			} catch (DataException e) {
+				NotificationManager.addError(PluginServices.getText(this, "accessing_file_structure"), e);
+			}
+			refreshControls();
+		}
+	}
+
+	private void refreshColorFont(){
+
+		getCmbColorField().removeAllItems();
+
+		boolean enabled = integerFieldNames.length>0;
+		getCmbColorField().setEnabled(enabled);
+		getRdBtnColorField().setEnabled(enabled);
+
+		if (!enabled) {
+			getRdBtnFixedColor().setSelected(true);
+		}
+
+		for (int i = 0; i < integerFieldNames.length; i++) {
+			getCmbColorField().addItem(integerFieldNames[i]);
+		}
+
+		if (layer.getLabelingStrategy() instanceof AttrInTableLabelingStrategy) {
+			IAttrInTableLabelingStrategy aux = (IAttrInTableLabelingStrategy) layer.getLabelingStrategy();
+			getRdBtnFixedColor().setSelected(aux.usesFixedColor());
+			getRdBtnColorField().setSelected(!aux.usesFixedColor());
+
+			String item = aux.getColorField();
+			getCmbColorField().setSelectedItem(item);
+			getColorChooser().setColor(aux.getFixedColor());
+		}
+	}
+
+	private void refreshFont(){
+
+		if (layer.getLabelingStrategy() instanceof AttrInTableLabelingStrategy) {
+			IAttrInTableLabelingStrategy aux = (IAttrInTableLabelingStrategy) layer.getLabelingStrategy();
+			labelFont = aux.getFont();
+		}
+	}
+
+	private void refreshCmbUnits() {
+
+		if (layer.getLabelingStrategy() instanceof AttrInTableLabelingStrategy) {
+			AttrInTableLabelingStrategy aux = (AttrInTableLabelingStrategy) layer.getLabelingStrategy();
+			getCmbUnits().setSelectedUnitIndex(aux.getUnit());
+		}
+	}
+
+	private void refreshCmbRefSystem() {
+
+		if (layer.getLabelingStrategy() instanceof AttrInTableLabelingStrategy) {
+			AttrInTableLabelingStrategy aux = (AttrInTableLabelingStrategy) layer.getLabelingStrategy();
+			getCmbReferenceSystem().setSelectedIndex(aux.getReferenceSystem());
+		}
+	}
+
+	private void refreshTextHeight() {
+		getCmbHeightField().removeAllItems();
+
+		boolean enabled = numericFieldNames.length>0;
+//		getCmbHeightField().setEnabled(enabled);
+//		getRdBtnHeightField().setEnabled(enabled);
+
+		if (!enabled) {
+			getRdBtnFixedHeight().setSelected(true);
+		}
+
+		for (int i = 0; i < numericFieldNames.length; i++) {
+			getCmbHeightField().addItem(numericFieldNames[i]);
+		}
+
+		if (layer.getLabelingStrategy() instanceof AttrInTableLabelingStrategy) {
+			IAttrInTableLabelingStrategy aux = (IAttrInTableLabelingStrategy) layer.getLabelingStrategy();
+			getTxtHeightField().setText(String.valueOf(aux.getFixedSize()));
+			getRdBtnFixedHeight().setSelected(aux.usesFixedSize());
+			getRdBtnHeightField().setSelected(!aux.usesFixedSize());
+
+			String item = aux.getHeightField();
+			getCmbHeightField().setSelectedItem(item);
+
+		}
+
+	}
+
+	private void refreshCmbRotationField() {
+		getCmbRotationField().removeAllItems();
+		getCmbRotationField().addItem(NO_FIELD_ITEM);
+		for (int i = 0; i < numericFieldNames.length; i++) {
+			getCmbRotationField().addItem(numericFieldNames[i]);
+		}
+
+		if (layer.getLabelingStrategy() instanceof AttrInTableLabelingStrategy) {
+			IAttrInTableLabelingStrategy aux = (IAttrInTableLabelingStrategy) layer.getLabelingStrategy();
+			String item = aux.getRotationField();
+			getCmbRotationField().setSelectedItem(item != null? item : NO_FIELD_ITEM);
+		}
+	}
+
+	private void refreshCmbTextField() {
+		getCmbTextField().removeAllItems();
+		for (int i = 0; i < fieldNames.length; i++) {
+			getCmbTextField().addItem(fieldNames[i]);
+		}
+
+		if (layer.getLabelingStrategy() instanceof AttrInTableLabelingStrategy) {
+			IAttrInTableLabelingStrategy aux = (IAttrInTableLabelingStrategy) layer.getLabelingStrategy();
+			String item = aux.getTextField();
+			getCmbTextField().setSelectedItem(item != null? item : NO_FIELD_ITEM);
+		}
+	}
+
+	public String getLabelingStrategyName() {
+		return PluginServices.getText(this, "label_attributes_defined_in_table");
+	}
+
+	public Class getLabelingStrategyClass() {
+		return AttrInTableLabelingStrategy.class;
+	}
+
+	public void setEnabled(boolean enabled) {
+		super.setEnabled(enabled);
+		getChooseFontBut().setEnabled(enabled);
+		getCmbColorField().setEnabled(enabled);
+		getCmbHeightField().setEnabled(enabled);
+		getCmbReferenceSystem().setEnabled(enabled);
+		getCmbRotationField().setEnabled(enabled);
+		getCmbTextField().setEnabled(enabled);
+		getCmbUnits().setEnabled(enabled);
+		getColorChooser().setEnabled(enabled);
+		getRdBtnColorField().setEnabled(enabled);
+		getRdBtnFixedColor().setEnabled(enabled);
+		getRdBtnFixedHeight().setEnabled(enabled);
+		getRdBtnHeightField().setEnabled(enabled);
+		getTxtHeightField().setEnabled(enabled);
+
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SingleSymbol.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SingleSymbol.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SingleSymbol.java	(revision 38262)
@@ -0,0 +1,280 @@
+/*
+ * Created on 30-abr-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.ImageIcon;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.border.TitledBorder;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.gui.styling.SymbolLevelsWindow;
+import org.gvsig.app.gui.styling.SymbolPreviewer;
+import org.gvsig.app.gui.styling.SymbolSelector;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.ZSort;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
+import org.gvsig.gui.beans.swing.JButton;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.SingleSymbolLegend;
+
+
+/**
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ */
+public class SingleSymbol extends JPanel implements ILegendPanel, ActionListener {
+	private JPanel symbolPanel = null;
+	private int shapeType;
+	private GridBagLayoutPanel legendPanel = null;
+	private SymbolPreviewer symbolPreviewComponent;
+	private JButton btnOpenSymbolSelector;
+	private JTextField txtLabel;
+	private JButton btnOpenSymbolLevelsEditor;
+	private SingleSymbolLegend legend;
+	private ZSort zSort;
+
+
+	public SingleSymbol() {
+		super();
+		initialize();
+	}
+	/**
+	 * This method initializes this
+	 *
+	 */
+	private void initialize() {
+        this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
+        this.setSize(new java.awt.Dimension(490,379));
+        this.add(getSymbolPanel(), null);
+        this.add(getLegendPanel(), null);
+
+	}
+
+	public void setData(FLayer lyr, ILegend legend) {
+		try {
+			shapeType = ((FLyrVect) lyr).getShapeType();
+		} catch (ReadException e) {
+			NotificationManager.addError("Could not find out the shape type" ,e);
+		}
+		if (legend instanceof SingleSymbolLegend) {
+			setSymbol(legend.getDefaultSymbol());
+			this.legend = (SingleSymbolLegend) legend;
+
+		} else {
+			this.legend = (SingleSymbolLegend) MapContextLocator
+					.getMapContextManager().createLegend(
+							SingleSymbolLegend.LEGEND_NAME);
+			this.legend.setShapeType(shapeType);
+//			LegendFactory.
+//					createSingleSymbolLegend(shapeType);
+		}
+		getSymbolPreviewPanel().setSymbol(this.legend.getDefaultSymbol());
+		getBtnOpenSymbolLevelsEditor().setEnabled(legend!=null);
+		this.txtLabel.setText(legend.getDefaultSymbol().getDescription());
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.legendmanager.panels.ILegendPanel#getLegend()
+	 */
+	public ILegend getLegend() {
+		ISymbol symbol = getSymbolPreviewPanel().getSymbol();
+		symbol.setDescription(txtLabel.getText());
+		AbstractVectorialLegend leg = new SingleSymbolLegend(symbol);
+		leg.setZSort(zSort);
+		return leg;
+	}
+
+	public String getDescription() {
+		return PluginServices.getText(this,"Muestra_todos_s_elementos_de_una_capa_usando_el_mismo_simbolo");
+	}
+
+	public Class getParentClass() {
+		return Features.class;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this,"Simbolo_unico");
+	}
+
+	public JPanel getPanel() {
+		return this;
+	}
+
+	public ImageIcon getIcon() {
+		return new ImageIcon(this.getClass().getClassLoader().
+				getResource("images/single-symbol.png"));
+	}
+
+	public Class getLegendClass() {
+		return SingleSymbolLegend.class;
+	}
+	/**
+	 * This method initializes symbolPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getSymbolPanel() {
+		if (symbolPanel == null) {
+			symbolPanel = new JPanel();
+			symbolPanel.setBorder(
+					BorderFactory.createTitledBorder(null, "symbol", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+			symbolPanel.add(getSymbolPreviewPanel());
+			symbolPanel.add(getBtnOpenSymbolSelector());
+			symbolPanel.add(getBtnOpenSymbolLevelsEditor());
+		}
+		return symbolPanel;
+	}
+
+	private JButton getBtnOpenSymbolLevelsEditor() {
+		if (btnOpenSymbolLevelsEditor == null) {
+			btnOpenSymbolLevelsEditor = new JButton(PluginServices.getText(this, "symbol_levels"));
+			btnOpenSymbolLevelsEditor.addActionListener(this);
+			btnOpenSymbolLevelsEditor.setEnabled(legend != null);
+		}
+
+		return btnOpenSymbolLevelsEditor;
+	}
+	private JButton getBtnOpenSymbolSelector() {
+		if (btnOpenSymbolSelector == null) {
+			btnOpenSymbolSelector = new JButton();
+			btnOpenSymbolSelector.setText(PluginServices.getText(this, "choose_symbol"));
+			btnOpenSymbolSelector.addActionListener(this);
+		}
+		return btnOpenSymbolSelector;
+	}
+
+	private SymbolPreviewer getSymbolPreviewPanel() {
+		if (symbolPreviewComponent == null) {
+			symbolPreviewComponent = new SymbolPreviewer();
+			symbolPreviewComponent.setBorder(BorderFactory.createBevelBorder(1));
+			symbolPreviewComponent.setPreferredSize(new Dimension(120, 40));
+		}
+		return symbolPreviewComponent;
+	}
+	/**
+	 * This method initializes legendPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private GridBagLayoutPanel getLegendPanel() {
+		if (legendPanel == null) {
+			legendPanel = new GridBagLayoutPanel();
+			legendPanel.setBorder(BorderFactory.createTitledBorder(null,
+					PluginServices.getText(this, "legend"), TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
+			legendPanel.addComponent(PluginServices.getText(this, "label_text_in_the_TOC") + ":", txtLabel = new JTextField(25));
+			txtLabel.addActionListener(this);
+		}
+		return legendPanel;
+	}
+
+	public void setShapeType(int shapeType) {
+		this.shapeType = shapeType;
+	}
+
+	public void setSymbol(ISymbol symbol) {
+		setOnlySymbol(symbol);
+		if(symbol.getDescription() != null) {
+			txtLabel.setText(symbol.getDescription());
+		}
+	}
+
+	private void setOnlySymbol(ISymbol symbol){
+		getSymbolPreviewPanel().setSymbol(symbol);
+		if (legend != null){
+			legend.setDefaultSymbol(symbol);
+		}
+	}
+
+
+	public ISymbol getSymbol() {
+		ISymbol symbol = getSymbolPreviewPanel().getSymbol();
+		symbol.setDescription(txtLabel.getText());
+		return symbol;
+	}
+	public boolean isSuitableFor(FLayer layer) {
+		return (layer instanceof FLyrVect) ;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		JComponent c = (JComponent) e.getSource();
+		if (c.equals(getBtnOpenSymbolSelector())){
+			ISymbolSelector se = SymbolSelector.createSymbolSelector(getSymbol(), shapeType);
+			PluginServices.getMDIManager().addWindow(se);
+			ISymbol sym = (ISymbol) se.getSelectedObject();
+			if (sym != null) {
+				// no symbol, no changes
+				setOnlySymbol(sym);
+			}
+		} else if (c.equals(getBtnOpenSymbolLevelsEditor())){
+			if (legend != null) {
+				ZSort myZSort = legend.getZSort();
+				if (myZSort == null) {
+					myZSort = new ZSort(legend);
+				}
+				SymbolLevelsWindow sl = new SymbolLevelsWindow(myZSort);
+				PluginServices.getMDIManager().addWindow(sl);
+				zSort = sl.getZSort();
+			}
+		}else if (c.equals(txtLabel)){
+			getSymbolPreviewPanel().getSymbol().setDescription(txtLabel.getText());
+		}
+	}
+
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SingleSymbol.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LabelingManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LabelingManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LabelingManager.java	(revision 38262)
@@ -0,0 +1,309 @@
+/*
+ * Created on 01-jun-2004
+ *
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.TreeMap;
+
+import javax.swing.BorderFactory;
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelable;
+import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelingStrategy;
+import org.gvsig.utils.swing.JComboBox;
+
+
+/**
+ *
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ *
+ */
+public class LabelingManager extends AbstractThemeManagerPage implements ActionListener {
+	private static final long serialVersionUID = 856162295985695717L;
+	private static ArrayList<Class<? extends ILabelingStrategyPanel>> installedPanels = new ArrayList<Class<? extends ILabelingStrategyPanel>>();
+	private Comparator<Class<?>> comparator=new Comparator<Class<?>>(){
+
+		public int compare(Class<?> o1, Class<?> o2) {
+			return o1.getName().compareTo(o2.getName());
+		}
+
+	};
+	private TreeMap<Class<?>, ILabelingStrategyPanel> strategyPanels = new TreeMap<Class<?>, ILabelingStrategyPanel>(comparator);
+	private JCheckBox chkApplyLabels;
+	private ILabelable layer;
+	private JPanel content;
+	private JPanel pnlNorth;
+	private JComboBox cmbStrategy;
+
+
+	public LabelingManager() {
+		super();
+		initialize();
+	}
+
+	private class LabelingStrategyItem {
+		private ILabelingStrategyPanel strategyPanel;
+
+		private LabelingStrategyItem(ILabelingStrategyPanel strategyPanel) {
+			this.strategyPanel = strategyPanel;
+		}
+
+		public String toString() {
+			return strategyPanel.getLabelingStrategyName();
+		}
+
+		public boolean equals(Object obj) {
+			if (obj instanceof LabelingStrategyItem) {
+				LabelingStrategyItem item = (LabelingStrategyItem) obj;
+				return this.strategyPanel.getClass().equals(item.strategyPanel.getClass());
+
+			}
+			return super.equals(obj);
+		}
+
+	}
+
+	private void initialize() {
+		setLayout(new BorderLayout());
+		for (Iterator<Class<? extends ILabelingStrategyPanel>> it = installedPanels.iterator(); it.hasNext();) {
+			try {
+				ILabelingStrategyPanel pnl = (ILabelingStrategyPanel) it.next().newInstance();
+				strategyPanels.put(pnl.getLabelingStrategyClass(), pnl);
+			} catch (Exception e) {
+				/*
+				 *  can't happen
+				 *  this should never happen since instantiation and access exceptions have been
+				 *	controlled in the addLabelingStrategy method
+				 */
+				NotificationManager.addError(e);
+			}
+
+		}
+		content = new JPanel(new BorderLayout());
+		content.setBorder(BorderFactory.createEtchedBorder());
+		add(getPnlNorth(), BorderLayout.NORTH);
+		add(content, BorderLayout.SOUTH);
+
+	}
+
+	private JPanel getPnlNorth() {
+		if (pnlNorth == null) {
+			pnlNorth = new JPanel(new BorderLayout(5,5));
+			JPanel aux = new JPanel(new FlowLayout(FlowLayout.LEFT));
+
+			aux.add(getChkApplyLabels());
+			pnlNorth.add(aux, BorderLayout.NORTH);
+			aux = new JPanel(new FlowLayout(FlowLayout.LEFT));
+			aux.add(new JLabel(PluginServices.getText(this, "general")+":"));
+			aux.add(getCmbStrategy());
+			pnlNorth.add(aux, BorderLayout.CENTER);
+
+		}
+		return pnlNorth;
+	}
+
+	private JComboBox getCmbStrategy() {
+		if (cmbStrategy == null) {
+			Iterator<ILabelingStrategyPanel> it = strategyPanels.values().iterator();
+			final ArrayList<LabelingStrategyItem> aux = new ArrayList<LabelingStrategyItem>();
+			while (it.hasNext()) {
+				aux.add(new LabelingStrategyItem(it.next()));
+			}
+			final LabelingStrategyItem items[] = aux.toArray(new LabelingStrategyItem[aux.size()]);
+
+			cmbStrategy = new JComboBox(items) {
+				private static final long serialVersionUID = 7506754097091500846L;
+
+				@Override
+				public void setSelectedItem(Object anObject) {
+					if (anObject == null)
+						return;
+					if (anObject instanceof ILabelingStrategy) {
+						ILabelingStrategy st = (ILabelingStrategy) anObject;
+						for (ILabelingStrategyPanel pnl : strategyPanels.values()) {
+							if (pnl.getLabelingStrategyClass() != null &&
+								pnl.getLabelingStrategyClass().equals(st.getClass())) {
+								super.setSelectedItem(new LabelingStrategyItem(pnl));
+								return;
+							}
+						}
+					} else {
+						super.setSelectedItem(anObject);
+					}
+				}
+			};
+
+			cmbStrategy.setName("CMBMODE");
+			cmbStrategy.addActionListener(this);
+		}
+
+		return cmbStrategy;
+	}
+
+	private JCheckBox getChkApplyLabels() {
+		if (chkApplyLabels == null) {
+			chkApplyLabels = new JCheckBox(PluginServices.getText(this, "enable_labeling"));
+			chkApplyLabels.setName("CHKAPPLYLABELS");
+			chkApplyLabels.addActionListener(this);
+		}
+		return chkApplyLabels;
+	}
+
+	public static void addLabelingStrategy(Class<? extends ILabelingStrategyPanel> iLabelingStrategyPanelClass) {
+		installedPanels.add(iLabelingStrategyPanelClass);
+	}
+
+	private void setComponentEnabled(Component c, boolean b) {
+		c.setEnabled(b);
+	}
+
+
+	public void setModel(FLayer layer) throws IllegalArgumentException {
+		if (layer instanceof ILabelable) {
+			// get the labeling strategy
+			this.layer = (ILabelable) layer;
+			for (ILabelingStrategyPanel p : strategyPanels.values()) {
+				p.setModel(layer,((ILabelable) layer).getLabelingStrategy() );
+			}
+
+			setComponentEnabled(this, true);
+			refreshControls();
+
+
+			ActionEvent evt = new ActionEvent(chkApplyLabels, 0, null);
+			evt.setSource(chkApplyLabels);
+			actionPerformed(evt);
+
+			getCmbStrategy().setSelectedItem(this.layer.getLabelingStrategy());
+			evt.setSource(getCmbStrategy());
+			actionPerformed(evt);
+		} else {
+			setComponentEnabled(this, false);
+		}
+	}
+
+
+
+	private void refreshControls() {
+		if (layer == null) return;
+
+		// enables labeling
+		JCheckBox applyLabels = getChkApplyLabels();
+		applyLabels.setSelected(layer.isLabeled());
+	}
+
+
+
+
+	public void actionPerformed(ActionEvent e) {
+		JComponent c = (JComponent)e.getSource();
+
+		if (c.equals(chkApplyLabels)) {
+			boolean b = chkApplyLabels.isSelected();
+			// enables/disables all components
+			getCmbStrategy().setEnabled(b);
+			for (int i = 0; i < content.getComponentCount(); i++) {
+				Component c1 = content.getComponent(i);
+				if (!c1.equals(c))
+					setComponentEnabled(c1, b);
+			}
+
+		} else if (c.equals(cmbStrategy)) {
+			if (c.equals(cmbStrategy)) {
+				ILabelingStrategyPanel panel = ((LabelingStrategyItem) cmbStrategy.getSelectedItem()).strategyPanel;
+				if (panel!=null) {
+					try {
+						remove(content);
+
+						content.removeAll();
+						content.add((Component) panel);
+						add(content, BorderLayout.CENTER);
+						actionPerformed(new ActionEvent(chkApplyLabels, 0, null));
+						revalidate();
+						paintImmediately(getBounds());
+					} catch (Exception e1) {
+						e1.printStackTrace();
+					}
+				}
+			}
+		}
+	}
+
+	public void acceptAction() {
+
+	}
+
+	public void cancelAction() {
+
+	}
+
+	public void applyAction() {
+		if (layer != null) { // in other case the layer is not labelable
+			ILabelingStrategyPanel panel = ((LabelingStrategyItem) getCmbStrategy().getSelectedItem()).strategyPanel;
+			ILabelingStrategy strategy=panel.getLabelingStrategy();
+			layer.setLabelingStrategy(strategy);
+			layer.setIsLabeled(getChkApplyLabels().isSelected());
+		}
+	}
+
+
+	public String getName() {
+		return PluginServices.getText(this,"Etiquetados");
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LabelingManager.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialUniqueValue.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialUniqueValue.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialUniqueValue.java	(revision 38262)
@@ -0,0 +1,785 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Random;
+
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.ImageIcon;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.gui.styling.JComboBoxColorScheme;
+import org.gvsig.app.gui.styling.SymbolLevelsWindow;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.MapContextManager;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.operations.ClassifiableVectorial;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.IVectorialUniqueValueLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.ZSort;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
+import org.gvsig.gui.beans.swing.JBlank;
+import org.gvsig.gui.beans.swing.JButton;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractClassifiedVectorLegend;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.VectorialUniqueValueLegend;
+import org.gvsig.tools.dispose.DisposableIterator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author fjp To change the template for this generated type comment go to
+ *         Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and
+ *         Comments
+ */
+public class VectorialUniqueValue extends JPanel implements ILegendPanel, ActionListener{
+    private static final Logger logger = LoggerFactory
+    .getLogger(VectorialUniqueValue.class);
+
+    protected VectorialUniqueValueLegend theLegend;
+    private ClassifiableVectorial layer;
+    private SymbolTable symbolTable;
+    protected JComboBox cmbFields;
+    private JButton btnRemoveAll;
+    private JButton btnRemove;
+    private JCheckBox chbUseDefault = null;
+    private JSymbolPreviewButton defaultSymbolPrev;
+    private VectorialUniqueValueLegend auxLegend;
+	private JPanel pnlCenter;
+	private JButton btnOpenSymbolLevelsEditor;
+
+	private JComboBoxColorScheme cmbColorScheme;
+	private GridBagLayoutPanel defaultSymbolPanel = new GridBagLayoutPanel();
+		
+	private MapContextManager mapContextManager = MapContextLocator
+			.getMapContextManager();
+
+    /**
+     *
+     */
+    public VectorialUniqueValue() {
+        super();
+        initComponents();
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    protected void initComponents() {
+        /* JLabel label = new JLabel();
+           label.setIcon(new javax.swing.ImageIcon(Abrir.class.getClassLoader()
+                                                                                                              .getResource("images/ValoresUnicos.png")));
+           limagen[1] = new JLabel();
+           limagen[1] = label; */
+        JPanel pnlButtons = new JPanel();
+
+        JButton btnAddAll = new JButton(PluginServices.getText(this,
+                    "Anadir_todos"));
+        btnAddAll.setActionCommand("ADD_ALL_VALUES");
+        btnAddAll.addActionListener(this);
+        pnlButtons.add(btnAddAll);
+
+        JButton btnAdd = new JButton(PluginServices.getText(this, "Anadir"));
+        btnAdd.setActionCommand("ADD_VALUE");
+        btnAdd.addActionListener(this);
+        pnlButtons.add(btnAdd);
+
+        btnRemoveAll = new JButton(PluginServices.getText(this, "Quitar_todos"));
+        btnRemoveAll.setActionCommand("REMOVE_ALL");
+        btnRemoveAll.addActionListener(this);
+        pnlButtons.add(btnRemoveAll);
+
+        btnRemove = new JButton(PluginServices.getText(this, "Quitar"));
+        btnRemove.setActionCommand("REMOVE");
+        btnRemove.addActionListener(this);
+        pnlButtons.add(btnRemove);
+
+        btnOpenSymbolLevelsEditor = new JButton(PluginServices.getText(this, "symbol_levels"));
+        btnOpenSymbolLevelsEditor.addActionListener(this);
+        btnOpenSymbolLevelsEditor.setActionCommand("OPEN_SYMBOL_LEVEL_EDITOR");
+        pnlButtons.add(btnOpenSymbolLevelsEditor);
+		btnOpenSymbolLevelsEditor.setEnabled(symbolTable != null && symbolTable.getRowCount()>0);
+
+		pnlCenter = new JPanel();
+        pnlCenter.setLayout(new BorderLayout());
+
+        cmbFields = new JComboBox();
+        cmbFields.setActionCommand("FIELD_SELECTED");
+        cmbFields.addActionListener(this);
+        cmbFields.setVisible(true);
+
+		JPanel pnlNorth = new JPanel();
+		pnlNorth.setLayout(new GridLayout(0,2));
+
+		GridBagLayoutPanel auxPanel = new GridBagLayoutPanel();
+		JLabel lblFieldClassification = new JLabel(PluginServices.getText(
+				this, "Campo_de_clasificacion")+": ");
+		auxPanel.add(lblFieldClassification);
+		auxPanel.add(cmbFields);
+		pnlNorth.add(auxPanel);
+
+		auxPanel = new GridBagLayoutPanel();
+		auxPanel.add(new JLabel(PluginServices.getText(this, "color_scheme")+": "));
+		cmbColorScheme = new JComboBoxColorScheme(false);
+		cmbColorScheme.addActionListener(this);
+		auxPanel.add(cmbColorScheme);
+		pnlNorth.add(auxPanel);
+
+
+		defaultSymbolPanel.add(getChbUseDefault(), null);
+		pnlNorth.add(defaultSymbolPanel);
+		pnlNorth.add(new JBlank(0,30));
+
+		this.setLayout(new BorderLayout());
+		this.add(pnlNorth, BorderLayout.NORTH);
+		this.add(pnlCenter, BorderLayout.CENTER);
+		this.add(pnlButtons, BorderLayout.SOUTH);
+
+
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    private void fillTableValues() {
+        FeatureStore elRs;
+
+        try {
+            elRs = ((FLyrVect) layer).getFeatureStore();
+//            logger.debug("elRs.start()");
+//            elRs.start();
+
+//            int idField = -1;
+            String fieldName = (String) cmbFields.getSelectedItem();
+            if (fieldName==null) {
+            	JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"no_hay_campo_seleccionado"));
+            	return;
+            }
+
+//            idField = elRs.getFieldIndexByName(fieldName);
+            auxLegend.setClassifyingFieldNames(new String[] {fieldName});
+
+            //long numReg = elRs.getRowCount();
+//            if (idField == -1) {
+//                NotificationManager.addWarning(
+//                		PluginServices.getText(this, "unrecognized_field_name")+" " + fieldName, null);
+//
+//                return;
+//            }
+
+            symbolTable.removeAllItems();
+
+            int numSymbols = 0;
+            ISymbol theSymbol = null;
+
+            //auxLegend=(VectorialUniqueValueLegend)m_lyr.getLegend();
+
+            //            auxLegend = LegendFactory.createVectorialUniqueValueLegend(layer.getShapeType());
+            auxLegend = (VectorialUniqueValueLegend) MapContextLocator
+					.getMapContextManager().createLegend(
+							IVectorialUniqueValueLegend.LEGEND_NAME);
+            auxLegend.setShapeType(layer.getShapeType());
+
+            Object clave=null;
+
+            //Object resul;
+            if (chbUseDefault.isSelected()) {
+                auxLegend.getDefaultSymbol().setDescription("Default");
+                auxLegend.addSymbol(null, auxLegend.getDefaultSymbol());
+            }
+
+            Color[] colorScheme = cmbColorScheme.getSelectedColors();
+
+            Color[] colors = new Color[colorScheme.length];
+			for (int i = 0; i < colorScheme.length; i++) {
+				colors[i] = colorScheme[i];
+			}
+			auxLegend.setColorScheme(colors);
+
+            Random rand = new Random(System.currentTimeMillis());
+
+            FeatureSet set = null;
+			DisposableIterator iterator = null;
+
+			try {
+				set = elRs.getFeatureSet();
+
+				int count = 0;
+
+				iterator = set.iterator();
+				while (iterator.hasNext()) {
+					Feature feature = (Feature) iterator.next();
+					clave = feature.get(fieldName);
+					// }
+					// for (int j = 0; j < elRs.getRowCount(); j++) {
+					// clave = elRs.getFieldValue(j, idField);
+
+//					if (clave instanceof NullValue) {
+//						continue;
+//					}
+					if (clave == null) {
+						continue;
+					}
+
+					// //Comprobar que no esta repetido y no hace falta
+					// introducir en el hashtable el campo junto con el simbolo.
+					if (auxLegend.getSymbolByValue(clave) == null) {
+
+						if (count == 100) {
+							int resp = JOptionPane.showConfirmDialog(this,
+									PluginServices.getText(this,
+											"mas_de_100_simbolos"),
+									PluginServices.getText(this,
+											"quiere_continuar"),
+									JOptionPane.YES_NO_OPTION,
+									JOptionPane.WARNING_MESSAGE);
+
+							if ((resp == JOptionPane.NO_OPTION)
+									|| (resp == JOptionPane.DEFAULT_OPTION)) {
+								break;
+							}
+						}
+
+
+						// si no esta creado el simbolo se crea
+						// jaume (moved to ISymbol); theSymbol = new
+						// FSymbol(layer.getShapeType());
+						theSymbol =
+								mapContextManager.getSymbolManager()
+										.createSymbol(
+												layer
+										.getShapeType(), colorScheme[rand
+										.nextInt(colorScheme.length)]);
+						theSymbol.setDescription(clave.toString());
+						auxLegend.addSymbol(clave, theSymbol);
+						count++;
+					}
+
+				} // for
+			}finally{
+				if (iterator != null){
+					iterator.dispose();
+				}
+				if (set != null) {
+					set.dispose();
+				}
+			}
+
+			Object[] values = auxLegend.getValues();
+			String[] descriptions = new String[values.length];
+			ISymbol[] symbols = new ISymbol[values.length];
+			
+			for (int i = 0; i < values.length; i++) {
+				Object value = values[i];
+				symbols[i] = auxLegend.getSymbolByValue(value);
+				descriptions[i] = symbols[i].getDescription();
+			}
+			
+            symbolTable.fillTableFromSymbolList(symbols,
+                values, descriptions);
+//            elRs.stop();
+//            set.dispose();
+        } catch (DataException e) {
+        	NotificationManager.addError(PluginServices.getText(this, "recovering_recordset"), e);
+        }
+
+        btnRemoveAll.setEnabled(true);
+        btnRemove.setEnabled(true);
+
+        //m_bCacheDirty = false;
+    }
+
+	private boolean compareClassifyingFieldNames(String[] a, String[] b){
+		if (a==b) {
+			return true;
+		}
+		if (a == null || b == null) {
+			return false;
+		}
+		if (a.length != b.length) {
+			return false;
+		}
+		for (int i=0; i<a.length; i++){
+			if (!a[i].equals(b[i])) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	private boolean compareClassifyingFieldTypes(int[] a, int[] b){
+		if (a==b) {
+			return true;
+		}
+		if (a == null || b == null) {
+			return false;
+		}
+		if (a.length != b.length) {
+			return false;
+		}
+		for (int i=0; i<a.length; i++){
+			if (a[i]!=b[i]) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+    /**
+     * A partir de los registros de la tabla, regenera el FRenderer. (No solo
+     * el symbolList, si no tambi�n el arrayKeys y el defaultRenderer
+     */
+    private void fillSymbolListFromTable() {
+        Object clave=null;
+        ISymbol theSymbol;
+		ArrayList visitedKeys = new ArrayList();
+		boolean changedLegend = false;
+
+    	String fieldName = (String) cmbFields.getSelectedItem();
+		String[] classifyingFieldNames = new String[] {fieldName};
+		if(auxLegend!=null){
+			if(!compareClassifyingFieldNames(classifyingFieldNames,auxLegend.getClassifyingFieldNames())){
+				auxLegend.setClassifyingFieldNames(classifyingFieldNames);
+				changedLegend = true;
+			}
+		} else {
+			auxLegend.setClassifyingFieldNames(classifyingFieldNames);
+			changedLegend = true;
+		}
+
+		FLyrVect m = (FLyrVect) layer;
+
+        try {
+        	int fieldType = m.getFeatureStore().getDefaultFeatureType()
+					.getAttributeDescriptor(cmbFields.getSelectedIndex())
+					.getType();
+//        	int fieldType = m.getSource().getRecordset().getFieldType((int)cmbFields.getSelectedIndex());
+			int[] classifyingFieldTypes = new int[] {fieldType};
+			if(auxLegend!=null){
+				if(!compareClassifyingFieldTypes(classifyingFieldTypes,auxLegend.getClassifyingFieldTypes())){
+					auxLegend.setClassifyingFieldTypes(classifyingFieldTypes);
+					changedLegend = true;
+				}
+			} else {
+				auxLegend.setClassifyingFieldTypes(classifyingFieldTypes);
+				changedLegend = true;
+			}
+        } catch (DataException e) {
+        	NotificationManager.addError(PluginServices.getText(this, "could_not_setup_legend"), e);
+        } catch (Exception e) {
+			NotificationManager.showMessageWarning(PluginServices.getText(this, "could_not_setup_legend"), e);
+		}
+
+		if(changedLegend){
+			auxLegend.clear();
+		}
+
+        for (int row = 0; row < symbolTable.getRowCount(); row++) {
+            clave = symbolTable.getFieldValue(row, 1);
+            theSymbol = (ISymbol) symbolTable.getFieldValue(row, 0);
+			String description = (String) symbolTable.getFieldValue(row, 2);
+			theSymbol.setDescription(description);
+			ISymbol legendSymbol = null;
+			if (auxLegend != null){
+				legendSymbol = auxLegend.getSymbolByValue(clave);
+			}
+			if( legendSymbol == null || ( auxLegend.isUseDefaultSymbol() && legendSymbol == auxLegend.getDefaultSymbol())){
+				if (auxLegend != null){
+					auxLegend.addSymbol(clave, theSymbol);
+				}
+			} else {
+				/* FIXME: Se optimizar�a descomentarizando el if, pero el metodo equals del AbstractSymbol
+				 * no tiene en cuenta determinadas propiedades del simbolo, como, por ejemplo, el tama�o.
+				 * Descomentarizar al arreglar el metodo equals del AbstractSymbol.
+				 */
+//				if(!legendSymbol.equals(theSymbol)){
+					auxLegend.replace(legendSymbol, theSymbol);
+//				}
+			}
+			visitedKeys.add(clave);
+		}
+		if(auxLegend != null){
+			Object[] keys = auxLegend.getValues();
+			for(int i=0; i<keys.length; i++){
+				Object key = keys[i];
+				if(!visitedKeys.contains(key)){
+					auxLegend.delSymbol(key);
+				}
+			}
+		}
+		clave = null;
+		if(chbUseDefault.isSelected()){
+			theSymbol = defaultSymbolPrev.getSymbol();
+			if(theSymbol != null){
+				String description = PluginServices.getText(this,"default");
+				theSymbol.setDescription(description);
+				ISymbol legendSymbol = null;
+				if (auxLegend != null){
+					legendSymbol = auxLegend.getSymbolByValue(clave);
+				}
+				if( legendSymbol == null){
+					auxLegend.addSymbol(clave, theSymbol);
+				} else {
+//					if(!legendSymbol.equals(theSymbol)){
+					if(legendSymbol!=theSymbol){
+						auxLegend.replace(legendSymbol, theSymbol);
+					}
+				}
+			}
+		} else {
+			if (auxLegend != null){
+				ISymbol legendSymbol = auxLegend.getSymbolByValue(clave);
+				if( legendSymbol != null){
+					auxLegend.replace(legendSymbol, null);
+				}
+			}
+		}
+	}
+
+    /**
+     * DOCUMENT ME!
+     */
+    private void fillFieldNames() {
+        FeatureStore rs;
+
+        try {
+            rs = ((FLyrVect) layer).getFeatureStore();
+//            logger.debug("rs.start()");
+//            rs.start();
+
+            ArrayList names=new ArrayList();
+            Iterator iterator=rs.getDefaultFeatureType().iterator();
+            while (iterator.hasNext()) {
+				FeatureAttributeDescriptor descriptor = (FeatureAttributeDescriptor) iterator.next();
+				names.add(descriptor.getName());
+			}
+//            String[] nomFields = new String[rs.getFieldCount()];
+//
+//            for (int i = 0; i < rs.getFieldCount(); i++) {
+//                nomFields[i] = rs.getFieldName(i).trim();
+//            }
+//
+//            rs.stop();
+
+            DefaultComboBoxModel cM = new DefaultComboBoxModel(names.toArray(new String[0]));
+            cmbFields.setModel(cM);
+
+            // fieldsListValor.setSelectedIndex(0);
+        } catch (DataException e) {
+        	NotificationManager.addError(PluginServices.getText(this, "recovering_recordset"), e);
+        }
+    }
+
+    public void setData(FLayer layer, ILegend legend) {
+    	this.layer = (ClassifiableVectorial) layer;
+      	int shapeType = 0;
+      	try {
+      		shapeType = this.layer.getShapeType();
+      	} catch (ReadException e) {
+    		NotificationManager.addError(PluginServices.getText(this, "generating_intervals"), e);
+		}
+
+      	getDefaultSymbolPrev(shapeType);
+
+      	if (symbolTable != null) {
+			pnlCenter.remove(symbolTable);
+		}
+      	symbolTable = new SymbolTable(this, SymbolTable.VALUES_TYPE, shapeType);
+      	pnlCenter.add(symbolTable, BorderLayout.CENTER);
+
+        fillFieldNames();
+
+        symbolTable.removeAllItems();
+
+    	if (VectorialUniqueValueLegend.class.equals(legend.getClass())) {
+			auxLegend = (VectorialUniqueValueLegend) legend.cloneLegend();
+			getChbUseDefault().setSelected(auxLegend.isUseDefaultSymbol());
+			cmbFields.getModel().setSelectedItem(auxLegend.getClassifyingFieldNames()[0]);
+			setColorScheme();
+			
+			Object[] values = auxLegend.getValues();
+			String[] descriptions = new String[values.length];
+			ISymbol[] symbols = new ISymbol[values.length];
+			
+			for (int i = 0; i < values.length; i++) {
+				Object value = values[i];
+				symbols[i] = auxLegend.getSymbolByValue(value);
+				descriptions[i] = symbols[i].getDescription();
+			}
+
+			symbolTable.fillTableFromSymbolList(symbols,
+					values,descriptions);
+			chbUseDefault.setSelected(auxLegend.isUseDefaultSymbol());
+		} else {
+			auxLegend = new VectorialUniqueValueLegend(shapeType);
+		}
+		defaultSymbolPrev.setSymbol(auxLegend.getDefaultSymbol());
+		btnOpenSymbolLevelsEditor.setEnabled(symbolTable != null && symbolTable.getRowCount()>0);
+    }
+
+
+    private void setColorScheme(){
+
+		if(auxLegend.getColorScheme() != null) {
+			Color[] colorScheme = auxLegend.getColorScheme();
+//			ColorItem[] colors = new ColorItem[auxLegend.getColorScheme().length];
+//			for (int i = 0; i < auxLegend.getColorScheme().length; i++) {
+//				colors[i] = new ColorItem();
+//				colors[i].setColor(auxLegend.getColorScheme()[i]);
+//			}
+			cmbColorScheme.setSelectedColors(colorScheme);
+		}
+	}
+
+    private void getDefaultSymbolPrev(int shapeType) {
+		if(defaultSymbolPrev == null){
+			defaultSymbolPrev = new JSymbolPreviewButton(shapeType);
+			defaultSymbolPrev.setPreferredSize(new Dimension(110,20));
+			defaultSymbolPrev.addActionListener(this);
+			defaultSymbolPanel.add(defaultSymbolPrev,null);
+		}
+	}
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.legendmanager.panels.ILegendPanel#getLegend()
+     */
+    public ILegend getLegend() {
+    	fillSymbolListFromTable();
+
+    	if (auxLegend != null) {
+    		// your settings that are not the set of symbols must be located here
+//  		auxLegend.setClassifyingFieldNames(
+//  		new String[] {(String) cmbFields.getSelectedItem()});
+
+    		ISymbol defaultSymbolLegend = auxLegend.getDefaultSymbol();
+    		ISymbol symbol = defaultSymbolPrev.getSymbol();
+    		if(symbol != null){
+    			if(symbol!=defaultSymbolLegend){
+    				auxLegend.setDefaultSymbol(symbol);
+    			}
+    		}
+
+    		auxLegend.useDefaultSymbol(chbUseDefault.isSelected());
+
+    		theLegend = (VectorialUniqueValueLegend) auxLegend.cloneLegend();
+    		theLegend.setZSort(auxLegend.getZSort());
+    	}
+
+    	return theLegend;
+    }
+
+    private JCheckBox getChbUseDefault() {
+    	if (chbUseDefault == null) {
+			chbUseDefault = new JCheckBox();
+			chbUseDefault.setSelected(false);
+			chbUseDefault.addActionListener(new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					if (chbUseDefault.isSelected()) {
+						auxLegend.useDefaultSymbol(true);
+					} else {
+						auxLegend.useDefaultSymbol(false);
+					}
+				}
+			});
+			chbUseDefault.setText(PluginServices.getText(this, "resto_valores")+ ": ");
+		}
+
+		return chbUseDefault;
+    }
+
+    /**
+     * A�ade el resto de valores.
+     */
+    private void addDefault() {
+        auxLegend.getDefaultSymbol().setDescription("Default");
+        auxLegend.addSymbol(null, auxLegend.getDefaultSymbol());
+        symbolTable.addTableRecord(auxLegend.getDefaultSymbol(),
+            null, auxLegend.getDefaultSymbol().getDescription());
+        symbolTable.repaint();
+    }
+
+    /**
+     * Elimina el resto de valores que no estan representados por ning�n otro s�mbolo..
+     */
+    private void delDefault() {
+        auxLegend.delSymbol(null);
+        symbolTable.removeRow(null);
+        symbolTable.repaint();
+    }
+
+
+    public void actionPerformed(ActionEvent e) {
+
+    	//modificar el combobox de valor
+    	if (e.getActionCommand() == "FIELD_SELECTED") {
+    		JComboBox cb = (JComboBox) e.getSource();
+    		String fieldName = (String) cb.getSelectedItem();
+    		symbolTable.removeAllItems();
+			btnOpenSymbolLevelsEditor.setEnabled(false);
+
+
+//    		if (theLegend.getClassifyingFieldNames()!=null && fieldName != theLegend.getClassifyingFieldNames()[0]) {
+//    			//m_bCacheDirty = true;
+//    			theLegend.setClassifyingFieldNames(new String[] {fieldName});
+//    		}
+//
+//    		//////////////////////////////////////////PEPE
+//    		FLyrVect m = (FLyrVect) layer;
+//    		try {
+//    			int fieldType = m.getSource().getRecordset().getFieldType((int)cb.getSelectedIndex());
+//    			if (theLegend.getClassifyingFieldTypes()!=null && fieldType != theLegend.getClassifyingFieldTypes()[0]) {
+//    				//m_bCacheDirty = true;
+//    				theLegend.setClassifyingFieldTypes(new int[] {fieldType});
+//    			}
+//    		} catch (ReadDriverException e1) {
+//    			NotificationManager.addError(PluginServices.getText(this, "could_not_setup_legend"), e1);
+//    		}
+//    		/////////////////////////////////////////PEPE
+    	}
+
+    	// add all elements by value
+    	if (e.getActionCommand() == "ADD_ALL_VALUES") {
+    		fillTableValues();
+			btnOpenSymbolLevelsEditor.setEnabled(symbolTable != null && symbolTable.getRowCount()>0);
+    	}
+
+    	// add only one value
+    	if (e.getActionCommand() == "ADD_VALUE") {
+    		try {
+				ISymbol symbol =
+						mapContextManager.getSymbolManager().createSymbol(
+								layer.getShapeType());
+				Double clave = new Double(0.0);
+				symbolTable.addTableRecord(symbol,
+						clave,"0 - 0");
+				btnOpenSymbolLevelsEditor.setEnabled(true);
+    		} catch (ReadException ex) {
+    			NotificationManager.addError(PluginServices.getText(this, "getting_shape_type"), ex);
+    		}
+    	}
+
+    	//Vacia la tabla
+    	if (e.getActionCommand() == "REMOVE_ALL") {
+    		symbolTable.removeAllItems();
+    		auxLegend.setZSort(null);
+			btnOpenSymbolLevelsEditor.setEnabled(false);
+
+    	}
+
+    	//Quitar solo el elemento seleccionado
+    	if (e.getActionCommand() == "REMOVE") {
+    		symbolTable.removeSelectedRows();
+			btnOpenSymbolLevelsEditor.setEnabled(symbolTable.getRowCount()>0);
+    	}
+
+    	if (e.getActionCommand() == "OPEN_SYMBOL_LEVEL_EDITOR") {
+			ZSort myZSort = null;
+			if (auxLegend != null) {
+				myZSort = ((AbstractClassifiedVectorLegend) getLegend()).getZSort();
+				if(myZSort == null){
+					myZSort = new ZSort(auxLegend);
+				}
+			}
+			if (myZSort == null && theLegend != null) {
+				myZSort = new ZSort(theLegend);
+			}
+			SymbolLevelsWindow sl = new SymbolLevelsWindow(myZSort);
+			PluginServices.getMDIManager().addWindow(sl);
+			auxLegend.setZSort(sl.getZSort());
+		}
+    }
+
+	public String getDescription() {
+		return PluginServices.getText(this,"Dado_un_campo_de_atributos") + "," + PluginServices.getText(this,"muestra_los_elementos_de_la_capa_usando_un_simbolo_por_cada_valor_unico") + ".";
+	}
+
+	public ImageIcon getIcon() {
+		return new ImageIcon(this.getClass().getClassLoader().
+				getResource("images/ValoresUnicos.png"));
+	}
+
+	public Class getParentClass() {
+		return Categories.class;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(this,"Valores_unicos");
+	}
+
+	public JPanel getPanel() {
+		return this;
+	}
+
+	public Class getLegendClass() {
+		return VectorialUniqueValueLegend.class;
+	}
+
+
+	public boolean isSuitableFor(FLayer layer) {
+		return (layer instanceof FLyrVect);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/VectorialUniqueValue.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/General.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/General.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/General.java	(revision 38262)
@@ -0,0 +1,850 @@
+/*
+ * Created on 31-ene-2005
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.BorderLayout;
+import java.awt.ComponentOrientation;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.GridLayout;
+import java.awt.SystemColor;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.text.NumberFormat;
+import java.text.ParseException;
+
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.border.BevelBorder;
+import javax.swing.border.EtchedBorder;
+import javax.swing.border.TitledBorder;
+
+import org.cresques.cts.ICoordTrans;
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLyrDefault;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
+import org.gvsig.gui.beans.swing.JBlank;
+import org.gvsig.tools.locator.LocatorException;
+
+
+
+
+/**
+ * This class implements an useful and intuitive graphic interface to change some
+ * properties of the layer. This class extends AbstractThemeManager. The properties
+ * that allow modified are the name of the layer, the scale, if the user want to use
+ * Spatial index or not and the HyperLink. Also shows a scroll with a little resume
+ * with the properties of the layer.
+ * @author jmorell
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class General extends AbstractThemeManagerPage {
+
+	private static final long serialVersionUID = 1L;
+    private FLayer layer;
+	private NumberFormat nf = NumberFormat.getInstance();
+	private JPanel pnlLayerName = null;
+	private GridBagLayoutPanel pnlScale = null;
+	private JPanel pnlProperties = null;
+	private JLabel lblLayerName = null;
+	private JTextField txtLayerName = null;
+	private JTextField txtMaxScale = null;
+	private JTextArea propertiesTextArea = null;
+	private JRadioButton rdBtnShowAlways = null;
+	private JRadioButton rdBtnDoNotShow = null;
+	private JTextField txtMinScale = null;
+    private JCheckBox jCheckBoxSpatialIndex = null;
+
+//	private ViewDocument view;
+//    private JTextField txtLinkExtension = null;
+//	private JComboBox cmbLinkField = null;
+//    private JComboBox cmbLinkType = null;
+//    private JPanel pnlHyperLink;
+//	private JLabel lblLinkExtension;
+//	private JLabel lblLinkField;
+//	private JPanel pnlFieldAndExtension;
+//	private JPanel pnlHyperLinkAction;
+//	
+//	private JLabel lblDefaultAction;
+	private JScrollPane scrlProperties;
+
+    /**
+	 * This is the default constructor.
+	 */
+	public General() {
+		super();
+		initialize();
+	}
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private  void initialize() {
+		this.setLayout(new BorderLayout());
+		GridBagLayoutPanel aux = new GridBagLayoutPanel();
+		aux.addComponent(getPnlLayerName());
+		aux.addComponent(new JBlank(10, 10));
+		aux.addComponent(getJCheckBoxSpatialIndex());
+		aux.addComponent("", getPnlScale());
+		JPanel aux2 = new JPanel(new GridLayout(1,2));
+		aux2.add(getPnlProperties());
+//		aux2.add(getPnlHyperLink());
+		aux.addComponent(aux2);
+
+
+
+		aux.setPreferredSize(getPreferredSize());
+		this.add(aux, BorderLayout.CENTER);
+		this.add(new JBlank(5, 10), BorderLayout.WEST);
+		this.add(new JBlank(5, 10), BorderLayout.EAST);
+
+	}
+
+
+	/**
+	 * Sets the necessary properties in the panel. This properties are
+	 * extracted from the layer. With this properties fills the TextFields,
+	 * ComboBoxes and the rest of GUI components.
+	 * @param FLayer layer,
+	 */
+	public void setModel(FLayer layer) {
+		this.layer = layer;
+
+        if (layer instanceof FLyrVect) {
+//            FLyrVect lyrVect = (FLyrVect) layer;
+
+
+            //TODO
+//            if(lyrVect.getISpatialIndex() == null) {
+//                getJCheckBoxSpatialIndex().setSelected(false);
+//            } else {
+//                getJCheckBoxSpatialIndex().setSelected(true);
+//            }
+        }
+		if (layer.getMinScale() != -1) {
+			getTxtMaxScale().setText(nf.format(layer.getMinScale()));
+		}
+		if (layer.getMaxScale() != -1) {
+			getTxtMinScale().setText(nf.format(layer.getMaxScale()));
+		}
+		if (layer.getMinScale() == -1 && layer.getMaxScale() == -1) {
+			getRdBtnShowAlways().setSelected(true);
+			txtMaxScale.setEnabled(false);
+			txtMinScale.setEnabled(false);
+
+		} else {
+			getRdBtnDoNotShowWhen().setSelected(true);
+			txtMaxScale.setEnabled(true);
+			txtMinScale.setEnabled(true);
+		}
+		txtLayerName.setText(layer.getName());
+		showLayerInfo();
+
+
+//		if (PluginServices.getMainFrame() != null) {
+//			if  (PluginServices.getMDIManager().getActiveWindow() instanceof AbstractViewPanel ){
+//			    AbstractViewPanel theView = (AbstractViewPanel)PluginServices.getMDIManager().getActiveWindow();
+//			    view = theView.getModel();
+//			    try {
+//			        if (layer instanceof FLyrVect) {
+//			            FLyrVect ad = (FLyrVect) layer;
+//			            FeatureStore fs;
+//			            fs = ad.getFeatureStore();
+//			            FeatureType ftype = fs.getDefaultFeatureType();
+//			            String[] names = new String[ftype.size()];
+//			            Iterator iter = ftype.iterator();
+//			            int i=0;
+//			            while (iter.hasNext()){
+//			                names[i] = ((FeatureAttributeDescriptor)iter.next()).getName();
+//			                i++;
+//			            }
+//			            DefaultComboBoxModel defaultModel = new DefaultComboBoxModel(names);
+//			            cmbLinkField.setModel(defaultModel);
+//
+//			            if (layer.getLinkProperties().getField()!=null) {
+//							cmbLinkField.setSelectedItem(layer.getLinkProperties().getField());
+//						} else {
+//							cmbLinkField.setSelectedItem(view.getSelectedField());
+//						}
+//			        } else {
+//			            cmbLinkField = new JComboBox();
+//			        }
+//			     } catch (DataException e) {
+//			        NotificationManager.addError("No se pudo obtener la tabla", e);
+//			    }
+//
+//
+//			    if(layer.getLinkProperties().getExt()!=null) {
+//					getTxtLinkExtension().setText(layer.getLinkProperties().getExt());
+//				}
+//
+//			    getCmbLinkType().addItem(PluginServices.getText(this,
+//			       	"Enlazar_a_ficheros_de_imagen"));
+//			    getCmbLinkType().addItem(PluginServices.getText(this,
+//			    	"Enlazar_a_fichero_de_texto"));
+//
+//			    getCmbLinkType().addItem(PluginServices.getText(this,
+//			    	"Enlazar_a_documento_PDF"));
+//			    getCmbLinkType().addItem(PluginServices.getText(this,
+//					"Enlazar_a_imagen_SVG"));
+//
+//			    if (layer.getLinkProperties().getType()!=-1) {
+//					getCmbLinkType().setSelectedIndex(layer.getLinkProperties().getType());
+//				}
+//
+//			}
+//		}
+
+	}
+
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getPnlLayerName() {
+		if (pnlLayerName == null) {
+			lblLayerName = new JLabel();
+			pnlLayerName = new JPanel();
+			lblLayerName.setText(PluginServices.getText(this,"Nombre") + ":");
+			lblLayerName.setComponentOrientation(ComponentOrientation.UNKNOWN);
+			pnlLayerName.setComponentOrientation(ComponentOrientation.UNKNOWN);
+			pnlLayerName.add(lblLayerName, null);
+			pnlLayerName.add(getTxtLayerName(), null);
+		}
+		return pnlLayerName;
+	}
+	/**
+	 * This method initializes jPanel1
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private GridBagLayoutPanel getPnlScale() {
+		if (pnlScale == null) {
+			pnlScale = new GridBagLayoutPanel();
+			pnlScale.setBorder(BorderFactory.createTitledBorder(
+    				BorderFactory.createEtchedBorder(EtchedBorder.LOWERED),
+					PluginServices.getText(this, "rango_de_escalas"),
+					TitledBorder.DEFAULT_JUSTIFICATION,
+					TitledBorder.DEFAULT_POSITION, null, null)
+				);
+			ButtonGroup buttonGroup = new ButtonGroup();
+			buttonGroup.add(getRdBtnShowAlways());
+			buttonGroup.add(getRdBtnDoNotShowWhen());
+			pnlScale.addComponent(getRdBtnShowAlways());
+			pnlScale.addComponent(getRdBtnDoNotShowWhen());
+			JPanel aux;
+
+
+			aux = new JPanel(new FlowLayout(FlowLayout.LEFT));
+			aux.add(getTxtMaxScale());
+			aux.add(new JLabel("(" + PluginServices.getText(this,"escala_maxima") + ")"));
+
+			GridBagLayoutPanel aux2;
+			aux2 = new GridBagLayoutPanel();
+			aux2.addComponent(PluginServices.getText(
+					this,"este_por_encima_de")+" 1:",
+					aux);
+			aux = new JPanel(new FlowLayout(FlowLayout.LEFT));
+			aux.add(getTxtMinScale());
+			aux.add(new JLabel("(" + PluginServices.getText(this,"escala_minima") + ")"));
+
+			aux2.addComponent(PluginServices.getText(
+					this,"este_por_debajo_de_")+" 1:",
+					aux);
+
+			pnlScale.addComponent(new JBlank(20, 1), aux2);
+
+			pnlScale.addComponent(new JBlank(20, 1), aux2);
+
+		}
+		return pnlScale;
+	}
+	/**
+	 * This method initializes jPanel2, this contains the ScrollPane with the
+	 * properies.
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getPnlProperties() {
+		if (pnlProperties == null) {
+			pnlProperties = new JPanel();
+			pnlProperties.setBorder(BorderFactory.createTitledBorder(
+    				BorderFactory.createEtchedBorder(EtchedBorder.LOWERED),
+					PluginServices.getText(this, "propiedades"),
+					TitledBorder.DEFAULT_JUSTIFICATION,
+					TitledBorder.DEFAULT_POSITION, null, null)
+				);
+			pnlProperties.add(getScrlProperties(), null);
+		}
+		return pnlProperties;
+	}
+
+	/**
+	 * This method initializes jTextField
+	 *
+	 * @return javax.swing.JTextField
+	 */
+	private JTextField getTxtLayerName() {
+		if (txtLayerName == null) {
+			txtLayerName = new JTextField(25);
+			txtLayerName.setEditable(true);
+		}
+		return txtLayerName;
+	}
+
+	/**
+	 * This method initializes TxtMaxScale
+	 * @return jTextField1
+	 */
+	private JTextField getTxtMaxScale() {
+		if (txtMaxScale == null) {
+			txtMaxScale = new JTextField(15);
+			txtMaxScale.setEnabled(false);
+		}
+		return txtMaxScale;
+	}
+	/**
+	 * This method initilizes TxtArea, in this TextArea sets the text with
+	 * the properties of the layer
+	 * @return
+	 */
+	private JTextArea getPropertiesTextArea() {
+		if (propertiesTextArea == null) {
+			propertiesTextArea = new JTextArea();
+			propertiesTextArea.setEditable(false);
+			propertiesTextArea.setBackground(SystemColor.control);
+
+		}
+		return propertiesTextArea;
+	}
+
+	/**
+	 * This method initializes jScrollPane
+	 *
+	 * @return javax.swing.JScrollPane
+	 */
+	private JScrollPane getScrlProperties() {
+		if (scrlProperties == null) {
+			scrlProperties = new JScrollPane();
+			scrlProperties.setViewportView(getPropertiesTextArea());
+			scrlProperties.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
+			scrlProperties.setPreferredSize(new Dimension(350, 180));
+		}
+		return scrlProperties;
+	}
+	/**
+	 * This method initializes jRadioButton
+	 *
+	 * @return javax.swing.JRadioButton
+	 */
+	private JRadioButton getRdBtnShowAlways() {
+		if (rdBtnShowAlways == null) {
+			rdBtnShowAlways = new JRadioButton();
+			rdBtnShowAlways.setText(PluginServices.getText(this,"Mostrar_siempre"));
+			rdBtnShowAlways.setSelected(true);
+			rdBtnShowAlways.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					txtMaxScale.setEnabled(false);
+					txtMinScale.setEnabled(false);
+				}
+			});
+		}
+		return rdBtnShowAlways;
+	}
+	/**
+	 * This method initializes jRadioButton1
+	 *
+	 * @return javax.swing.JRadioButton
+	 */
+	private JRadioButton getRdBtnDoNotShowWhen() {
+		if (rdBtnDoNotShow == null) {
+			rdBtnDoNotShow = new JRadioButton();
+			rdBtnDoNotShow.setText(PluginServices.getText(this,"No_mostrar_la_capa_cuando_la_escala"));
+			rdBtnDoNotShow.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					txtMaxScale.setEnabled(true);
+					txtMinScale.setEnabled(true);
+				}
+			});
+		}
+		return rdBtnDoNotShow;
+	}
+	/**
+	 * This method initializes jTextField2
+	 *
+	 * @return javax.swing.JTextField
+	 */
+	private JTextField getTxtMinScale() {
+		if (txtMinScale == null) {
+			txtMinScale = new JTextField(15);
+			txtMinScale.setEnabled(false);
+		}
+		return txtMinScale;
+	}
+
+	private String getLayerName(){
+		return txtLayerName.getText().toString();
+	}
+//    /**
+//     * This method initializes jPanel3, this panel contains the components of the
+//     * HyperLink
+//     *
+//     * @return javax.swing.JPanel
+//     */
+//    private JPanel getPnlHyperLink() {
+//    	if (pnlHyperLink == null) {
+//    		pnlHyperLink = new JPanel();
+//    		pnlHyperLink.setBorder(BorderFactory.createTitledBorder(
+//    				BorderFactory.createEtchedBorder(EtchedBorder.LOWERED),
+//    					PluginServices.getText(this, "Hiperenlace"),
+//    					TitledBorder.DEFAULT_JUSTIFICATION,
+//    					TitledBorder.DEFAULT_POSITION, null, null)
+//    				);
+//    		JPanel aux = new JPanel(new BorderLayout());
+//    		pnlHyperLink.setLayout(new BorderLayout());
+//    		aux.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
+//    		aux.add(getPnlFieldAndExtension(), BorderLayout.NORTH);
+//    		aux.add(getPnlHyperLinkAction(), BorderLayout.CENTER);
+//    		pnlHyperLink.add(aux);
+//    	}
+//    	return pnlHyperLink;
+//    }
+//
+//
+//    private JPanel getPnlFieldAndExtension() {
+//    	if (pnlFieldAndExtension == null) {
+//    		lblLinkExtension = new JLabel();
+//    		lblLinkExtension.setText(" \t \t"+PluginServices.getText(this,"extension"));
+//    		lblLinkField = new JLabel();
+//    		lblLinkField.setText(PluginServices.getText(this, "Campo"));
+//    		pnlFieldAndExtension = new JPanel();
+//    		pnlFieldAndExtension.add(lblLinkField, null);
+//    		pnlFieldAndExtension.add(getCmbLinkField(), null);
+//    		pnlFieldAndExtension.add(lblLinkExtension, null);
+//    		pnlFieldAndExtension.add(getTxtLinkExtension(), null);
+//    	}
+//    	return pnlFieldAndExtension;
+//    }
+//    /**
+//     * This method initializes jPanel8. This panel contains the ComboBox to select
+//     * the action, (type of HyperLink)
+//     *
+//     * @return javax.swing.JPanel
+//     */
+//    private JPanel getPnlHyperLinkAction() {
+//    	if (pnlHyperLinkAction == null) {
+//    		lblDefaultAction = new JLabel();
+//    		lblDefaultAction.setText(PluginServices.getText(this, "Accion_Predefinida") + "  ");
+//    		pnlHyperLinkAction = new JPanel();
+//    		pnlHyperLinkAction.add(lblDefaultAction, null);
+//    		pnlHyperLinkAction.add(getCmbLinkType(), null);
+//    	}
+//    	return pnlHyperLinkAction;
+//    }
+//    /**
+//     * This method initializes jComboBox
+//     *
+//     * @return javax.swing.JComboBox
+//     */
+//    private JComboBox getCmbLinkField() {
+//    	if (cmbLinkField == null) {
+//            cmbLinkField = new JComboBox();
+//    	}
+//    	return cmbLinkField;
+//    }
+//    /**
+//     * This method initializes jTextField
+//     *
+//     * @return javax.swing.JTextField
+//     */
+//    private JTextField getTxtLinkExtension() {
+//    	if (txtLinkExtension == null) {
+//    		txtLinkExtension = new JTextField();
+//            txtLinkExtension.setPreferredSize(new Dimension(40,20));
+//    	}
+//    	return txtLinkExtension;
+//    }
+//    /**
+//     * This method initializes jComboBox1
+//     *
+//     * @return javax.swing.JComboBox
+//     */
+//    private JComboBox getCmbLinkType() {
+//    	if (cmbLinkType == null) {
+//    		cmbLinkType = new JComboBox();
+//    	}
+//    	return cmbLinkType;
+//    }
+//
+//	/**
+//     * @return Returns the view.
+//     */
+//    private ViewDocument getView() {
+//        return view;
+//    }
+    /**
+     * This method initializes jCheckBox
+     *
+     * @return javax.swing.JCheckBox
+     */
+    private JCheckBox getJCheckBoxSpatialIndex() {
+    	if (jCheckBoxSpatialIndex == null) {
+    		jCheckBoxSpatialIndex = new JCheckBox();
+    		jCheckBoxSpatialIndex.setBounds(2, 33, 242, 23);
+    		jCheckBoxSpatialIndex.setText(PluginServices.getText(this,"Usar_indice_espacial"));
+    	}
+    	return jCheckBoxSpatialIndex;
+    }
+
+//    /**
+//     * Returns the selected Type in the ComboBox
+//     */
+//    private int getLinkType() {
+//        return getCmbLinkType().getSelectedIndex();
+//
+//    }
+//
+//    /**
+//     * Returns the Selected Field in the ComboBox
+//     */
+//    private String getSelectedLinkField() {
+//        return (String) getCmbLinkField().getSelectedItem();
+//    }
+//
+//    /**
+//     * Returns the Extension in the TextField
+//     */
+//    private String getExtensionLink() {
+//        return getTxtLinkExtension().getText();
+//    }
+//
+//    /**
+//     * Returns true or false if the CheckBox is marked or not
+//     */
+//    private boolean isSpatialIndexSelected() {
+//        return getJCheckBoxSpatialIndex().isSelected();
+//    }
+
+    /**
+     * Add the information of the layer to the textArea
+     */
+    private void showLayerInfo() {
+		try {
+			String info = ((FLyrDefault)layer).getInfoString();
+			if (info == null) {
+				StringBuffer buff= new StringBuffer();
+				Envelope fullExtentViewPort = layer.getFullEnvelope();
+				IProjection viewPortProj = layer.getMapContext().getProjection();
+				buff.append(PluginServices.getText(this,"Extent"));
+				buff.append(" ");
+				buff.append(viewPortProj.getAbrev());
+				buff.append(" (" + PluginServices.getText(this, "view_projection") + "):\n\t");
+				buff.append(PluginServices.getText(this,"Superior") + ":\t" + fullExtentViewPort.getMaximum(1) + "\n\t");
+				buff.append(PluginServices.getText(this,"Inferior") + ":\t" + fullExtentViewPort.getMinimum(1) + "\n\t");
+				buff.append(PluginServices.getText(this,"Izquierda") + ":\t" + fullExtentViewPort.getMinimum(0) + "\n\t");
+				buff.append(PluginServices.getText(this,"Derecha") + ":\t" + fullExtentViewPort.getMaximum(0) + "\n");
+				// show layer native projection
+				if (layer.getProjection() != null
+						&& !layer.getProjection().getAbrev().equals(
+								viewPortProj.getAbrev())) {
+					IProjection nativeLayerProj = layer.getProjection();
+					ICoordTrans ct = viewPortProj.getCT(nativeLayerProj);
+//					Rectangle2D r=new Rectangle2D.Double(fullExtentViewPort.getMinimum(0),fullExtentViewPort.getMinimum(1),fullExtentViewPort.getLength(0),fullExtentViewPort.getLength(1));
+//					Rectangle2D nativeLayerExtent = ct.convert(r);
+					Envelope nativeLayerExtent = fullExtentViewPort.convert(ct);
+					buff.append(PluginServices.getText(this,"Extent") + " ");
+					buff.append(nativeLayerProj.getAbrev());
+					buff.append(" (" + PluginServices.getText(this, "layer_native_projection") + "):\n\t");
+					buff.append(PluginServices.getText(this, "Superior")
+							+ ":\t" + nativeLayerExtent.getMaximum(1) + "\n\t");
+					buff.append(PluginServices.getText(this, "Inferior")
+							+ ":\t" + nativeLayerExtent.getMinimum(1) + "\n\t");
+					buff.append(PluginServices.getText(this, "Izquierda")
+							+ ":\t" + nativeLayerExtent.getMinimum(0) + "\n\t");
+					buff.append(PluginServices.getText(this, "Derecha") + ":\t"
+							+ nativeLayerExtent.getMaximum(0) + "\n");
+
+				}
+				if (layer instanceof FLyrVect) {
+					FeatureStore fStore=((FLyrVect)layer).getFeatureStore();
+//					if (rv instanceof VectorialEditableAdapter) {
+//						rv=((VectorialEditableAdapter) ((FLyrVect)layer).getSource()).getOriginalAdapter();
+//					}
+
+					buff.append(PluginServices.getText(this,"Origen_de_datos") + ": ");
+					buff.append(fStore.getName());
+					info=buff.toString();
+
+					DataStoreParameters parameters=fStore.getParameters();
+					if (parameters instanceof FilesystemStoreParameters) {
+						info = info  + "\n" +
+						PluginServices.getText(this, "fichero")
+								+ ": "
+								+ ((FilesystemStoreParameters) parameters)
+										.getFile();
+//					FIXME
+//					}else if (parameters instanceof DBParameters){
+//						info = info + "\n" + fStore.getName() + "\n";
+//
+//						try {
+//							info = info +
+//							PluginServices.getText(this,"url") +": " + ((DBParameters)parameters).getHost() + "\n";
+//						} catch (Exception e) {
+//							//TODO: Que hacer aqui?
+//							e.printStackTrace();
+//						}
+//
+//						info = info +
+//						PluginServices.getText(this, "Tabla")
+//								+ ": "
+//								+ ((DBStoreParameters) parameters)
+//										.getTableName() + "\n";
+					}else{
+						info = info + "\n" + fStore.getName() + "\n";
+					}
+//					if (rv instanceof VectorialFileAdapter) {
+//						info = info + "\n" + rv.getDriver().getName() + "\n" +
+//						PluginServices.getText(this,"fichero") +": " + ((VectorialFileAdapter)rv).getFile();
+//
+//					} else if (rv instanceof VectorialDBAdapter) {
+//						DBLayerDefinition dbdef = ((VectorialDBAdapter) rv).getLyrDef();
+//						info = info + "\n" + rv.getDriver().getName() + "\n";
+//
+//						try {
+//							info = info +
+//							PluginServices.getText(this,"url") +": " + dbdef.getConnection().getURL() + "\n";
+//						} catch (Exception e) {
+//							//TODO: Que hacer aqui?
+//							e.printStackTrace();
+//						}
+//
+//						info = info +
+//						PluginServices.getText(this,"Tabla") +": " + dbdef.getTableName() + "\n";
+//					} else if (rv instanceof VectorialAdapter){
+//						info = info + "\n" + rv.getDriver().getName() + "\n";
+//					}
+					String sGeomType= "Unknow";
+
+					try {
+						GeometryType geomType = ((FLyrVect)layer).getTypeVectorLayer();
+						sGeomType = geomType.getName();
+					} catch (LocatorException e) {
+						NotificationManager.addError(e);
+					} catch (GeometryTypeNotSupportedException e) {
+						NotificationManager.showMessageWarning("Not supported GeometryType", e);
+					} catch (GeometryTypeNotValidException e) {
+						NotificationManager.showMessageWarning("Not valid GeometryType", e);
+					}
+
+					info += "\n" + PluginServices.getText(this,"type")+ ": "+sGeomType + "\n";
+
+				} else {
+					info=buff.toString();
+					info = info + PluginServices.getText(this,"Origen_de_datos") + ": " + layer.getName();
+				}
+
+			}
+			getPropertiesTextArea().setText(info);
+
+		} catch (ReadException e) {
+			NotificationManager.addError(e.getMessage(), e);
+		} catch (DataException e) {
+			NotificationManager.addError(e.getMessage(), e);
+		}
+
+    }
+
+    /**
+     * Returns true or false if the scale is activa
+     */
+	private boolean isScaleActive() {
+		return getRdBtnDoNotShowWhen().isSelected();
+	}
+
+//    /**
+//     * Instanciates a ITask (@see com.iver.utiles.swing.threads.ITask)
+//     * to create a spatial index for the selected layer in background.
+//     * This task also allow to monitor process evolution, and to cancel
+//     * this process.
+//     */
+//    private IMonitorableTask getCreateSpatialIndexTask() throws DataException {
+//    	// FIXME REVISAR ESTO (Quizas lanzar TaskException)
+//    	return new CreateSpatialIndexMonitorableTask((FLyrVect)layer);
+//    }
+
+	public void acceptAction() {
+//	     // Implementaci�n para hacer funcionar el hyperlink ...
+//        //com.iver.cit.gvsig.gui.View theView = (com.iver.cit.gvsig.gui.View)PluginServices.getMDIManager().getActiveView();
+//        //ProjectView view = theView.getModel();
+//    	if (PluginServices.getMainFrame() != null)
+//    	{
+//    		ViewDocument view = getView();
+//    		view.setTypeLink(getLinkType());
+//    		if (getSelectedLinkField()!=null)
+//    		{
+//    			view.setSelectedField(getSelectedLinkField().toString().trim());
+//    			view.setExtLink(getExtensionLink());
+//
+//    		}
+//    	}
+
+
+	}
+
+	public void cancelAction() {
+		// does nothing
+	}
+
+	/**
+	 * When we press the apply button, sets the new properties of the layer thar the
+	 * user modified using the UI components
+	 */
+	public void applyAction() {
+		if (isScaleActive()) {
+			try	{
+				layer.setMinScale((nf.parse(getTxtMaxScale().getText())).doubleValue());
+			} catch (ParseException ex)	{
+			    if (getTxtMaxScale().getText().compareTo("") == 0) {
+					layer.setMinScale(-1);
+				} else {
+					System.err.print(ex.getLocalizedMessage());
+				}
+			}
+
+			try	{
+			    layer.setMaxScale((nf.parse(getTxtMinScale().getText())).doubleValue());
+			} catch (ParseException ex)	{
+			    if (getTxtMinScale().getText().compareTo("") == 0) {
+					layer.setMaxScale(-1);
+				} else {
+					System.err.print(ex.getLocalizedMessage());
+				}
+			}
+
+		} else {
+	        layer.setMinScale(-1);
+	        layer.setMaxScale(-1);
+		}
+
+		if (!getLayerName().equals(layer.getName())){
+			layer.setName(getLayerName());
+		}
+
+//        if (layer instanceof FLyrVect){
+//            FLyrVect lyrVect = (FLyrVect) layer;
+//            if (isSpatialIndexSelected()) {
+//        		// TODO
+//
+//            	if(lyrVect.getISpatialIndex() == null) {
+//                	//AZABALA
+//                	try {
+//						PluginServices.
+//							cancelableBackgroundExecution(getCreateSpatialIndexTask());
+//					} catch (ReadDriverException e) {
+//						// TODO Auto-generated catch block
+//						NotificationManager.addError(e.getMessage(), e);
+//					}
+//                }
+//            }
+//            //AZABALA
+//            /*
+//             * If we unselect the spatial index checkbox...Must we delete
+//             * spatial index file, or we only have to put Spatial Index
+//             * reference to null?. I have followed the second choice
+//             */
+//            else{
+////                lyrVect.deleteSpatialIndex();
+//            }
+//
+//
+//        }
+//        //Codigo relacionado
+//        if (layer instanceof FLyrVect ){
+//			FLyrVect vectlyr=(FLyrVect) layer;
+//			if (getSelectedLinkField()!=null){
+//				vectlyr.getLinkProperties().setExt(getExtensionLink());
+//				vectlyr.getLinkProperties().setField(getSelectedLinkField().toString().trim());
+//				vectlyr.getLinkProperties().setType(getLinkType());
+//
+//				System.out.println("Link Properties");
+//				System.out.println("Extensi�n: " + vectlyr.getLinkProperties().getExt());
+//				System.out.println("Campo: " + vectlyr.getLinkProperties().getField());
+//				System.out.println("Tipo: " + vectlyr.getLinkProperties().getType());
+//			}
+//        }
+	}
+
+	/*
+	 *  (non-Javadoc)
+	 * @see java.awt.Component#getName()
+	 */
+	public String getName() {
+		return PluginServices.getText(this,"General");
+	}
+}  //  @jve:decl-index=0:visual-constraint="10,10"
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/General.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SymbolTable.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SymbolTable.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SymbolTable.java	(revision 38262)
@@ -0,0 +1,417 @@
+/*
+ * Created on 27-abr-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.GridLayout;
+import java.util.Hashtable;
+
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableColumn;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.gui.SymbolCellEditor;
+import org.gvsig.app.project.documents.gui.TableSymbolCellRenderer;
+import org.gvsig.app.project.documents.view.legend.edition.gui.IntervalCellEditor;
+import org.gvsig.app.project.documents.view.legend.edition.gui.ValueCellEditor;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.utils.swing.jtable.JTable;
+import org.gvsig.utils.swing.jtable.TextFieldCellEditor;
+
+
+/**
+ * JPanel que contiene la tabla con los s�mbolos intervalos o valores y
+ * etiquetado de estos valores.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class SymbolTable extends JPanel {
+	private static final long serialVersionUID = -8694846716328735113L;
+	private static Hashtable<String,TableCellEditor> cellEditors = new Hashtable<String,TableCellEditor>();
+
+	public static final String VALUES_TYPE = "values";
+	public static final String INTERVALS_TYPE = "intervals";
+	private JTable table;
+	private String type;
+	private int shapeType;
+
+	/**
+	 * Crea un nuevo FSymbolTable.
+	 *
+	 * @param type
+	 *            tipo de valor si es intervalo: "intervals" y si es por
+	 *            valores: "values".
+	 */
+	public SymbolTable(Component ownerComponent, String type, int shapeType) {
+		super(new GridLayout(1, 0));
+		this.type = type;
+		this.shapeType = shapeType;
+
+		table = new JTable();
+		table.setModel(new MyTableModel());
+		table.setPreferredScrollableViewportSize(new Dimension(480, 110));
+
+		initializeCellEditors();
+
+		// Create the scroll pane and add the table to it.
+		JScrollPane scrollPane = new JScrollPane(table);
+
+		// Set up column sizes.
+		// initColumnSizes(table);
+		setUpSymbolColumn(table, table.getColumnModel().getColumn(0));
+
+		if(cellEditors.get(type) == null)
+			throw new Error("Symbol table type not set!");
+
+		setUpValueColumn(table, table.getColumnModel().getColumn(1),cellEditors.get(this.type));
+		setUpLabelColumn(table, table.getColumnModel().getColumn(2));
+
+		// Add the scroll pane to this panel.
+		add(scrollPane);
+		table.setRowSelectionAllowed(true);
+	}
+	/**
+	 * Inicializa los valores de los CellEditors que la SymbolTable poseer� por defecto
+	 */
+	private void initializeCellEditors() {
+		this.cellEditors.put(this.INTERVALS_TYPE,new IntervalCellEditor());
+		this.cellEditors.put(this.VALUES_TYPE, new ValueCellEditor());
+	}
+	/**
+	 * A�ade un nuevo CellEditor a la lista de disponibles
+	 *
+	 * @param key String con el nombre identificativo del CellEditor
+	 * @param cellEditor CellEditor que va a ser a�adido
+	 */
+	public static void addNewCellEditor(String key,TableCellEditor cellEditor ) {
+		cellEditors.put(key, cellEditor);
+	}
+	/**
+	 * Obtiene el valor de los elementos de una fila seleccionada
+	 *
+	 * @return Object[] Array con los objetos de cada una de las columnas de la fila seleccionada
+	 */
+	public Object[] getSelectedRowElements() {
+		Object[] values = new Object[3];
+
+		MyTableModel m = (MyTableModel) table.getModel();
+		int[] selectedRows = table.getSelectedRows();
+
+		if(selectedRows.length != 1)
+			return null;
+
+		for (int i = 0; i < 3; i++) {
+			values[i] = m.getValueAt(selectedRows[0], i);
+		}
+
+		return values;
+	}
+	/**
+	 * A�ade una fila al modelo.
+	 *
+	 * @param vector
+	 *            Fila en forma de vector de Object para a�adir al modelo.
+	 */
+	public void addRow(Object[] vector) {
+		MyTableModel m = (MyTableModel) table.getModel();
+		m.addRow(vector);
+
+	}
+
+	/**
+	 * Elimina la fila que tiene como clave el objeto que se pasa como
+	 * par�metro.
+	 *
+	 * @param obj
+	 *            clave del objeto a eliminar.
+	 */
+	public void removeRow(Object obj) {
+		MyTableModel m = (MyTableModel) table.getModel();
+
+		for (int i = 0; i < m.getRowCount(); i++) {
+//			if (m.getValueAt(i, 1) instanceof NullUniqueValue
+//					|| m.getValueAt(i, 1) instanceof NullIntervalValue) {
+//				m.removeRow(i);
+//			}
+			if (m.getValueAt(i, 1) == null) {
+				m.removeRow(i);
+			}
+		}
+	}
+
+	/**
+	 * Elimina las filas que est�n seleccionadas.
+	 */
+	public void removeSelectedRows() {
+		if (table.getCellEditor() != null) {
+			table.getCellEditor().cancelCellEditing();
+		}
+
+		MyTableModel m = (MyTableModel) table.getModel();
+		int[] selectedRows = table.getSelectedRows();
+
+		for (int i = selectedRows.length - 1; i >= 0; i--) {
+			m.removeRow(selectedRows[i]);
+		}
+	}
+
+	/**
+	 * Rellena la tabla con los s�mbolos valores y descripciones que se pasan
+	 * como par�metro.
+	 *
+	 * @param symbols
+	 *            Array de s�mbolos
+	 * @param values
+	 *            Array de valores.
+	 * @param descriptions
+	 *            Array de descripciones.
+	 */
+	public void fillTableFromSymbolList(ISymbol[] symbols, Object[] values,
+			String[] descriptions) {
+		ISymbol theSymbol;
+
+		for (int i = 0; i < symbols.length; i++) {
+			theSymbol = symbols[i];
+//			if(!(values[i] instanceof NullIntervalValue) && !(values[i] instanceof NullUniqueValue))
+//				addTableRecord(theSymbol, values[i], descriptions[i]);
+			if(!(values[i] == null))
+				addTableRecord(theSymbol, values[i], descriptions[i]);
+		}
+	}
+
+	/**
+	 * A�ade una fila con los objetos que se pasan como par�metros.
+	 *
+	 * @param symbol
+	 *            s�mbolo de la fila.
+	 * @param value
+	 *            Valor de la fila.
+	 * @param description
+	 *            Descripci�n.
+	 */
+	public void addTableRecord(ISymbol symbol, Object value, String description) {
+		Object[] theRow = new Object[3];
+		theRow[0] = symbol;
+		theRow[1] = value;
+		theRow[2] = description;
+		addRow(theRow);
+	}
+
+	/**
+	 * Devuelve el valor a partie del n�mero de fila y columna.
+	 *
+	 * @param row
+	 *            n�mero de fila.
+	 * @param col
+	 *            n�mero de columna.
+	 *
+	 * @return Objeto.
+	 */
+	public Object getFieldValue(int row, int col) {
+		MyTableModel m = (MyTableModel) table.getModel();
+
+		return m.getValueAt(row, col);
+	}
+
+	/**
+	 * Devuelve el n�mero total de filas que contiene el modelo.
+	 *
+	 * @return N�mero de filas.
+	 */
+	public int getRowCount() {
+		MyTableModel m = (MyTableModel) table.getModel();
+
+		return m.getRowCount();
+	}
+
+	/**
+	 * Elimina todas las filas del modelo.
+	 */
+	public void removeAllItems() {
+		table.setModel(new MyTableModel());
+		setUpSymbolColumn(table, table.getColumnModel().getColumn(0));
+		setUpValueColumn(table, table.getColumnModel().getColumn(1),cellEditors.get(this.type));
+		setUpLabelColumn(table, table.getColumnModel().getColumn(2));
+	}
+
+	/**
+	 * Inicializa el cell editor de tipo descripci�n de la columna que se pasa
+	 * como par�metro.
+	 *
+	 * @param table2
+	 *            Tabla.
+	 * @param column
+	 *            Columna.
+	 */
+	public void setUpLabelColumn(JTable table2, TableColumn column) {
+		TextFieldCellEditor labeleditor = new TextFieldCellEditor();
+		column.setCellEditor(labeleditor);
+	}
+
+	/**
+	 * Inicializa el cell editor de tipo valor de la columna que se pasa como
+	 * par�metro.
+	 *
+	 * @param table2
+	 *            Tabla.
+	 * @param column
+	 *            Columna.
+	 * @param tableCellEditor
+	 */
+	public void setUpValueColumn(JTable table2,TableColumn column, TableCellEditor tableCellEditor) {
+		column.setCellEditor(tableCellEditor);
+	}
+	/**
+	 * Inicializa el cell editor de tipo s�mbolo de la columna que se pasa como
+	 * par�metro.
+	 *
+	 * @param table2
+	 *            Tabla.
+	 * @param column
+	 *            Columna.
+	 */
+	public void setUpSymbolColumn(JTable table2, TableColumn column) {
+		// Set up the editor
+		column.setMaxWidth(100);
+		column.setWidth(60);
+		column.setPreferredWidth(60);
+		column.setMinWidth(50);
+
+		// FSymbolCellEditor symboleditor = new FSymbolCellEditor();
+		SymbolCellEditor symboleditor = new SymbolCellEditor(shapeType);
+		column.setCellEditor(symboleditor);
+
+		TableSymbolCellRenderer renderer = new TableSymbolCellRenderer(true);
+		column.setCellRenderer(renderer);
+	}
+
+	/**
+	 * Modelo que propio que se aplica a la tabla.
+	 *
+	 * @author Vicente Caballero Navarro
+	 */
+	class MyTableModel extends DefaultTableModel {
+		private static final long serialVersionUID = 1L;
+
+		// AbstractTableModel {
+		private String[] columnNames = {
+				PluginServices.getText(this, "Simbolo"),
+				PluginServices.getText(this, "Valor"),
+				PluginServices.getText(this, "Etiqueta") };
+
+		/**
+		 * Devuelve el n�mero de columnas.
+		 *
+		 * @return N�mero de columnas.
+		 */
+		public int getColumnCount() {
+			return columnNames.length;
+		}
+
+		/**
+		 * Devuelve el String del valor de la columna.
+		 *
+		 * @param col
+		 *            N�mero de columna.
+		 *
+		 * @return Nombre de la columna.
+		 */
+		public String getColumnName(int col) {
+			return columnNames[col];
+		}
+
+		public Class getColumnClass(int c) {
+            switch (c) {
+            case 0:
+                return ISymbol.class;
+            case 1:
+                // TODO: take the value from the related FeatureType attribute
+                Object value = getValueAt(0, c);
+                return value == null ? Object.class : value.getClass();
+            case 2:
+                return String.class;
+            default:
+                return Object.class;
+            }
+		}
+
+		/*
+		 * Don't need to implement this method unless your table's editable.
+		 */
+		public boolean isCellEditable(int row, int col) {
+			// Note that the data/cell address is constant,
+			// no matter where the cell appears onscreen.
+			// if (col > 0) {
+			return true;
+		}
+
+		@Override
+		public Object getValueAt(int row, int column) {
+			if(column == 2)
+				return ((ISymbol)getValueAt(row,0)).getDescription();
+
+			return super.getValueAt(row, column);
+		}
+
+		@Override
+		public void setValueAt(Object aValue, int row, int column) {
+
+			if(column == 2){
+				ISymbol symbol = (ISymbol) getValueAt(row,0);
+				symbol.setDescription((String) aValue);
+				setValueAt(symbol,row,0);
+			}
+
+			super.setValueAt(aValue, row, column);
+		}
+
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/SymbolTable.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Features.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Features.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Features.java	(revision 38262)
@@ -0,0 +1,78 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.3  2007-05-17 09:32:37  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2007/03/09 11:25:00  jaume
+* Advanced symbology (start committing)
+*
+* Revision 1.1.2.1  2007/01/26 13:49:03  jaume
+* *** empty log message ***
+*
+*
+*/
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+
+
+public class Features extends AbstractParentPanel {
+
+	public String getDescription() {
+		// TODO Implement it
+		throw new Error("Not yet implemented!");
+
+	}
+	public String getTitle() {
+		return PluginServices.getText(Features.class, "features");
+	}
+
+	public boolean isSuitableFor(FLayer layer) {
+		return layer instanceof FLyrVect;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Features.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractThemeManagerPage.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractThemeManagerPage.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractThemeManagerPage.java	(revision 38262)
@@ -0,0 +1,112 @@
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.Messages;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.operations.Classifiable;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
+
+
+public abstract class AbstractThemeManagerPage extends JPanel {
+	/**
+	 * Cuando hay varios capas vectoriales seleccionados, devolver� el �ltimo.
+	 *
+	 * @param layers Grupo de layers.
+	 *
+	 * @return la primera flayer seleccionada.
+	 */
+	protected FLayer getFirstActiveLayerVect(FLayers layers) {
+		// Comprobar en openLegendManager que hay alg�n capa activo!
+		FLayer[] activeLyrs = layers.getActives();
+
+		if (activeLyrs.length == 0) {
+			JOptionPane.showMessageDialog(null,
+				Messages.getString("necesita_una_capa_activa"), "",
+				JOptionPane.ERROR_MESSAGE);
+
+			return null;
+		}
+
+		FLayer lyr = null;
+
+		for (int i = 0; i < activeLyrs.length; i++) {
+			if (activeLyrs[i] instanceof FLayers) {
+				lyr = getFirstActiveLayerVect((FLayers) activeLyrs[i]);
+			}
+
+			if (activeLyrs[i] instanceof Classifiable) {
+				Classifiable auxC = (Classifiable) activeLyrs[i];
+				ILegend theLegend = auxC.getLegend();
+
+				if (theLegend instanceof IVectorLegend) {
+					lyr = (FLayer) auxC;
+				}
+			}
+		}
+
+		if (lyr == null) {
+			JOptionPane.showMessageDialog(null,
+				Messages.getString(
+						PluginServices.getText(this, "necesita_una_capa_vectorial_activa") +
+						"\n\n"+
+						PluginServices.getText(this, "Por_favor_active_la_capa") + "."),
+				"",
+				JOptionPane.ERROR_MESSAGE);
+			return null;
+		}
+
+		return lyr;
+	}
+
+	/**
+	 * Returns the name of this ThemeManagerPage's tab, the text returned by this
+	 * method will be shown in the text of this panel's tab.
+	 */
+	public abstract String getName();
+
+	/**
+	 * <p>
+	 * Method invoked when the Ok button is pressed from the ThemeManagerWindow.
+	 * It will cause the changes performed by the user to take effect into the
+	 * layer if the Apply button wasn't pressed yet. In case Apply button was
+	 * pressed, then the programmer can choose between apply the changes again or
+	 * not.<br>
+	 * </p>
+	 * <p>
+	 * It shouldn't be a problem rather than the potential consumption of time
+	 * required in when applying such changes.<br>
+	 * </p>
+	 * <p>
+	 * <b>Notice</b> that after the call of this method the ThemeManagerWindow will be closed.
+	 * </p>
+	 */
+	public abstract void acceptAction();
+
+	/**
+	 * <p>
+	 * Method invoked when the Cancel button is pressed from the ThemeManagerWindow.
+	 * It will cause that the changes performed will be discarded.
+	 * </p>
+	 */
+	public abstract void cancelAction();
+
+	/**
+	 * Method invoked when the Apply button is pressed from the ThemeManagerWindow.
+	 * It will cause the changes performed by the user to take effect inmediately
+	 * into the the layer.
+	 */
+	public abstract void applyAction();
+
+	/**
+	 * This method is invoked during the initialization of the ThemeManagerWindow
+	 * and causes the dialog to be updated to reflect the current settings of
+	 * the layer in the context that this panel was designed for.
+	 * @param layer, the target FLayer
+	 */
+	public abstract void setModel(FLayer layer);
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/AbstractThemeManagerPage.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Categories.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Categories.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Categories.java	(revision 38262)
@@ -0,0 +1,79 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.3  2007-05-17 09:32:37  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2007/03/09 11:25:00  jaume
+* Advanced symbology (start committing)
+*
+* Revision 1.1.2.1  2007/01/26 13:49:03  jaume
+* *** empty log message ***
+*
+*
+*/
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+
+
+public class Categories extends AbstractParentPanel {
+
+	public String getDescription() {
+		// TODO Implement it
+		throw new Error("Not yet implemented!");
+
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(Categories.class, "categories");
+	}
+
+	public boolean isSuitableFor(FLayer layer) {
+		return layer instanceof FLyrVect;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Categories.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ThemeManagerWindow.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ThemeManagerWindow.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ThemeManagerWindow.java	(revision 38262)
@@ -0,0 +1,238 @@
+/*
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Hashtable;
+
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+import javax.swing.event.ChangeListener;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLyrDefault;
+import org.gvsig.gui.beans.swing.JButton;
+
+
+/**
+ *
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ * @version 01-feb-2007
+ */
+public final class ThemeManagerWindow extends JPanel implements IWindow, ActionListener {
+	private static final long serialVersionUID = 4650656815369149211L;
+	private static int selectedTabIndex = 0;
+	private static ArrayList<Class<? extends AbstractThemeManagerPage>> pages =
+			new ArrayList<Class<? extends AbstractThemeManagerPage>>();
+	private FLayer layer;
+	//private Legend legend; // Le asignaremos la leyenda del primer tema activo.
+	private JTabbedPane tabs = new JTabbedPane();  //  @jve:decl-index=0:
+	private JPanel panelButtons;
+	private static Hashtable<Class<? extends AbstractThemeManagerPage>, ArrayList<Class<? extends FLyrDefault>>> s =
+		new Hashtable<Class<? extends AbstractThemeManagerPage>, ArrayList<Class<? extends FLyrDefault>>>();
+
+
+	/**
+	 * Sobrecarga del constructor. Este se utiliza cuando se llama a este
+	 * di�logo desde la barra de comandos.
+	 *
+	 */
+	public ThemeManagerWindow(FLayer l) {
+		this.layer = l;
+
+		// TODO falta definir leyenda para cualquier tipo de capa
+		// y decidir entonces qu� opciones soporta cada una para
+		// que el di�logo se autorrellene
+		initialize();
+	}
+
+	private  void initialize() {
+		for (int i = 0; i < pages.size(); i++) {
+			Class<? extends AbstractThemeManagerPage> pageClass = pages.get(i);
+			AbstractThemeManagerPage tab = null;
+			try {
+				tab = pageClass.newInstance();
+			} catch (InstantiationException e) {
+				NotificationManager.addError("Trying to instantiate an interface" +
+						" or abstract class + "+pageClass.getName(), e);
+			} catch (IllegalAccessException e) {
+				NotificationManager.addError("IllegalAccessException: does " +
+						pageClass.getName()	+ " class have an anonymous" +
+						" constructor?", e);
+			}
+			if (tab!=null){
+			    if (s.get(tab.getClass()).contains(layer.getClass())){
+			        tab.setModel(layer);
+			        tabs.addTab(tab.getName(), tab);
+			    }
+			}
+		}
+
+		if (tabs.getComponentCount()>selectedTabIndex) {
+			tabs.setSelectedIndex(selectedTabIndex);
+		}
+		tabs.setPreferredSize(new java.awt.Dimension(640,390));
+
+
+		setLayout(new BorderLayout());
+		add(tabs, java.awt.BorderLayout.CENTER);
+
+		// The listener must be added after the tabs are added to the window
+		tabs.addChangeListener(new ChangeListener() {
+			public void stateChanged(javax.swing.event.ChangeEvent e) {
+				//remember the visible tab
+				selectedTabIndex = tabs.getSelectedIndex();
+				if (selectedTabIndex<0) {
+					selectedTabIndex = 0;
+				}
+			};
+		});
+		add(getPanelButtons(), java.awt.BorderLayout.SOUTH);
+		setSize(new Dimension(780, 540));
+	}
+
+	private JPanel getPanelButtons() {
+		if (panelButtons == null) {
+			panelButtons = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5,5));
+
+			JButton btnAceptar = new JButton(PluginServices.getText(this,"Aceptar"));
+			btnAceptar.setActionCommand("OK");
+			btnAceptar.addActionListener(this);
+
+			JButton btnApply = new JButton(PluginServices.getText(this,"Apply"));
+			btnApply.setActionCommand("APPLY");
+			btnApply.addActionListener(this);
+
+
+			JButton btnCancelar = new JButton(PluginServices.getText(this,"Cerrar"));
+			btnCancelar.setActionCommand("CANCEL");
+			btnCancelar.addActionListener(this);
+			panelButtons.setPreferredSize(new java.awt.Dimension(493,33));
+			panelButtons.add(btnCancelar);
+			panelButtons.add(btnApply);
+			panelButtons.add(btnAceptar);
+		}
+		return panelButtons;
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if (e.getActionCommand() == "OK") {
+			/* Causes all the tabs in the ThemeManagerWindow to perform THEIR apply-action
+			 * then fires the LegendChanged event that causes the view to be refreshed.
+			 * After that, it closes the window.
+			 */
+			actionPerformed(new ActionEvent(e.getSource(), e.getID(), "APPLY"));
+
+			close();
+		} else if (e.getActionCommand() == "CANCEL") {
+			/* Causes all the tabs in the ThemeManagerWindow to perform THEIR cancel-action
+			 * then closes the window.
+			 */
+			for (int i = 0; i < tabs.getTabCount(); i++) {
+				AbstractThemeManagerPage tab = (AbstractThemeManagerPage) tabs.getComponentAt(i);
+				tab.cancelAction();
+			}
+			close();
+		} else if (e.getActionCommand() == "APPLY") {
+			/* Causes the current visible tab in the ThemeManagerWindow to perform
+			 * ITS specific apply-action.
+			 */
+			for (int i = 0; i < tabs.getTabCount(); i++) {
+				AbstractThemeManagerPage tab = (AbstractThemeManagerPage) tabs.getComponentAt(i);
+				tab.applyAction();
+			}
+			layer.getMapContext().callLegendChanged();
+		} else {}
+//		 Lots of temporary objects were create.
+		// let's try some memory cleanup
+		System.gc();
+	}
+
+	private void close() {
+		PluginServices.getMDIManager().closeWindow(ThemeManagerWindow.this);
+	}
+
+	public WindowInfo getWindowInfo() {
+		WindowInfo viewInfo = new WindowInfo(WindowInfo.MODELESSDIALOG|WindowInfo.RESIZABLE);
+		viewInfo.setWidth(getWidth());
+		viewInfo.setHeight(getHeight());
+		viewInfo.setTitle(PluginServices.getText(this,"propiedades_de_la_capa"));
+		return viewInfo;
+	}
+
+	public static void addPage(Class<? extends AbstractThemeManagerPage> abstractThemeManagerPageClass) {
+		pages.add(abstractThemeManagerPageClass);
+	}
+
+	public static void setTabEnabledForLayer(Class<? extends AbstractThemeManagerPage> abstractThemeManagerPageClass, Class<? extends FLyrDefault> fLayerClazz, boolean enabled) {
+		ArrayList<Class<? extends FLyrDefault>> enabledLayers;
+		if (enabled == true) {
+			if (!s.containsKey(abstractThemeManagerPageClass)) {
+				enabledLayers = new ArrayList<Class<? extends FLyrDefault>> ();
+				enabledLayers.add(fLayerClazz);
+				s.put(abstractThemeManagerPageClass, enabledLayers);
+			} else {
+				enabledLayers = s.get(abstractThemeManagerPageClass);
+				enabledLayers.add(fLayerClazz);
+			}
+		} else {
+			if (!s.containsKey(abstractThemeManagerPageClass)) {
+				return;
+			}
+				enabledLayers = s.get(abstractThemeManagerPageClass);
+			enabledLayers.remove(fLayerClazz);
+		}
+	};
+	public Object getWindowProfile() {
+		return WindowInfo.TOOL_PROFILE;
+	};
+}  //  @jve:decl-index=0:visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ThemeManagerWindow.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Quantities.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Quantities.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Quantities.java	(revision 38262)
@@ -0,0 +1,81 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.3  2007-05-17 09:32:37  jaume
+* *** empty log message ***
+*
+* Revision 1.2  2007/03/09 11:25:00  jaume
+* Advanced symbology (start committing)
+*
+* Revision 1.1.2.1  2007/01/26 13:49:03  jaume
+* *** empty log message ***
+*
+*
+*/
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+
+
+public class Quantities extends AbstractParentPanel {
+
+	public String getDescription() {
+		return "testing per a comprovar l'agrupament";
+	}
+
+	public String getParentTitle() {
+		return null;
+	}
+
+	public String getTitle() {
+		return PluginServices.getText(Quantities.class, "quantities");
+	}
+
+	public boolean isSuitableFor(FLayer layer) {
+		return layer instanceof FLyrVect;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/Quantities.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ILegendPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ILegendPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ILegendPanel.java	(revision 38262)
@@ -0,0 +1,128 @@
+/*
+ * Created on 14-dic-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import javax.swing.ImageIcon;
+import javax.swing.JPanel;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+
+
+/**
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ *
+ * Este interfaz es el que debe cumplir cualquier panel que empleemos
+ * para confeccionar una leyenda. Se le pasa una capa para que
+ * tome su leyenda, y con el m�todo getLegend tomamos la leyenda
+ * que ha confeccionado el usuario.
+ */
+public interface ILegendPanel {
+	/**
+	 * Initializes the data required for this legend panel. That is, the layer that
+	 * will adopt the changes and the current legend that this layer has. If the
+	 * legend is not the type of legend that this panel manages then it initializes
+	 * the panel with the default values. In case it is, then the panel should
+	 * refresh its components with the current values of the Legend.
+	 * @param lyr,  target layer
+	 * @param legend, the legend currently applied to lyr
+	 */
+	public void setData(FLayer lyr, ILegend legend);
+
+	/**
+	 * Returns an instance of Legend
+	 * @return Legend, the legend result of the settings
+	 */
+	public ILegend getLegend();
+
+	/**
+	 * Returns a brief human-readable description about what kind of legend builds this panel
+	 * @return String with a brief description
+	 */
+	public String getDescription();
+
+	/**
+	 * Returns the icon which should graphically describe what this panel's legend does.
+	 * @return ImageIcon with the icon to be displayed
+	 */
+	public ImageIcon getIcon();
+
+	/**
+	 * If this panel should appear as a subnode of the legends tree, in other words it is not
+	 * a first-level node, then this method would return <b>its parent's class</b>. Otherwise, if
+	 * it is a first-level node, then it will return <b>null</b>.
+	 * @return String containing the parent's title.
+	 */
+	public Class getParentClass();
+
+	/**
+	 * Returns the title (a human-readable one) of this panel.
+	 */
+	public String getTitle();
+
+	/**
+	 * <p>If this is a complete panel (it is a child node in the legend tree) to set up a legend
+	 * this method will return a <b>JPanel</b> containing the necessary components. Otherwise, if
+	 * it is just a classification node (it has children) in the legend tree it will return
+	 * just <b>null</b>.<br></p>
+	 *
+	 * <p>If <b>null</b> is returned, the ILegendPanel that will be shown and selected each time
+	 * it is selected is the very first child of this parent node.</p>
+	 */
+	public JPanel getPanel();
+
+	/**
+	 * Returns the class of the legend produced by this ILegendPanel.
+	 */
+	public Class getLegendClass();
+
+	/**
+	 * Returns <b>true</b> if this legend is applicable to this layer, <b>false</b> otherwise.
+	 */
+	public boolean isSuitableFor(FLayer layer);
+}
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ILegendPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ILabelingStrategyPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ILabelingStrategyPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/ILabelingStrategyPanel.java	(revision 38262)
@@ -0,0 +1,99 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelingStrategy;
+
+
+/**
+ * Interface to be implemented for those panels whose purpose is to
+ * set up labeling strategies.
+ *
+ * ILabelingStrategyPanel.java
+ *
+ *
+ * @author jaume dominguez faus - jaume.dominguez@iver.es Jun 13, 2008
+ *
+ */
+public interface ILabelingStrategyPanel {
+	/**
+	 * Invoked when de user accepts the settings, the returned value
+	 * is a always ready-to-work labeling strategy.
+	 *
+	 * @return ILabelingStrategy, a labeling strategy completely set up.
+	 */
+	public ILabelingStrategy getLabelingStrategy();
+
+	/**
+	 * Sets the model of the panel. As a general contract, after invoke
+	 * this method, the panel should be filled with all the values
+	 * needed and be able to be repainted successfully.
+	 *
+	 * @param layer, the layer to whom the labeling strategy is associated.
+	 * @param str, the current labeling strategy.
+	 */
+	public void setModel(FLayer layer, ILabelingStrategy str);
+
+	/**
+	 * A human-readable localized text to make this strategy easily
+	 * recognizable among all the available strategies.
+	 * @return
+	 */
+	public String getLabelingStrategyName();
+
+	/**
+	 * <p>
+	 * The panel shown in the layer properties dialog is selected through
+	 * the class of the labeling strategy. This method returns such class.
+	 * <br>
+	 * </p>
+	 * <p>
+	 * <b>Note</b> that, as a collateral effect, the panel that sets up a labeling strategy
+	 * can be substituted programatically by other of your wish if
+	 * you return the same labeling strategy class than the one to
+	 * be replaced with your new one. The last panel installed, will
+	 * be the one to be shown.
+	 * </p>
+	 * @return Class, the labeling strategy's Class
+	 */
+	public Class getLabelingStrategyClass();
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LegendManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LegendManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LegendManager.java	(revision 38262)
@@ -0,0 +1,1049 @@
+/*
+ * Created on 08-feb-2005
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.legend.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.prefs.Preferences;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTextArea;
+import javax.swing.JTree;
+import javax.swing.filechooser.FileFilter;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreePath;
+import javax.swing.tree.TreeSelectionModel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.fmap.mapcontext.exceptions.LegendLayerException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.operations.Classifiable;
+import org.gvsig.fmap.mapcontext.layers.operations.ClassifiableVectorial;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.IClassifiedVectorLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
+import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolManager;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+/**
+ * Implements the panel which allows the user to control all the information
+ * about the
+ * legends of a layer in order to improve the information that it offers to the
+ * user.
+ * There are options to create, save or load an existing legend.
+ * 
+ * @author jaume dominguez faus - jaume.dominguez@iver.es
+ */
+public class LegendManager extends AbstractThemeManagerPage {
+
+    private static final long serialVersionUID = 7989057553773181019L;
+    private static ArrayList<Class<? extends ILegendPanel>> legendPool =
+        new ArrayList<Class<? extends ILegendPanel>>();
+    // private static ArrayList<Class<? extends IFMapLegendDriver>>
+    // legendDriverPool = new ArrayList<Class<? extends IFMapLegendDriver>>();
+
+    private FLayer layer;
+    private ILegend legend; // Le asignaremos la leyenda del primer tema activo.
+    private Hashtable<Class<? extends ILegendPanel>, ILegendPanel> pages =
+        new Hashtable<Class<? extends ILegendPanel>, ILegendPanel>();
+    private JPanel topPanel = null;
+    private JTextArea titleArea = null;
+    private JPanel preview = null;
+    private JScrollPane jTitleScrollPane = null;
+    private JTree jTreeLegends;
+    private ILegendPanel activePanel;
+    private JScrollPane legendTreeScrollPane;
+    private boolean dirtyTree;
+    private DefaultMutableTreeNode root = new DefaultMutableTreeNode();
+    private DefaultTreeModel treeModel;
+    private JScrollPane jPanelContainer;
+    private JPanel jCentralPanel;
+    private JSplitPane jSplitPane;
+    private boolean isTreeListenerDisabled;
+    private JButton btnSaveLegend;
+    private JButton btnLoadLegend;
+    private Hashtable<FLayer, ILegend> table = null;
+    private boolean empty = true;
+    private JLabel iconLabel;
+
+    public static String defaultLegendFolderPath;
+    {
+
+        Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
+        defaultLegendFolderPath = prefs.get("LegendsFolder", "");
+    }
+    private ActionListener loadSaveLegendAction = new ActionListener() {
+
+        public void actionPerformed(java.awt.event.ActionEvent e) {
+            JComponent c = (JComponent) e.getSource();
+            if (c.equals(getBtnSaveLegend())) {
+                saveLegend();
+
+            } else
+                if (c.equals(getBtnLoadLegend())) {
+                    loadLegend();
+                }
+        }
+
+        private void saveLegend() {
+            ILegend legend = activePanel.getLegend();
+
+            PersistenceManager manager = ToolsLocator.getPersistenceManager();
+            JFileChooser fileChooser = new JFileChooser();
+            fileChooser.setAcceptAllFileFilterUsed(false);
+
+            fileChooser.setFileFilter(new FileFilter() {
+
+                @Override
+                public String getDescription() {
+                    return "Legend files (*"
+                        + SymbolManager.LEGEND_FILE_EXTENSION + ")";
+                }
+
+                @Override
+                public boolean accept(File f) {
+                    if (f.isDirectory()) {
+                        return true;
+                    } else
+                        if (f.isFile() && getExtension(f) != null) {
+                            return getExtension(f).equals(
+                                SymbolManager.LEGEND_FILE_EXTENSION);
+                        } else {
+                            return false;
+                        }
+                }
+            });
+
+            if (fileChooser.showSaveDialog((Component) PluginServices
+                .getMainFrame()) == JFileChooser.APPROVE_OPTION) {
+                OutputStream os;
+                File selectedFile = fileChooser.getSelectedFile();
+
+                if (getExtension(selectedFile) == null
+                    || !getExtension(selectedFile).equals(
+                        SymbolManager.LEGEND_FILE_EXTENSION)) {
+                    File selectedFileWithExtension =
+                        new File(selectedFile.getAbsolutePath()
+                            + SymbolManager.LEGEND_FILE_EXTENSION);
+                    selectedFile = selectedFileWithExtension;
+                }
+
+                try {
+                    os = new FileOutputStream(selectedFile);
+                } catch (FileNotFoundException e) {
+                    JOptionPane.showMessageDialog(null,
+                        "_cant_open_the_input_file_legend");
+                    return;
+                }
+
+                manager.putObject(os, legend);
+            }
+        }
+
+        private void loadLegend() {
+
+            JFileChooser fileChooser = new JFileChooser();
+            fileChooser.setAcceptAllFileFilterUsed(false);
+
+            // fileChooser filter
+            fileChooser.setFileFilter(new FileFilter() {
+
+                @Override
+                public String getDescription() {
+                    // get this extension from manager or somewhere!
+
+                    return "Legend files (*"
+                        + SymbolManager.LEGEND_FILE_EXTENSION + ")";
+                }
+
+                @Override
+                public boolean accept(File f) {
+                    if (f.isDirectory()) {
+                        return true;
+                    } else
+                        if (f.isFile() && getExtension(f) != null) {
+
+                            return getExtension(f).equals(
+                                SymbolManager.LEGEND_FILE_EXTENSION);
+                        } else {
+                            return false;
+                        }
+                }
+            });
+
+            // open a file
+            if (fileChooser.showOpenDialog((Component) PluginServices
+                .getMainFrame()) == JFileChooser.APPROVE_OPTION) {
+                File file = fileChooser.getSelectedFile();
+                PersistenceManager manager =
+                    ToolsLocator.getPersistenceManager();
+                InputStream is;
+
+                try {
+                    is = new FileInputStream(file);
+                } catch (FileNotFoundException e) {
+                    JOptionPane.showMessageDialog(null,
+                        "_cant_open_the_input_file_legend");
+                    return;
+                }
+                ILegend legend = (ILegend) manager.getObject(is);
+                applyLegend(legend);
+            }
+        }
+    };
+
+    //
+    // JLegendFileChooser jfc = new
+    // JLegendFileChooser(getLegendDrivers(),true);
+    // jfc.setAcceptAllFileFilterUsed(false);
+    //
+    //
+    // File basedir = null;
+    // jfc.setCurrentDirectory(basedir);
+    // if (jfc.showSaveDialog((Component) PluginServices.getMainFrame())
+    // == JFileChooser.APPROVE_OPTION) {
+    //
+    // File file = jfc.getSelectedFile();
+    // String version = jfc.getDriverVersion();
+    // IFMapLegendDriver driver = jfc.getSuitableDriver();
+    //
+    // if(!(driver instanceof FMapGVLDriver)){
+    // Object[] options = {PluginServices.getText(this, "yes"),
+    // PluginServices.getText(this, "no")};
+    //
+    // int answer =
+    // JOptionPane.showOptionDialog((Component)PluginServices.getMainFrame(),
+    // PluginServices.getText(this, "not_GVSLEG_save_question")+"\n"+ //GVL
+    // changed to GVSLEG, be aware
+    // PluginServices.getText(this, "desea_continuar"),
+    // PluginServices.getText(this, "confirmation_dialog"),
+    // JOptionPane.YES_NO_OPTION,
+    // JOptionPane.QUESTION_MESSAGE,
+    // null,
+    // options, options[1]);
+    // if (answer!=JOptionPane.OK_OPTION) {
+    // // 'Cancel' pressed or window closed: don't save anythig, exit
+    // save dialog
+    // return;
+    // }
+    // }
+    //
+    // if (file.exists()) {
+    // Object[] options = {PluginServices.getText(this, "yes"),
+    // PluginServices.getText(this, "no"),
+    // PluginServices.getText(this, "Cancel")};
+    //
+    // int answer =
+    // JOptionPane.showOptionDialog((Component)PluginServices.getMainFrame(),
+    // PluginServices.getText(this,
+    // "fichero_ya_existe_seguro_desea_guardarlo"),
+    // PluginServices.getText(this, "confirmation_dialog"),
+    // JOptionPane.YES_NO_CANCEL_OPTION,
+    // JOptionPane.QUESTION_MESSAGE,
+    // null,
+    // options, options[1]);
+    // if (answer!=JOptionPane.OK_OPTION) {
+    // // 'Cancel' pressed or window closed: don't save anythig, exit
+    // save dialog
+    // return;
+    // }
+    // }
+    //
+    //
+    // try {
+    // driver.write(layer.getMapContext().getLayers(),layer,
+    // activePanel.getLegend(), file, version);
+    //
+    // } catch (LegendDriverException e1) {
+    // int type = e1.getType();
+    // String message=PluginServices.getText(this,
+    // "could_not_save_legend")+":\n";
+    //
+    // if ((type & LegendDriverException.SAVE_LEGEND_ERROR) != 0){
+    // type = type & ~LegendDriverException.SAVE_LEGEND_ERROR;
+    // message += PluginServices.getText(this,
+    // "error_writing_file")+".\n";
+    // }
+    // if ((type & LegendDriverException.UNSUPPORTED_LEGEND_CREATION) !=
+    // 0){
+    // type = type & ~LegendDriverException.UNSUPPORTED_LEGEND_CREATION;
+    // message += "-"+ PluginServices.getText(this,
+    // "legend_format_not_yet_supported")+"\n";
+    // }
+    // if (type != 0) {
+    // message = "-"+PluginServices.getText(this, "unknown_error")+"\n";
+    // }
+    // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
+    // message);
+    // }
+    // }
+    // } else if (c.equals(getBtnLoadLegend())) {
+    //
+    // JLegendFileChooser jfc = new
+    // JLegendFileChooser(getLegendDrivers());
+    // jfc.setAcceptAllFileFilterUsed(false);
+    //
+    // if (jfc.showOpenDialog((Component) PluginServices.getMainFrame())
+    // == JFileChooser.APPROVE_OPTION) {
+    // File file=jfc.getSelectedFile();
+    // IFMapLegendDriver driver = jfc.getSuitableDriver();
+    // String path = file.getAbsolutePath();
+    // defaultLegendFolderPath = path.substring(0,
+    // path.lastIndexOf(File.separator));
+    //
+    // try {
+    // table = driver.read(layer.getMapContext().getLayers(),layer,
+    // file);
+    //
+    // if(table.containsKey(layer))
+    // applyLegend((ILegend) table.get(layer));
+    //
+    //
+    // } catch (LegendDriverException e1) {
+    // int type = e1.getType();
+    // String message = PluginServices.getText(this,
+    // "the_legend_will_not_be_applied")+":\n";
+    // boolean hasReason = false;
+    //
+    // if ((type &
+    // LegendDriverException.CLASSIFICATION_FIELDS_NOT_FOUND) != 0){
+    // type = type &
+    // ~LegendDriverException.CLASSIFICATION_FIELDS_NOT_FOUND;
+    // message +="-"+ PluginServices.getText(this,
+    // "classification_field_does_not_exists")+"\n";
+    // hasReason = true;
+    // }
+    // if ((type & LegendDriverException.LEGEND_TYPE_NOT_YET_SUPPORTED)
+    // != 0){
+    // type = type &
+    // ~LegendDriverException.LEGEND_TYPE_NOT_YET_SUPPORTED;
+    // message += "-"+ PluginServices.getText(this,
+    // "legend_type_not_yet_supported")+"\n";
+    // hasReason = true;
+    // }
+    // if ((type & LegendDriverException.SYMBOL_TYPE_NOT_YET_SUPPORTED)
+    // != 0){
+    // type = type &
+    // ~LegendDriverException.SYMBOL_TYPE_NOT_YET_SUPPORTED;
+    // message += "-"+ PluginServices.getText(this,
+    // "unsupported_symbol_type")+"\n";
+    // hasReason = true;
+    // }
+    // if ((type & LegendDriverException.LAYER_SHAPETYPE_MISMATCH) !=
+    // 0){
+    // type = type & ~LegendDriverException.LAYER_SHAPETYPE_MISMATCH;
+    // message += "-"+ PluginServices.getText(this,
+    // "layer_geometry_and_legend_types_are_incompatible")+"\n";
+    // hasReason = true;
+    // }
+    // if ((type & LegendDriverException.PARSE_LEGEND_FILE_ERROR) != 0){
+    // type = type & ~LegendDriverException.PARSE_LEGEND_FILE_ERROR;
+    // message += "-"+ PluginServices.getText(this,
+    // "failed_reading_file")+"\n";
+    // hasReason = true;
+    // }
+    // if ((type &
+    // LegendDriverException.UNSUPPORTED_LEGEND_FILE_VERSION) != 0){
+    // type = type &
+    // ~LegendDriverException.UNSUPPORTED_LEGEND_FILE_VERSION;
+    // message += "-"+ PluginServices.getText(this,
+    // "unsupported_legend_file_version")+"\n";
+    // hasReason = true;
+    // }
+    // if ((type & LegendDriverException.UNSUPPORTED_LEGEND_READING) !=
+    // 0){
+    // type = type & ~LegendDriverException.UNSUPPORTED_LEGEND_READING;
+    // message +="-"+ PluginServices.getText(this,
+    // "unsupported_legend_file_format")+"\n";
+    // hasReason = true;
+    // }
+    // if ((type & LegendDriverException.LAYER_NAME_NOT_FOUND) != 0){
+    // type = type & ~LegendDriverException.UNSUPPORTED_LEGEND_READING;
+    // message +="-"+ PluginServices.getText(this,
+    // "could_not_find_layer")+"\n";
+    // hasReason = true;
+    // }
+    // if (!hasReason) {
+    // message = "-"+ PluginServices.getText(this,
+    // "unknown_error")+"\n";
+    // }
+    // JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
+    // message);
+    // }
+    // }
+    // }
+
+    // private IFMapLegendDriver[] getLegendDrivers() {
+    // Class<?>[] legendDriverClasses = legendDriverPool.toArray(new Class[0]);
+    // ArrayList<IFMapLegendDriver> drivers = new
+    // ArrayList<IFMapLegendDriver>();
+    // for (int i = 0; i < legendDriverClasses.length; i++) {
+    // String message = PluginServices.getText(this,
+    // "adding_legend_file_format_support")+": ";
+    // try {
+    // Class<?> c = legendDriverClasses[i];
+    // drivers.add((IFMapLegendDriver) c.newInstance());
+    // } catch (Exception e) {
+    // NotificationManager.addError(message+PluginServices.getText(this,
+    // "failed"), e);
+    // }
+    // NotificationManager.addInfo(message+PluginServices.getText(this, "OK"));
+    //
+    // }
+    // return (IFMapLegendDriver[]) drivers.toArray(new IFMapLegendDriver[0]);
+    // };
+
+    private String getExtension(File f) {
+        String ext = null;
+        String s = f.getName();
+        int i = s.lastIndexOf('.');
+
+        if (i > 0 && i < s.length() - 1) {
+            // ext = s.substring(i + 1).toLowerCase();
+            ext = s.substring(i).toLowerCase();
+        }
+        return ext;
+    }
+
+    public LegendManager() {
+        initialize();
+    }
+
+    private void initialize() {
+        setLayout(new BorderLayout());
+        add(getTopPanel(), BorderLayout.NORTH);
+        add(getSplitPane(), BorderLayout.CENTER);
+        setSize(500, 360);
+        treeModel = new DefaultTreeModel(root);
+    }
+
+    private JSplitPane getSplitPane() {
+        if (jSplitPane == null) {
+            jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
+            JPanel aux = new JPanel(new BorderLayout(0, 5));
+            aux.add(getLegendTreeScrollPane(), BorderLayout.CENTER);
+            aux.add(getPreviewPanel(), BorderLayout.SOUTH);
+            jSplitPane.setLeftComponent(aux);
+            jSplitPane.setRightComponent(getCentralPanel());
+            jSplitPane.setDividerLocation(150);
+        }
+        return jSplitPane;
+    }
+
+    private JPanel getCentralPanel() {
+        if (jCentralPanel == null) {
+            jCentralPanel = new JPanel(new BorderLayout(0, 10));
+            jCentralPanel.add(getTitleScroll(), BorderLayout.NORTH);
+            jCentralPanel.add(getJPanelContainer(), BorderLayout.CENTER);
+        }
+        return jCentralPanel;
+    }
+
+    private JScrollPane getJPanelContainer() {
+        if (jPanelContainer == null) {
+            jPanelContainer = new JScrollPane();
+        }
+        return jPanelContainer;
+    }
+
+    /**
+     * This method initializes jPanel
+     * 
+     * @return javax.swing.JPanel
+     */
+    private JPanel getTopPanel() {
+        if (topPanel == null) {
+            topPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 0));
+            topPanel.setPreferredSize(new Dimension(638, 31));
+            topPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
+                null, "",
+                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+                javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
+            topPanel.add(getBtnSaveLegend(), null);
+            topPanel.add(getBtnLoadLegend(), null);
+        }
+        return topPanel;
+    }
+
+    private JButton getBtnSaveLegend() {
+        if (btnSaveLegend == null) {
+            btnSaveLegend =
+                new JButton(PluginServices.getText(this, "Guardar_leyenda")
+                    + "...");
+            btnSaveLegend.addActionListener(loadSaveLegendAction);
+        }
+        return btnSaveLegend;
+    }
+
+    private JButton getBtnLoadLegend() {
+        if (btnLoadLegend == null) {
+            btnLoadLegend =
+                new JButton(PluginServices.getText(this, "Recuperar_leyenda")
+                    + "...");
+            btnLoadLegend.addActionListener(loadSaveLegendAction);
+        }
+        return btnLoadLegend;
+    }
+
+    /**
+     * This method initializes jTextArea
+     * 
+     * @return javax.swing.JTextArea
+     */
+    private JTextArea getTitleArea() {
+        if (titleArea == null) {
+            titleArea = new JTextArea();
+            titleArea.setBackground(java.awt.SystemColor.control);
+            titleArea.setLineWrap(true);
+            titleArea.setRows(0);
+            titleArea.setWrapStyleWord(false);
+            titleArea.setEditable(false);
+            titleArea.setPreferredSize(new java.awt.Dimension(495, 40));
+        }
+        return titleArea;
+    }
+
+    /**
+     * This method initializes jPanel1
+     * 
+     * @return javax.swing.JPanel
+     */
+    private JPanel getPreviewPanel() {
+        if (preview == null) {
+            preview = new JPanel();
+            preview.setBorder(javax.swing.BorderFactory
+                .createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
+            preview.setBackground(java.awt.SystemColor.text);
+            preview.setLayout(new BorderLayout(5, 5));
+            preview.add(getIconLabel());
+            preview.setPreferredSize(new Dimension(getSplitPane()
+                .getDividerLocation(), 130));
+            preview.setBackground(Color.white);
+        }
+        return preview;
+    }
+
+    private JLabel getIconLabel() {
+        if (iconLabel == null) {
+            iconLabel = new JLabel();
+            iconLabel.setVerticalAlignment(JLabel.CENTER);
+            iconLabel.setHorizontalAlignment(JLabel.CENTER);
+        }
+
+        return iconLabel;
+    }
+
+    /**
+     * This method initializes jScrollPane
+     * 
+     * @return javax.swing.JScrollPane
+     */
+    private JScrollPane getLegendTreeScrollPane() {
+        if (legendTreeScrollPane == null) {
+            legendTreeScrollPane = new JScrollPane();
+            legendTreeScrollPane.setViewportView(getJTreeLegends());
+        }
+        return legendTreeScrollPane;
+    }
+
+    /**
+     * <p>
+     * Adds a new fully-featured legend panel to the LegendManager.<br>
+     * </p>
+     * 
+     * <p>
+     * <b>CAUTION:</b> Trying to add a child page whose parent hasn't been added
+     * yet causes the application to fall in an infinite loop. This is a known
+     * bug, sorry. Just avoid this case or try to fix it (lol).<br>
+     * </p>
+     * 
+     * <p>
+     * <b>Notice</b> that there is no type check so if you add a
+     * non-ILegendPanel class, you'll have a runtime error later.
+     * </p>
+     * 
+     * @param page
+     *            , Class of type ILegendPanel
+     */
+    public static void addLegendPage(
+        Class<? extends ILegendPanel> iLegendPanelClass) {
+        if (!legendPool.contains(iLegendPanelClass)) {
+            legendPool.add(iLegendPanelClass);
+        }
+    }
+
+    /**
+     * Causes the component to be autofilled with the legend pages that
+     * were added through the static method addLegendPage(ILegendPanel page)
+     */
+    private void fillDialog() {
+        if (empty) {
+            for (int i = 0; i < legendPool.size(); i++) {
+                Class<?> pageClass = (Class<?>) legendPool.get(i);
+                ILegendPanel page;
+                try {
+                    page = (ILegendPanel) pageClass.newInstance();
+                    if (page.isSuitableFor(layer)) {
+                        // this legend can be applied to this layer
+                        pages.put(page.getClass(), page);
+
+                        if (dirtyTree) {
+                            // rebuild page tree
+                            dirtyTree = false;
+
+                            ArrayList<ILegendPanel> legList =
+                                new ArrayList<ILegendPanel>(pages.values());
+                            ArrayList<ILegendPanel> alreadyAdded =
+                                new ArrayList<ILegendPanel>();
+                            DefaultTreeModel model = new DefaultTreeModel(root);
+                            while (legList.size() > 0) {
+                                ILegendPanel legend =
+                                    (ILegendPanel) legList.get(0);
+                                Class<? extends ILegendPanel> parent =
+                                    legend.getParentClass();
+                                while (parent != null
+                                    && !alreadyAdded
+                                        .contains(pages.get(parent))) {
+                                    legend = (ILegendPanel) pages.get(parent);
+                                }
+                                doInsertNode(model, legend);
+                                legList.remove(legend);
+                                alreadyAdded.add(legend);
+                            }
+                            treeModel = model;
+                            jTreeLegends.setModel(model);
+                        }
+                        doInsertNode(treeModel, page);
+
+                    }
+                    getJTreeLegends().setModel(treeModel);
+
+                } catch (InstantiationException e) {
+                    NotificationManager.addError(
+                        "Trying to instantiate an interface"
+                            + " or abstract class + " + pageClass.getName(), e);
+                } catch (IllegalAccessException e) {
+                    NotificationManager.addError(
+                        "IllegalAccessException: does " + pageClass.getName()
+                            + " class have an anonymous" + " constructor?", e);
+                }
+
+            }
+            getJTreeLegends().repaint();
+            empty = false;
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private DefaultMutableTreeNode findNode(Class searchID) {
+        String title;
+        try {
+            title =
+                ((ILegendPanel) Class.forName(searchID.getName()).newInstance())
+                    .getTitle();
+        } catch (Exception e) {
+            // this should be impossible, but anyway this case will be treat as
+            // the node does not
+            // exist.
+            return null;
+        }
+
+        Enumeration e = root.breadthFirstEnumeration();
+        while (e.hasMoreElements()) {
+            DefaultMutableTreeNode nodeAux =
+                (DefaultMutableTreeNode) e.nextElement();
+            if (nodeAux != null) {
+                ILegendPanel legend = (ILegendPanel) nodeAux.getUserObject();
+                if (legend == null)
+                    continue; // Root node
+                if (legend.getTitle().equals(title)) {
+                    return nodeAux;
+                }
+            }
+        }
+        return null;
+    }
+
+    private void doInsertNode(DefaultTreeModel treeModel, ILegendPanel page) {
+        dirtyTree =
+            ((page.getParentClass() != null) && (findNode(page.getParentClass()) == null));
+        if (findNode(page.getClass()) != null) // It is already added
+            return;
+        if (page.getParentClass() != null) {
+            if (pages.containsKey(page.getParentClass())) {
+                ILegendPanel parent =
+                    (ILegendPanel) pages.get(page.getParentClass());
+                DefaultMutableTreeNode nodeParent = findNode(parent.getClass());
+                if (nodeParent == null) {
+                    // the parent is empty
+                    // Recursively add it
+                    doInsertNode(treeModel, parent);
+                } else {
+                    DefaultMutableTreeNode nodeValue =
+                        new DefaultMutableTreeNode(page);
+                    int children = nodeParent.getChildCount();
+                    int pos = 0;
+                    for (int i = 0; i < children; i++) {
+                        DefaultMutableTreeNode node =
+                            (DefaultMutableTreeNode) treeModel.getChild(
+                                nodeParent, i);
+                        if (node.getUserObject() instanceof ILegendPanel) {
+                            String pageTitle =
+                                ((ILegendPanel) node.getUserObject())
+                                    .getTitle();
+                            if (pageTitle.compareTo(page.getTitle()) < 0)
+                                ++pos;
+                        }
+                    }
+                    treeModel.insertNodeInto(nodeValue, nodeParent, pos);
+                }
+            }
+        } else {
+            // First level node
+            DefaultMutableTreeNode nodeValue = new DefaultMutableTreeNode(page);
+            int children = root.getChildCount();
+            int pos = 0;
+            for (int i = 0; i < children; i++) {
+                DefaultMutableTreeNode node =
+                    (DefaultMutableTreeNode) treeModel.getChild(root, i);
+                if (node.getUserObject() instanceof ILegendPanel) {
+                    String pageTitle =
+                        ((ILegendPanel) node.getUserObject()).getTitle();
+                    if (pageTitle.compareTo(page.getTitle()) < 0)
+                        ++pos;
+                }
+            }
+            treeModel.insertNodeInto(nodeValue, root, pos);
+        }
+    }
+
+    private JScrollPane getTitleScroll() {
+        if (jTitleScrollPane == null) {
+            jTitleScrollPane = new JScrollPane();
+            jTitleScrollPane.setBounds(2, 2, 498, 42);
+            jTitleScrollPane.setViewportView(getTitleArea());
+        }
+        return jTitleScrollPane;
+    }
+
+    private JTree getJTreeLegends() {
+        if (jTreeLegends == null) {
+            jTreeLegends = new JTree();
+            jTreeLegends.setRootVisible(false);
+            MyTreeCellRenderer treeCellRenderer = new MyTreeCellRenderer();
+            treeCellRenderer.setOpenIcon(null);
+            treeCellRenderer.setClosedIcon(null);
+            treeCellRenderer.setLeafIcon(null);
+
+            jTreeLegends.setCellRenderer(treeCellRenderer);
+            jTreeLegends.setShowsRootHandles(true);
+            jTreeLegends
+                .addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
+
+                    public void valueChanged(
+                        javax.swing.event.TreeSelectionEvent e) {
+                        if (isTreeListenerDisabled)
+                            return;
+                        DefaultMutableTreeNode node =
+                            (DefaultMutableTreeNode) jTreeLegends
+                                .getLastSelectedPathComponent();
+
+                        if (node == null)
+                            return;
+                        setActivePage((ILegendPanel) node.getUserObject());
+                    }
+                });
+            jTreeLegends.putClientProperty("JTree.linestyle", "Angled");
+            jTreeLegends.getSelectionModel().setSelectionMode(
+                TreeSelectionModel.SINGLE_TREE_SELECTION);
+        }
+        return jTreeLegends;
+    }
+
+    private void setActivePage(ILegendPanel page) {
+        if (page.getPanel() == null) {
+            // this is what happens when the user clicked in a parent node
+            // which only acts as a folder, and does not manage any legend
+            // then it expands and selects the first child
+            DefaultMutableTreeNode node = findNode(page.getClass());
+            if (treeModel.getChildCount(node) > 0) {
+                DefaultMutableTreeNode dmn =
+                    (DefaultMutableTreeNode) treeModel.getChild(node, 0);
+                page = (ILegendPanel) dmn.getUserObject();
+                setActivePage(page);
+                expandAndSelect(page);
+            }
+        } else {
+            // show the page
+            activePanel = page;
+            setIcon(activePanel.getIcon());
+
+            activePanel.setData(layer, legend);
+            getTitleArea().setText(activePanel.getDescription());
+            jPanelContainer.setViewportView(activePanel.getPanel());
+        }
+    }
+
+    private void setIcon(ImageIcon icon) {
+        getIconLabel().setIcon(icon);
+    }
+
+    private class MyTreeCellRenderer extends DefaultTreeCellRenderer {
+
+        private static final long serialVersionUID = -6013698992263578041L;
+
+        public MyTreeCellRenderer() {
+        }
+
+        public Component getTreeCellRendererComponent(JTree tree, Object value,
+            boolean sel, boolean expanded, boolean leaf, int row,
+            boolean hasFocus) {
+
+            super.getTreeCellRendererComponent(tree, value, sel, expanded,
+                leaf, row, hasFocus);
+            if (value instanceof DefaultMutableTreeNode) {
+                DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
+                if (node.getUserObject() instanceof ILegendPanel) {
+                    ILegendPanel legend = (ILegendPanel) node.getUserObject();
+                    this
+                        .setText(legend.getPanel() == null ? "<html><b>"
+                            + legend.getTitle() + "</b></html>" : legend
+                            .getTitle());
+                }
+            }
+            return this;
+        }
+
+    }
+
+    private void expandAndSelect(Object node) {
+        isTreeListenerDisabled = true;
+        // will expand the tree and select the node
+        int i = 0;
+        boolean exit = false;
+
+        TreePath tp = null;
+        // find the page in the tree
+        while (i < jTreeLegends.getRowCount() && !exit) {
+            // see if this row is the node that we are looking for
+
+            tp = jTreeLegends.getPathForRow(i);
+            Object[] obj = tp.getPath();
+            for (int j = 0; j < obj.length && !exit; j++) {
+                Object o = ((DefaultMutableTreeNode) obj[j]).getUserObject();
+
+                if (o != null && o.getClass().equals(node.getClass())
+                    && o.equals(node)) {
+                    // found it! collapse the tree
+                    while (i >= 0) {
+                        jTreeLegends.collapseRow(i);
+                        i--;
+                    }
+                    exit = true;
+                }
+            }
+            jTreeLegends.expandRow(i);
+            i++;
+        }
+
+        // expand the tree and set the selection
+        if (tp != null) {
+            jTreeLegends.expandPath(tp);
+            jTreeLegends.setSelectionPath(tp);
+        }
+        isTreeListenerDisabled = false;
+    }
+
+    public String getName() {
+        return PluginServices.getText(this, "Simbologia");
+    }
+
+    public void acceptAction() {
+        // automatically handled by the ThemeManagerWindow
+    }
+
+    public void cancelAction() {
+        // does nothing
+    }
+
+    public void applyAction() {
+        legend = activePanel.getLegend();
+
+        if (table != null && table.size() > 1)
+            applyRestOfLegends(table, layer.getMapContext().getLayers());
+
+        /*
+         * try to apply the legend to all the active layers that
+         * can accept it
+         */
+        FLayer[] activeLyrs = layer.getMapContext().getLayers().getActives();
+        for (int i = 0; i < activeLyrs.length; i++) {
+            FLayer laux = activeLyrs[i];
+
+            if (activeLyrs[i] instanceof FLayers) {
+                laux = getFirstActiveLayerVect((FLayers) activeLyrs[i]);
+            }
+
+            if (laux instanceof ClassifiableVectorial) {
+                ClassifiableVectorial aux2 = (ClassifiableVectorial) laux;
+                try {
+                    if (legend instanceof IClassifiedVectorLegend) {
+                        // Es una leyenda que necesita un recordset con un
+                        // nombre de campo. Comprobamos que ese recordset
+                        // tiene ese nombre de campo y es del tipo esperado
+                        IClassifiedVectorLegend cl =
+                            (IClassifiedVectorLegend) legend;
+
+                        if (aux2 instanceof FLyrVect) {
+
+                            if (cl.getValues().length == 0) {
+                                JOptionPane.showMessageDialog(
+                                    (Component) PluginServices.getMainFrame(),
+                                    PluginServices.getText(this,
+                                        "no_es_posible_aplicar_leyenda_vacia"));
+                                return;
+                            }
+
+                            aux2.setLegend((IVectorLegend) legend);
+                        }
+                    } else
+                        if (legend instanceof IVectorLegend) {
+                            aux2.setLegend((IVectorLegend) legend);
+                        }
+                } catch (LegendLayerException e) {
+                    NotificationManager.addError(PluginServices.getText(this,
+                        "legend_exception"), e);
+                }
+            }
+        }
+    }
+
+    private void applyRestOfLegends(Hashtable<FLayer, ILegend> table2,
+        FLayers layers) {
+
+        for (int i = 0; i < layers.getLayersCount(); i++) {
+            FLayer my_layer = layers.getLayer(i);
+
+            if (!(my_layer instanceof FLayers)) {
+                if (my_layer instanceof ClassifiableVectorial) {
+                    try {
+                        if (table.containsKey(my_layer)) {
+                            ClassifiableVectorial lyr =
+                                (ClassifiableVectorial) my_layer;
+                            lyr.setLegend((IVectorLegend) table.get(my_layer));
+                        }
+
+                    } catch (LegendLayerException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    }
+                }
+            } else
+                applyRestOfLegends(table, (FLayers) my_layer);
+        }
+    }
+
+    @Override
+    public void setModel(FLayer layer) {
+        this.layer = layer;
+        applyLegend(((Classifiable) layer).getLegend());
+    }
+
+    /**
+     * Applies the legend to the layer.
+     * 
+     * @param aLegend
+     *            , legend that the user wants to apply
+     */
+    private void applyLegend(ILegend aLegend) {
+        this.legend = aLegend;
+        fillDialog();
+        Enumeration<Class<? extends ILegendPanel>> en = pages.keys();
+        while (en.hasMoreElements()) {
+            ILegendPanel page = (ILegendPanel) pages.get(en.nextElement());
+            if (legend.getClass().equals(page.getLegendClass())) {
+                setActivePage(page);
+                expandAndSelect(page);
+                return;
+            }
+        }
+        NotificationManager.addWarning(PluginServices.getText(this,
+            "caution_no_registered_panel_associated_to_"
+                + "loaded_legend_the_legend_wont_be_applied"));
+    }
+
+    // public static void addLegendDriver(Class<? extends IFMapLegendDriver>
+    // legendDriverClass) {
+    // if (!legendDriverPool.contains(legendDriverClass)) {
+    // legendDriverPool.add(legendDriverClass);
+    // }
+    // }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/legend/gui/LegendManager.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/IContextMenuAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/IContextMenuAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/IContextMenuAction.java	(revision 38262)
@@ -0,0 +1,74 @@
+package org.gvsig.app.project.documents.view;
+
+
+/**
+ * Interface que deben de cumplir una acci�n aplicable dede un
+ * Menu contextual o popup.
+ * <br>
+ * Las acciones se deben registrar en el punto de extensi�n adecuado * 
+ * <br><br>
+ * Por lo general extender de la clase AbstractDocumentAction
+ * 
+ *  
+ * 
+ * @author Jose Manuel Viv� (Chema)
+ */
+
+public interface IContextMenuAction {
+	
+	/**
+	 * Dice si la acci�n es visible 
+	 * segun los documentos seleccionados
+	 * <br>
+	 * @param item elemento sobre el que se ha pulsado
+	 * @param selectedItems elementos seleccionados en el momento de pulsar
+	 * 
+	 */
+	public boolean isVisible(Object item, Object[] selectedItems);
+	
+	/**
+	 * Dice si la acci�n esta habilitada 
+	 * segun los documentos seleccionados
+	 * <br>
+	 * @param item elemento sobre el que se ha pulsado
+	 * @param selectedItems elementos seleccionados en el momento de pulsar
+	 * 
+	 */
+	public boolean isEnabled(Object item, Object[] selectedItems);
+	
+	/**
+	 * Ejecuta la acci�n sobre los documentos seleccionados
+	 * <br>
+	 * @param item elemento sobre el que se ha pulsado
+	 * @param selectedItems elementos seleccionados en el momento de pulsar
+	 * 
+	 */
+	public void execute(Object item, Object[] selectedItems);
+	
+	/**
+	 * Nombre del grupo al que pertenece la accion
+	 */
+	public String getGroup();
+	
+	/**
+	 * Orden del grupo al que pertenece la acci�n
+	 */
+	public int getGroupOrder();
+	
+	/**
+	 * Orden del elemento dentro del grupo
+	 */
+	public int getOrder();
+	
+	/**
+	 * Texto del elemento
+	 */
+	public String getText();
+	
+	/**
+	 * Descripci�n mas detallada de la acci�n
+	 * (se utilizar� como Tooltip)
+	 */
+	public String getDescription();	
+	
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/IContextMenuAction.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/metadata/gui/MetadataInfoManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/metadata/gui/MetadataInfoManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/metadata/gui/MetadataInfoManager.java	(revision 38262)
@@ -0,0 +1,142 @@
+/*
+ * Created on 31-ene-2005
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ */
+
+package org.gvsig.app.project.documents.view.metadata.gui;
+
+import java.awt.BorderLayout;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.project.documents.view.legend.gui.AbstractThemeManagerPage;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.gui.beans.swing.JBlank;
+import org.gvsig.metadata.swing.basic.api.JMetadataPanel;
+import org.gvsig.metadata.swing.basic.api.MetadataSwingLocator;
+import org.gvsig.metadata.swing.basic.api.MetadataSwingManager;
+import org.gvsig.tools.dynobject.exception.DynObjectValidateException;
+
+public class MetadataInfoManager extends AbstractThemeManagerPage {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 7432962479048597376L;
+	private JMetadataPanel metadataPanel;
+
+	/**
+	 * This is the default constructor.
+	 */
+	public MetadataInfoManager() {
+		super();
+		initialize();
+	}
+
+	private void initialize() {
+		this.setLayout(new BorderLayout());
+		this.add(new JBlank(5, 10), BorderLayout.WEST);
+		this.add(new JBlank(5, 10), BorderLayout.EAST);
+	}
+
+	/**
+	 * Sets the necessary properties in the panel. This properties are extracted
+	 * from the layer. With this properties fills the TextFields, ComboBoxes and
+	 * the rest of GUI components.
+	 * 
+	 * @param FLayer
+	 *            layer,
+	 */
+	public void setModel(FLayer layer) {
+		try {
+			MetadataSwingManager manager = MetadataSwingLocator
+					.getMetadataSwingManager();
+			this.metadataPanel = manager.createJMetadataPanel(layer);			
+			this.add(metadataPanel, BorderLayout.CENTER);
+
+		} catch (Exception e) {
+			NotificationManager.addError("Can't assign model", e);
+		}
+	}
+
+	public void acceptAction() {
+		if (metadataPanel == null) {
+			return;
+		}
+		saveMetadata();
+	}
+
+	private void saveMetadata() {
+		try {
+			this.metadataPanel.saveMetadata();
+		} catch (DynObjectValidateException e) {
+			JOptionPane.showMessageDialog(null, getInfoString(e),
+					"Metadata Validation Errors",
+					 JOptionPane.WARNING_MESSAGE);
+		}
+	}
+
+	private String getInfoString(DynObjectValidateException e) {
+		StringBuffer buffer = new StringBuffer();
+
+		buffer.append("<html>");
+		buffer.append("<body>");
+		buffer.append("<h2>Metadata values could not be stored due to the following errors:'")
+				.append(this.metadataPanel.getMetadata().getDynClass()
+						.getName()).append("'</h2>");
+		buffer.append("<p>");
+		buffer.append("<br>");
+		buffer.append("<ol>");
+		buffer.append("  " + e.getLocalizedMessageStack());
+		buffer.append("</ol>");
+		buffer.append("</p>");
+		buffer.append("</body>");
+		buffer.append("</html>");
+
+		return buffer.toString().replace("\n", "<br/>");
+	}
+
+	public void cancelAction() {
+		// does nothing
+	}
+
+	/**
+	 * When we press the apply button, sets the new properties of the layer that
+	 * the user modified using the UI components
+	 */
+	public void applyAction() {
+		if (metadataPanel == null) {
+			return;
+		}
+		saveMetadata();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.awt.Component#getName()
+	 */
+	public String getName() {
+		return PluginServices.getText(this, "_Metadata");
+	}
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ListSelectorListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ListSelectorListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ListSelectorListener.java	(revision 38262)
@@ -0,0 +1,71 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view;
+
+/**
+ * Interfaz invocada por el FPanelExtentSelector cuando el usuario ha seleccionado al
+ * menos un elemento y pulsa el bot�n aceptar
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+public interface ListSelectorListener {
+    /**
+     * M�todo invocado cuando el usuario pulsa aceptar y hay algo seleccionado
+     *
+     * @param indices Array con los �ndices de los elementos seleccionados
+     */
+    public void indexesSelected(int[] indices);
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param indices DOCUMENT ME!
+     */
+    public void indexesRemoved(int[] indices);
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param name DOCUMENT ME!
+     */
+    public void newElement(String name);
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ListSelectorListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/BaseViewDocument.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/BaseViewDocument.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/BaseViewDocument.java	(revision 38262)
@@ -0,0 +1,272 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2009 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2004-2009 IVER TI
+*   
+*/
+
+package org.gvsig.app.project.documents.view;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.DocumentManager;
+import org.gvsig.app.project.documents.view.info.gui.HTMLInfoToolPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.events.ErrorEvent;
+import org.gvsig.fmap.mapcontext.events.listeners.ErrorListener;
+import org.gvsig.fmap.mapcontext.layers.CancelationException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+/**
+ *
+ * @author 2005-         Vicente Caballero
+ * @author 2009-         Joaquin del Cerro
+ * 
+ */
+
+public abstract class BaseViewDocument extends AbstractDocument implements ErrorListener,
+		ViewDocument {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -2621709089720665902L;
+	
+	public static final String PERSISTENCE_DEFINITION_NAME = "BaseViewDocument";
+	
+	protected MapContext mapOverViewContext;
+	protected MapContext mapContext;
+	
+	public BaseViewDocument() {
+		super();
+	}
+	
+	public BaseViewDocument(DocumentManager factory) {
+		super(factory);
+	}
+	
+	/**
+	 * Gets the MapContext of the main map in the view.
+	 *
+	 * @return the  main MapContext
+	 */
+	public MapContext getMapContext() {
+		return mapContext;
+	}
+
+	/**
+	 * Gets the MapContext from the locator, which is the
+	 * small map in the left-bottom corner of the View.
+	 *
+	 * @return the locator MapContext
+	 */
+	public MapContext getMapOverViewContext() {
+		return mapOverViewContext;
+	}
+
+	public void setMapContext(MapContext fmap) {
+		mapContext = fmap;
+		fmap.addErrorListener(this);
+	}
+
+	public void setMapOverViewContext(MapContext fmap) {
+		mapOverViewContext = fmap;
+		mapOverViewContext.setProjection(mapContext.getProjection());
+	}
+
+	public void showErrors(){
+		if (mapContext.getLayersError().size()>0){
+			String layersError="";
+			for (int i=0;i<mapContext.getLayersError().size();i++){
+				layersError=layersError+"\n"+(String)mapContext.getLayersError().get(i);
+			}
+			JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
+					PluginServices.getText(this,"fallo_capas")+" : \n"+
+					layersError);
+		}
+	}
+
+	/**
+	 * Reports to the user a bundle of driver exceptions produced in the
+	 * same atomic MapContext transaction
+	 */
+	@SuppressWarnings("rawtypes") 
+	public void reportDriverExceptions(String introductoryText, List driverExceptions) {
+		HtmlWindow htmlPanel = new HtmlWindow(570, 600, PluginServices.getText(this,"driver_error"));
+		String htmlText = "";
+		if(introductoryText == null){
+			htmlText += "<h2 text=\"#000080\">"+PluginServices.getText(this,"se_han_producido_los_siguientes_errores_durante_la_carga_de_las_capas")+"</h2>";
+		}else{
+			htmlText += introductoryText;
+		}
+		int numErrors = driverExceptions.size();
+		for(int i = 0; i < numErrors; i++){
+			//htmlText += "<br>\n";
+			BaseException exception = (BaseException) driverExceptions.get(i);
+			htmlText +="<p text=\"#550080\">_________________________________________________________________________________________</p>";
+			htmlText += "<h3>"+PluginServices.getText(this,exception.getMessageKey())+"</h3>";
+			htmlText += "<p>"+exception.getMessage()+"</p>";
+			htmlText +="<p text=\"#550080\">_________________________________________________________________________________________</p>";
+		}
+
+		System.out.println(htmlText);
+		htmlPanel.show(htmlText);
+
+		PluginServices.getMDIManager().addCentredWindow(htmlPanel);
+
+	}
+
+	/**
+	 * HtmlInfoToolPanel that implements IWindow
+	 * @author azabala
+	 *
+	 */
+	class HtmlWindow extends JPanel implements IWindow {
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = 1151465547277478664L;
+		
+		private HTMLInfoToolPanel htmlPanel=new HTMLInfoToolPanel();
+		WindowInfo viewInfo = null;
+		public HtmlWindow(int width, int height, String windowTitle){
+			htmlPanel.setBackground(Color.white);
+			JScrollPane scrollPane=new JScrollPane(htmlPanel);
+			scrollPane.setPreferredSize(new Dimension(width-30,height-30));
+			this.add(scrollPane);
+			viewInfo = new WindowInfo(WindowInfo.MODELESSDIALOG);
+			viewInfo.setTitle(windowTitle);
+			viewInfo.setWidth(width);
+			viewInfo.setHeight(height);
+		}
+
+		public void show(String htmlText) {
+			htmlPanel.show(htmlText);
+		}
+
+		public WindowInfo getWindowInfo() {
+			return viewInfo;
+		}
+		public Object getWindowProfile() {
+			return WindowInfo.PROPERTIES_PROFILE;
+		}
+
+	}
+
+	public IProjection getProjection() {
+		return mapContext.getProjection();
+	}
+
+	public void setProjection (IProjection proj) {
+		mapContext.setProjection(proj);
+		mapOverViewContext.setProjection(proj);
+	}
+
+	public IProjection getOverViewProjection() {
+		return mapOverViewContext.getProjection();
+	}
+
+	public void afterRemove() {
+		// FIXME: Parece que no recorre correctamente el arbol de capas
+		
+		FLayers layers=this.getMapContext().getLayers();
+
+		for (int i = layers.getLayersCount()-1; i>=0; i--){
+        	try {
+                layers.getLayer(i).getParentLayer().removeLayer(layers.getLayer(i));
+			} catch (CancelationException e1) {
+    			e1.printStackTrace();
+    		}
+    	}
+		getMapContext().dispose();
+		getMapOverViewContext().dispose();
+	}
+
+	public void afterAdd() {
+		// Do nothing
+	}
+
+
+	public void setBackColor(Color c) {
+		getMapContext().getViewPort().setBackColor(c);
+	}
+
+	public void errorThrown(ErrorEvent e) {
+			JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
+					PluginServices.getText(this,"fallo_capas")+" : \n"+
+					e.getMessage());
+
+	}
+
+	public boolean isLocked() {
+		if(super.isLocked()) return true;
+		FLayers layers = getMapContext().getLayers();
+		for(int i=0; i<layers.getLayersCount(); i++){
+			FLayer layer = layers.getLayer(i);
+			if (layer.isEditing()){
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	public void saveToState(PersistentState state) throws PersistenceException {
+		super.saveToState(state);
+		state.set("mainMapContext", this.getMapContext());
+		if( this.getMapOverViewContext() != null ) {
+			state.set("useMapOverview", true);
+		} else {
+			state.set("useMapOverview", false);
+		}
+		state.set("overviewMapContext", this.getMapOverViewContext());
+	}
+	
+	public void loadFromState(PersistentState state) throws PersistenceException {
+		super.loadFromState(state);
+		this.mapContext = (MapContext) state.get("mainMapContext");
+		if( state.getBoolean("useMapOverview") ) {
+			this.mapOverViewContext = (MapContext) state.get("overviewMapContext");
+		} else {
+			this.mapOverViewContext = null;
+		}
+	}
+	
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/BaseViewDocument.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/MapOverview.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/MapOverview.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/MapOverview.java	(revision 38262)
@@ -0,0 +1,335 @@
+/*
+ * Created on 21-jun-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view;
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Line2D;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.app.project.documents.view.toolListeners.MapOverviewChangeZoomListener;
+import org.gvsig.app.project.documents.view.toolListeners.MapOverviewListener;
+import org.gvsig.app.project.documents.view.toolListeners.MapOverviewPanListener;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontext.events.ColorEvent;
+import org.gvsig.fmap.mapcontext.events.ExtentEvent;
+import org.gvsig.fmap.mapcontext.events.ProjectionEvent;
+import org.gvsig.fmap.mapcontext.events.listeners.ViewPortListener;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.Behavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.DraggerBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.PointBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.RectangleBehavior;
+
+
+
+/**
+ * <p>Lightweight <code>MapControl</code> that uses another <code>MapControl</code>'s <code>MapContext</code>, and updates
+ *  any rectangular extent selected, to the associated <code>MapControl</code>.</p>
+ *
+ * <p>Both <code>MapControl</code> instances work in the same projection. And, always, the not undefined <i>adjusted extent</i>
+ *  of the associated one, will be enhanced as a red-bordered grey-filled rectangle in this one. Furthermore, draws a horizontal and vertical
+ *  this component's width or height, black lines centered in that rectangle.</p>
+ *
+ * @author FJP
+ */
+public class MapOverview extends MapControl implements ViewPortListener {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -2849739771493279542L;
+
+	/**
+	 * <p>Associated <code>MapControl</code> instance that this component represents its overview.</p>
+	 */
+	private MapControl m_MapAssoc;
+
+	/**
+	 * <p>Determines that's the first time this component is going to be painted.</p>
+	 */
+	boolean first = true;
+
+	/**
+	 * <p>Tool listener used to apply a <i>zoom out</i> operation in this component graphical information.</p>
+	 */
+	private MapOverviewListener movl;
+
+	/**
+	 * <p>Tool listener used to allow user work with this component applying <i>pan</i> operations.</p>
+	 */
+	private MapOverviewPanListener movpl;
+
+	/**
+	 * <p>Tool listener used to allow user work with this component applying <i>pan</i> operations.</p>
+	 */
+	private MapOverviewChangeZoomListener movczl;
+
+	/**
+	 * <p>Rectangular area selected in this component, that will be the extent of the associated <code>MapControl</code> instance.</p>
+	 */
+	private Envelope extent;
+
+	/**
+	 * <p>Double buffer used to paint this component graphical information.</p>
+	 */
+	private BufferedImage image;
+
+	/**
+	 * <p>Creates a <code>MapOverview</code> instance associated to <code>mapAssoc</code>.</p>
+	 *
+	 * @param mapAssoc <code>MapControl</code> this component will be the overview
+	 */
+	public MapOverview(MapControl mapAssoc) {
+		super();
+		this.setName("MapOverview");
+		// super.vp.setBackColor(new Color(230,230,230));
+		m_MapAssoc = mapAssoc;
+
+		// setModel((FMap) m_MapAssoc.getMapContext().clone()); // Lo inicializamos con
+		// los mismos temas que tenga el grande.
+		movl = new MapOverviewListener(this);
+		movpl = new MapOverviewPanListener(this);
+		movczl = new MapOverviewChangeZoomListener(this);
+		addBehavior(
+				"zoomtopoint",
+				new Behavior[]{
+						new PointBehavior(movl),
+						new RectangleBehavior(movczl),
+						new DraggerBehavior(movczl),
+						new DraggerBehavior(movpl)
+				}
+		);
+
+//		setCursor(movl.getCursor());
+
+		setTool("zoomtopoint");
+		getGrid().setShowGrid(false);
+		getGrid().setAdjustGrid(false);
+	}
+
+	/**
+	 * @see MapControl#getMapContext()
+	 */
+	public MapContext getAssociatedMapContext() {
+		return m_MapAssoc.getMapContext();
+	}
+
+	/**
+	 * <p>Gets the <code>MapControl</code> instance that wrappers.</p>
+	 *
+	 * @return the <code>MapControl</code> instance that wrappers
+	 */
+	public MapControl getAssociatedMapControl(){
+		return m_MapAssoc;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.ViewPortListener#extentChanged(com.iver.cit.gvsig.fmap.ExtentEvent)
+	 */
+	public void extentChanged(ExtentEvent evExtent) {
+		// Nos llega el nuevo extent del FMap asociado, as� que dibujamos nuestro
+		// rect�ngulo para mostrar la zona de dibujo del otro mapa.
+		repaint();
+	}
+
+	/**
+	 * <p>If this had no extent, calls {@link #delModel() #delModel()}, otherwise recalculates this
+	 *  component's view port extent as the union of all extents of all layers of this map.</p>
+	 */
+	public void refreshExtent() {
+		try {
+		if (this.getMapContext().getFullEnvelope()!=null){
+				this.getMapContext().getViewPort().setEnvelope(this.getMapContext().getFullEnvelope());
+		}else{
+			delModel();
+		}
+		} catch (ReadException e1) {
+			e1.printStackTrace();
+		}
+	}
+
+	/**
+	 * <p>Repaints this component updating its <i>extent</i>.</p>
+	 *
+	 * @param r the new extent
+	 */
+	public void refreshOverView(Envelope r){
+		extent=r;
+		repaint();
+	}
+
+	/**
+	 * <p>Paints this component's graphical information using a 8-bit RGBA color double buffer, drawing a red-bordered
+	 *  grey-filled rectangle enhancing the extent selected, and a horizontal and vertical this component's width or
+	 *  height, black lines centered in that rectangle.</p>
+	 */
+	protected void paintComponent(Graphics g) {
+		getGrid().setShowGrid(false);
+		getGrid().setAdjustGrid(false);
+		super.paintComponent(g);
+		
+		if ((m_MapAssoc.getMapContext().getViewPort().getEnvelope() != null) &&
+					(getMapContext().getViewPort().getEnvelope() != null)) {
+				if (first) {
+					first = false;
+					repaint();
+					return;
+				}
+				image = new BufferedImage(this.getWidth(), this.getHeight(),
+		                    BufferedImage.TYPE_INT_ARGB);
+				ViewPort vp = getMapContext().getViewPort();
+				Envelope extentView=vp.getAdjustedEnvelope();
+				ViewPort vpOrig = m_MapAssoc.getMapContext().getViewPort();
+				if (extent==null) {
+					extent=vpOrig.getAdjustedEnvelope();
+				}
+				// Dibujamos el extent del mapa asociado.
+				Graphics2D g2 = (Graphics2D) image.getGraphics();
+				g2.setTransform(vp.getAffineTransform());
+
+				g2.setStroke(new BasicStroke((float) vp.getDist1pixel()));
+
+				g2.setColor(Color.red);
+				Rectangle2D extentToDraw=new Rectangle2D.Double(extent.getMinimum(0),extent.getMinimum(1),extent.getLength(0),extent.getLength(1));
+				g2.draw(extentToDraw);
+				g2.setColor(new Color(100,100,100,100));
+				g2.fill(extentToDraw);
+				// dibujamos las l�neas vertical y horizontal
+				Point2D pRightUp = vp.toMapPoint(getWidth(), 0);
+
+				Line2D.Double linVert = new Line2D.Double(extentToDraw.getCenterX(),
+						extentView.getMinimum(1), extentToDraw.getCenterX(),
+						pRightUp.getY());
+				Line2D.Double linHoriz = new Line2D.Double(extentView.getMinimum(0),
+						extentToDraw.getCenterY(), pRightUp.getX(),
+						extentToDraw.getCenterY());
+
+				g2.setColor(Color.darkGray);
+				g2.draw(linVert);
+				g2.draw(linHoriz);
+				g.drawImage(image,0,0,this);
+				g2.setTransform(new AffineTransform());
+				extent=null;
+			}
+
+	}
+
+	/**
+	 * <p>Sets a <code>MapContext</code> to this component, configuring it to manage view port events produced
+	 *  in the associated <code>MapControl</code> and this one's view port.</p>
+	 *
+	 * <p>This <code>MapContext</code>'s projection will be the same as the associated <code>MapControl</code>'s one.</p>
+	 *
+	 * <p>Setting the model includes the following steps:
+	 *  <ul>
+	 *   <li><b>1.-</b> set <code>model</code> as the <code>MapContext</code> of <code>this</code>.</li>
+	 *   <li><b>2.-</b> set as <code>model</code> projection, the associated <code>MapControl<code>'s projection.</li>
+	 *   <li><b>3.-</b> set <code>this</code> as <i>view port</i> listener of the associated <code>MapControl</code>'s <i>view port</i>.</li>
+	 *   <li><b>4.-</b> set <code>this</code> as <i>view port</i> listener of this <code>MapContext</code>'s <i>view port</i></li>
+	 *  </ul>
+	 * </p>
+	 *
+	 * @param model data to set
+	 */
+	public void setModel(MapContext model) {
+		this.setMapContext(model);
+		model.setProjection(m_MapAssoc.getMapContext().getProjection());
+		m_MapAssoc.getMapContext().getViewPort().addViewPortListener(this);
+		getMapContext().getViewPort().addViewPortListener(this);
+	}
+
+	/**
+	 * <p>Removes this component as listener of the the associated <code>MapControl</code> and this one's view port. Besides,
+     *  removes the extent.</p>
+	 */
+	private void delModel(){
+		this.getMapContext().getViewPort().setEnvelope(null);
+		m_MapAssoc.getMapContext().getViewPort().removeViewPortListener(this);
+		getMapContext().getViewPort().removeViewPortListener(this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.ViewPortListener#backColorChanged(com.iver.cit.gvsig.fmap.ColorEvent)
+	 */
+	public void backColorChanged(ColorEvent e) {
+		// do nothing
+	}
+
+	/**
+	 * @see ViewPortListener#projectionChanged(ProjectionEvent)
+	 *
+	 * @see MapControl#setProjection(IProjection)
+	 */
+	public void projectionChanged(ProjectionEvent e) {
+		super.setProjection(e.getNewProjection());
+
+	}
+
+	/**
+	 * <p>Unimplemented.</p>
+	 *
+	 * <p>Can't change the projection, because must be the same as the one of the
+	 *  associated <code>MapControl</code> instance.</p>
+	 */
+	public void setProjection(IProjection proj) {
+		//No permitimos cambiar la proyeccion
+		//ya que debe ser la misma que la del
+		//MapControl asociado
+		return;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/MapOverview.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelLocConfig.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelLocConfig.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelLocConfig.java	(revision 38262)
@@ -0,0 +1,433 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.plaf.basic.BasicArrowButton;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.extension.AddLayer;
+import org.gvsig.app.project.documents.view.MapOverview;
+import org.gvsig.app.project.documents.view.legend.gui.ThemeManagerWindow;
+import org.gvsig.fmap.mapcontext.layers.CancelationException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.operations.Classifiable;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+
+/**
+ * @author FJP
+ * 
+ *         TODO To change the template for this generated type comment go to
+ *         Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class FPanelLocConfig extends JPanel implements ActionListener, IWindow {
+
+    private static final long serialVersionUID = -3331364698732098356L;
+    private javax.swing.JLabel jLabel = null;
+    private javax.swing.JList jList = null; // @jve:decl-index=0:visual-constraint="390,10"
+    private JButton jBtnAddLayer = null; //
+    private JButton jBtnRemoveLayer = null;
+    private JButton jBtnEditLegend = null;
+    private JButton jBtnCancel = null;
+
+    private MapControl mapCtrl;
+    private WindowInfo m_viewinfo = null;
+    private JPanel pnlButtons = null; // @jve:decl-index=0:visual-constraint="10,159"
+    private BasicArrowButton jBtnUp;
+    private BasicArrowButton jBtnDown;
+
+    /**
+     * This is the default constructor
+     */
+    public FPanelLocConfig(MapControl mc) {
+        super();
+        mapCtrl = mc;
+        initialize();
+        refreshList();
+        updateControls(null);
+    }
+
+    private void refreshList() {
+        DefaultListModel lstModel = (DefaultListModel) getJList().getModel();
+        lstModel.clear();
+        for (int i = mapCtrl.getMapContext().getLayers().getLayersCount() - 1; i >= 0; i--) {
+            FLayer lyr = mapCtrl.getMapContext().getLayers().getLayer(i);
+            lstModel.addElement(lyr.getName());
+        }
+    }
+
+    /**
+     * This method initializes this
+     * 
+     * @return void
+     */
+    private void initialize() {
+        this.setLayout(null);
+        this.setSize(550, 200);
+        this.add(getJLabel(), null);
+        this.add(getJList(), null);
+        this.add(getJBtnUp(), null);
+        this.add(getJBtnDown(), null);
+        this.add(getJPanel(), null);
+    }
+
+    /**
+     * This method initializes jLabel
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabel() {
+        if (jLabel == null) {
+            jLabel = new javax.swing.JLabel();
+            jLabel.setText(PluginServices
+                .getText(this, "Capas_del_localizador") + ":");
+            jLabel.setBounds(10, 15, 132, 25);
+        }
+        return jLabel;
+    }
+
+    /**
+     * This method initializes jList
+     * 
+     * @return javax.swing.JList
+     */
+    public javax.swing.JList getJList() {
+        if (jList == null) {
+            jList = new javax.swing.JList(new DefaultListModel());
+            jList.setBounds(10, 49, 357, 139);
+            jList
+                .setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+            jList.setBorder(BorderFactory.createLineBorder(Color.BLACK));
+            jList
+                .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
+
+                    public void valueChanged(
+                        javax.swing.event.ListSelectionEvent e) {
+                        updateControls(e);
+                    }
+                });
+
+        }
+        return jList;
+    }
+
+    private void updateControls(javax.swing.event.ListSelectionEvent e) {
+        System.out.println("valueChanged()"); // TODO Auto-generated Event stub
+                                              // valueChanged()
+        DefaultListModel lstModel = (DefaultListModel) getJList().getModel();
+        int selIndex = jList.getSelectedIndex();
+        jBtnDown.setEnabled(false);
+        jBtnUp.setEnabled(false);
+
+        if (selIndex != -1) {
+            if (lstModel.getSize() > 1) {
+                if (selIndex < (lstModel.getSize() - 1)) {
+                    jBtnDown.setEnabled(true);
+                }
+
+                if (selIndex > 0) {
+                    jBtnUp.setEnabled(true);
+                }
+            }
+
+        }
+
+    }
+
+    /**
+     * This method initializes jBtnUp
+     * 
+     * @return JButton
+     */
+    private BasicArrowButton getJBtnUp() {
+        if (jBtnUp == null) {
+            jBtnUp =
+                new javax.swing.plaf.basic.BasicArrowButton(
+                    javax.swing.SwingConstants.NORTH);
+            jBtnUp.setBounds(374, 49, 25, 23);
+            jBtnUp.setToolTipText(PluginServices.getText(this, "Subir_capa"));
+            jBtnUp.addActionListener(this);
+            jBtnUp.setActionCommand("UP");
+
+        }
+        return jBtnUp;
+    }
+
+    /**
+     * This method initializes jBtnDown
+     * 
+     * @return JButton
+     */
+    private BasicArrowButton getJBtnDown() {
+        if (jBtnDown == null) {
+            jBtnDown =
+                new javax.swing.plaf.basic.BasicArrowButton(
+                    javax.swing.SwingConstants.SOUTH);
+            jBtnDown.setBounds(374, 164, 25, 23);
+            jBtnDown.setToolTipText(PluginServices.getText(this, "Bajar_capa"));
+            jBtnDown.setActionCommand("DOWN");
+            jBtnDown.addActionListener(this);
+        }
+        return jBtnDown;
+    }
+
+    /**
+     * This method initializes jButton2
+     * 
+     * @return JButton
+     */
+    private JButton getJBtnAddLayer() {
+        if (jBtnAddLayer == null) {
+            jBtnAddLayer =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            jBtnAddLayer.setText(PluginServices.getText(this, "Anadir_capa")
+                + "...");
+            jBtnAddLayer.addActionListener(this);
+            jBtnAddLayer.setActionCommand("ADD_LAYER");
+        }
+        return jBtnAddLayer;
+    }
+
+    /**
+     * This method initializes jBtnRemoveLayer
+     * 
+     * @return JButton
+     */
+    private JButton getJBtnRemoveLayer() {
+        if (jBtnRemoveLayer == null) {
+            jBtnRemoveLayer =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            jBtnRemoveLayer.setText(PluginServices.getText(this, "Quitar_capa")
+                + "...");
+            jBtnRemoveLayer.addActionListener(this);
+            jBtnRemoveLayer.setActionCommand("REMOVE_LAYER");
+
+        }
+        return jBtnRemoveLayer;
+    }
+
+    /**
+     * This method initializes jBtnEditLegend
+     * 
+     * @return JButton
+     */
+    private JButton getJBtnEditLegend() {
+        if (jBtnEditLegend == null) {
+            jBtnEditLegend =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            jBtnEditLegend.setText(PluginServices.getText(this,
+                "Editar_leyenda") + "...");
+            jBtnEditLegend.addActionListener(this);
+            jBtnEditLegend.setActionCommand("EDIT_LEGEND");
+        }
+        return jBtnEditLegend;
+    }
+
+    /**
+     * This method initializes jBtnCancel
+     * 
+     * @return JButton
+     */
+    private JButton getJBtnCancel() {
+        if (jBtnCancel == null) {
+            jBtnCancel =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            jBtnCancel.setText(PluginServices.getText(this, "Cerrar"));
+            jBtnCancel.setActionCommand("CANCEL");
+            jBtnCancel.addActionListener(this);
+
+        }
+        return jBtnCancel;
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        DefaultListModel lstModel = (DefaultListModel) getJList().getModel();
+        FLayers theLayers = mapCtrl.getMapContext().getLayers();
+
+        int numLayers = theLayers.getLayersCount() - 1;
+
+        if (e.getActionCommand() == "CANCEL") {
+            if (PluginServices.getMainFrame() != null) {
+                PluginServices.getMDIManager()
+                    .closeWindow(FPanelLocConfig.this);
+            } else {
+                ((JDialog) (getParent().getParent().getParent().getParent()))
+                    .dispose();
+            }
+        }
+        if (e.getActionCommand() == "ADD_LAYER") {
+            AddLayer addLayer =
+                (AddLayer) PluginServices.getExtension(AddLayer.class);// new
+                                                                       // AddLayer();
+            // addLayer.initialize();
+            if (addLayer.addLayers(mapCtrl)) {
+                refreshList();
+                updateControls(null);
+            }
+            if (mapCtrl instanceof MapOverview) {
+                ((MapOverview) mapCtrl).refreshExtent();
+            }
+
+        }
+        if (e.getActionCommand() == "REMOVE_LAYER") {
+            if (jList.getSelectedIndex() != -1) {
+                theLayers.removeLayer((String) lstModel.get(jList
+                    .getSelectedIndex()));
+                lstModel.remove(jList.getSelectedIndex());
+                // /mapCtrl.drawMap();
+                updateControls(null);
+                if (mapCtrl instanceof MapOverview) {
+                    ((MapOverview) mapCtrl).refreshExtent();
+                }
+            }
+        }
+        if (e.getActionCommand() == "EDIT_LEGEND") {
+            int idSelec = jList.getSelectedIndex();
+            if (idSelec != -1) {
+                FLayer lyr = theLayers.getLayer((String) lstModel.get(idSelec));
+                if (lyr instanceof Classifiable) {
+                    ThemeManagerWindow m_LegendEditor =
+                        new ThemeManagerWindow(lyr/* , mapCtrl.getMapContext() */);
+                    theLayers.setActive(false);
+                    lyr.setActive(true);
+                    if (PluginServices.getMainFrame() == null) {
+                        JDialog dlg = new JDialog();
+
+                        m_LegendEditor.setPreferredSize(m_LegendEditor
+                            .getSize());
+                        dlg.getContentPane().add(m_LegendEditor);
+                        dlg.setModal(true);
+                        dlg.pack();
+                        dlg.setVisible(true);
+
+                    } else {
+                        PluginServices.getMDIManager()
+                            .addWindow(m_LegendEditor);
+                    }
+                } else {
+                    JOptionPane.showMessageDialog(
+                        null,
+                        PluginServices.getText(this,
+                            "Solo_para_capas_vectoriales") + ".");
+                }
+
+            }
+
+        }
+        if (e.getActionCommand() == "UP") {
+            int idSelec = jList.getSelectedIndex();
+            int fromIndex = idSelec;
+            int toIndex = idSelec - 1;
+            FLayer aux = theLayers.getLayer((String) lstModel.get(fromIndex));
+            try {
+                theLayers.moveTo(numLayers - fromIndex, numLayers - toIndex);
+            } catch (CancelationException e1) {
+                e1.printStackTrace();
+            }
+
+            lstModel.remove(fromIndex);
+            lstModel.add(toIndex, aux.getName());
+
+            jList.setSelectedIndex(toIndex);
+        }
+        if (e.getActionCommand() == "DOWN") {
+            int idSelec = jList.getSelectedIndex();
+            int fromIndex = idSelec;
+            int toIndex = idSelec + 1;
+            FLayer aux = theLayers.getLayer((String) lstModel.get(fromIndex));
+            try {
+                theLayers.moveTo(numLayers - fromIndex, numLayers - toIndex);
+            } catch (CancelationException e1) {
+                e1.printStackTrace();
+            }
+
+            lstModel.remove(fromIndex);
+            lstModel.add(toIndex, aux.getName());
+
+            jList.setSelectedIndex(toIndex);
+        }
+
+    }
+
+    public WindowInfo getWindowInfo() {
+        if (m_viewinfo == null) {
+            m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
+            m_viewinfo.setTitle(PluginServices.getText(this,
+                "Configurar_localizador"));
+            m_viewinfo.setWidth(this.getWidth() + 8);
+            m_viewinfo.setHeight(this.getHeight() + 8);
+        }
+        return m_viewinfo;
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
+     */
+    public void viewActivated() {
+    }
+
+    /**
+     * This method initializes jPanel
+     * 
+     * @return javax.swing.JPanel
+     */
+    private JPanel getJPanel() {
+        if (pnlButtons == null) {
+            pnlButtons = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 5));
+            pnlButtons.setBounds(new java.awt.Rectangle(0, 200,
+                this.getWidth(), 37));
+            pnlButtons.add(getJBtnAddLayer(), null);
+            pnlButtons.add(getJBtnRemoveLayer(), null);
+            pnlButtons.add(getJBtnEditLegend(), null);
+            pnlButtons.add(getJBtnCancel(), null);
+        }
+        return pnlButtons;
+    }
+
+    /**
+     * Obtiene el MapControl asociado al localizador
+     * 
+     * @return MapControl
+     */
+    public MapControl getMapCtrl() {
+        return mapCtrl;
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.DIALOG_PROFILE;
+    }
+
+} // @jve:visual-info decl-index=0 visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelLocConfig.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/AbstractViewPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/AbstractViewPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/AbstractViewPanel.java	(revision 38262)
@@ -0,0 +1,308 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2009 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2004-2009 IVER TI
+ *   
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import java.awt.Graphics;
+import java.awt.image.BufferedImage;
+
+import javax.swing.JPanel;
+import javax.swing.JSplitPane;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiManager.IWindowTransform;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.project.documents.gui.WindowLayout;
+import org.gvsig.app.project.documents.view.MapOverview;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.toc.gui.TOC;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.utils.exceptionHandling.ExceptionListener;
+
+/**
+ * 
+ * @author 2005- Vicente Caballero
+ * @author 2009- Joaquin del Cerro
+ * 
+ */
+
+public abstract class AbstractViewPanel extends JPanel implements IView,
+    IWindowTransform {
+
+    private static final long serialVersionUID = -259620280790490262L;
+
+    private static final int DEFAULT_HEIGHT = 450;
+
+    private static final int DEFAULT_WIDTH = 700;
+
+    protected MapControl m_MapControl;
+    protected MapOverview m_MapLoc;
+
+    // store the properties of the window
+    protected WindowInfo m_viewInfo = null;
+    protected WindowLayout windowLayout = null;
+
+    protected TOC m_TOC;
+    protected ViewDocument modelo;
+    protected ViewExceptionListener mapControlExceptionListener =
+        new ViewExceptionListener();
+
+    protected boolean isPalette = false;
+    protected MapOverViewPalette movp;
+    protected ViewSplitPane tempMainSplit = null;
+    protected JSplitPane tempSplitToc = null;
+
+    public void windowActivated() {
+        // By default do nothing
+    }
+
+    public void toPalette() {
+        // By default do nothing
+    }
+
+    public void restore() {
+        // By default do nothing
+    }
+
+    protected class ViewSplitPane extends JSplitPane {
+
+        private static final long serialVersionUID = -7506953938664812652L;
+        private int lastDivider = 0;
+
+        public ViewSplitPane(int horizontal_split) {
+            super(horizontal_split);
+        }
+
+        protected void paintChildren(Graphics g) {
+            if (lastDivider != lastDividerLocation) {
+                System.out.println("paintChildren = "
+                    + this.lastDividerLocation);
+                lastDivider = lastDividerLocation;
+            }
+            super.paintChildren(g);
+        }
+
+    }
+
+    /**
+     * Creates a new View object. Before using it, it must be initialized
+     * using the <code>initialize()</code> method.
+     * 
+     * @see initialize()
+     */
+    public AbstractViewPanel() {
+        // Do nothing
+    }
+
+    /**
+     * Create the internal componentes and populate the window with them.
+     * If the layout properties were set using the
+     * <code>setWindowData(WindowData)</code> method, the window will be
+     * populated according to this
+     * properties.
+     */
+    protected void initialize() {
+        // Do nothing
+    }
+
+    /**
+     * This method is used to get <strong>an initial</strong> ViewInfo object
+     * for this View. It is not intended to retrieve the ViewInfo object in a
+     * later time. <strong>Use PluginServices.getMDIManager().getViewInfo(view)
+     * to retrieve the ViewInfo object at any time after the creation of the
+     * object.
+     * 
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+     */
+    public WindowInfo getWindowInfo() {
+        if (m_viewInfo == null) {
+            m_viewInfo =
+                new WindowInfo(WindowInfo.ICONIFIABLE | WindowInfo.RESIZABLE
+                    | WindowInfo.MAXIMIZABLE);
+
+            m_viewInfo.setWidth(DEFAULT_WIDTH);
+            m_viewInfo.setHeight(DEFAULT_HEIGHT);
+            m_viewInfo.setTitle(PluginServices.getText(this, "Vista") + ": "
+                + modelo.getName());
+        }
+        return m_viewInfo;
+    }
+
+    /**
+     * @see org.gvsig.andami.ui.mdiManager.IWindowListener#windowClosed()
+     */
+    public void windowClosed() {
+        if (movp != null) {
+            PluginServices.getMDIManager().closeWindow(movp);
+        }
+        if (modelo != null) {
+            modelo.setWindowLayout(this.getWindowLayout());
+        }
+    }
+
+    /**
+     * @deprecated See {@link #getViewDocument()}
+     */
+    public ViewDocument getModel() {
+        return modelo;
+    }
+
+    public ViewDocument getViewDocument() {
+        return modelo;
+    }
+
+    public MapOverview getMapOverview() {
+        return m_MapLoc;
+    }
+
+    public MapControl getMapControl() {
+        return m_MapControl;
+    }
+
+    public TOC getTOC() {
+        return m_TOC;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.mdiApp.ui.MDIManager.SingletonView#getModel()
+     */
+
+    public Object getWindowModel() {
+        return modelo;
+    }
+
+    /**
+     * This method is used to get <strong>an initial</strong> ViewInfo object
+     * for this View. It is not intended to retrieve the ViewInfo object in a
+     * later time. <strong>Use PluginServices.getMDIManager().getViewInfo(view)
+     * to retrieve the ViewInfo object at any time after the creation of the
+     * object.
+     * 
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+     */
+
+    public boolean isPalette() {
+        return isPalette;
+    }
+
+    public void repaintMap() {
+        m_MapControl.drawMap(false);
+    }
+
+    public class ViewExceptionListener implements ExceptionListener {
+
+        /**
+         * @see com.iver.cit.gvsig.fmap.ExceptionListener#exceptionThrown(java.lang.Throwable)
+         */
+        public void exceptionThrown(Throwable t) {
+            NotificationManager.addError(t.getMessage(), t);
+        }
+
+    }
+
+    /**
+     * @return
+     */
+    public BufferedImage getImage() {
+        return m_MapControl.getImage();
+    }
+
+    public void setProjection(IProjection proj) {
+        getMapControl().setProjection(proj);
+    }
+
+    public IProjection getProjection() {
+        return getMapControl().getProjection();
+    }
+
+    public WindowLayout getWindowLayout() {
+        if (windowLayout == null) {
+            windowLayout = new WindowLayout();
+        }
+        windowLayout.set("MainWindow.X", Integer.toString(this.getX()));
+        windowLayout.set("MainWindow.Y", Integer.toString(this.getY()));
+        windowLayout.set("MainWindow.Width", Integer.toString(this.getWidth()));
+        windowLayout.set("MainWindow.Height",
+            Integer.toString(this.getHeight()));
+
+        windowLayout.set("MainDivider.Location",
+            Integer.toString(tempMainSplit.getDividerLocation()));
+        windowLayout.set("MainDivider.X",
+            Integer.toString(tempMainSplit.getX()));
+        windowLayout.set("MainDivider.Y",
+            Integer.toString(tempMainSplit.getY()));
+        windowLayout.set("MainDivider.Width",
+            Integer.toString(tempMainSplit.getWidth()));
+        windowLayout.set("MainDivider.Height",
+            Integer.toString(tempMainSplit.getHeight()));
+
+        if (isPalette()) {
+            windowLayout.set("GraphicLocator.isPalette", "true");
+        } else {
+            windowLayout.set("GraphicLocator.isPalette", "false");
+            if (tempSplitToc != null) {
+                windowLayout.set("TOCDivider.Location",
+                    Integer.toString(tempSplitToc.getDividerLocation()));
+                windowLayout.set("TOCDivider.X",
+                    Integer.toString(tempSplitToc.getX()));
+                windowLayout.set("TOCDivider.Y",
+                    Integer.toString(tempSplitToc.getY()));
+                windowLayout.set("TOCDivider.Width",
+                    Integer.toString(tempSplitToc.getWidth()));
+                windowLayout.set("TOCDivider.Height",
+                    Integer.toString(tempSplitToc.getHeight()));
+            }
+        }
+        if (m_TOC != null) {
+            windowLayout.set("TOC.Width", Integer.toString(m_TOC.getWidth()));
+            windowLayout.set("TOC.Height", Integer.toString(m_TOC.getHeight()));
+        }
+        if (m_MapControl != null) {
+            windowLayout.set("MapControl.Width",
+                Integer.toString(m_MapControl.getWidth()));
+            windowLayout.set("MapControl.Height",
+                Integer.toString(m_MapControl.getHeight()));
+        }
+        if (m_MapLoc != null) {
+            windowLayout.set("GraphicLocator.Width",
+                Integer.toString(m_MapLoc.getWidth()));
+            windowLayout.set("GraphicLocator.Height",
+                Integer.toString(m_MapLoc.getHeight()));
+        }
+
+        return windowLayout;
+    }
+
+    public void setWindowLayout(WindowLayout data) {
+        windowLayout = data;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/AbstractViewPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelExtentSelector.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelExtentSelector.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelExtentSelector.java	(revision 38262)
@@ -0,0 +1,356 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.ListModel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.project.documents.view.ListSelectorListener;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+
+/**
+ * DOCUMENT ME!
+ * 
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class FPanelExtentSelector extends JPanel implements IWindow {
+
+    private static final long serialVersionUID = -8246729582621010542L;
+    private javax.swing.JScrollPane jScrollPane = null;
+    private javax.swing.JList lista = null;
+    private JButton btnAceptar = null;
+    private ListModel modelo = null;
+    private List<ListSelectorListener> selectionListeners =
+        new ArrayList<ListSelectorListener>();
+    private JButton btnEliminar = null;
+    private javax.swing.JPanel jPanel = null;
+    private javax.swing.JPanel jPanel1 = null;
+    private javax.swing.JLabel jLabel = null;
+    private javax.swing.JTextField txtGuardar = null;
+    private JButton btnGuardar = null;
+    private WindowInfo m_viewinfo = null;
+    private JPanel jPanel2 = null;
+    private JPanel jPanel3 = null;
+
+    /**
+     * This is the default constructor
+     */
+    public FPanelExtentSelector() {
+        super();
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        this.setLayout(new BorderLayout());
+        this.setSize(new java.awt.Dimension(530, 320));
+        this.add(getJPanel(), java.awt.BorderLayout.NORTH);
+        this.add(getJPanel1(), java.awt.BorderLayout.SOUTH);
+
+    }
+
+    /**
+     * This method initializes jScrollPane
+     * 
+     * @return javax.swing.JScrollPane
+     */
+    private javax.swing.JScrollPane getJScrollPane() {
+        if (jScrollPane == null) {
+            jScrollPane = new javax.swing.JScrollPane();
+            jScrollPane.setViewportView(getLista());
+            jScrollPane.setBounds(11, 26, 508, 150);
+            jScrollPane.setPreferredSize(new java.awt.Dimension(400, 150));
+        }
+
+        return jScrollPane;
+    }
+
+    /**
+     * This method initializes lista
+     * 
+     * @return javax.swing.JList
+     */
+    private javax.swing.JList getLista() {
+        if (lista == null) {
+            lista = new javax.swing.JList();
+        }
+
+        return lista;
+    }
+
+    /**
+     * Asigna el el array que se va a representar. Se crea una
+     * copia del modelo, de forma que modificaciones en el modelo
+     * fuera de esta clase ya no afectan al modelo copiado
+     * 
+     * @param model
+     *            DOCUMENT ME!
+     */
+    public void setModel(ListModel model) {
+        // modelo de la lista
+        modelo = model;
+        getLista().setModel(modelo);
+    }
+
+    public void addSelectionListener(ListSelectorListener listener) {
+        getSelectionListeners().add(listener);
+    }
+
+    public void removeSelectionListener(ListSelectorListener listener) {
+        getSelectionListeners().remove(listener);
+    }
+
+    private void callIndexesRemoved(int[] indices) {
+        for (int i = 0; i < selectionListeners.size(); i++) {
+            selectionListeners.get(i).indexesRemoved(indices);
+        }
+    }
+
+    private void callIndexesSelected(int[] indices) {
+        for (int i = 0; i < selectionListeners.size(); i++) {
+            selectionListeners.get(i).indexesSelected(indices);
+        }
+    }
+
+    private void callNewElement(String name) {
+        for (int i = 0; i < selectionListeners.size(); i++) {
+            selectionListeners.get(i).newElement(name);
+        }
+    }
+
+    /**
+     * This method initializes btnAceptar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnAceptar() {
+        if (btnAceptar == null) {
+            btnAceptar =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            btnAceptar.setText(PluginServices.getText(this, "Seleccionar"));
+            btnAceptar.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    int[] indices = lista.getSelectedIndices();
+
+                    if (indices.length != 0) {
+                        callIndexesSelected(indices);
+                    }
+                }
+            });
+        }
+
+        return btnAceptar;
+    }
+
+    /**
+     * @return
+     */
+    private List<ListSelectorListener> getSelectionListeners() {
+        return selectionListeners;
+    }
+
+    /**
+     * This method initializes btnEliminar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnEliminar() {
+        if (btnEliminar == null) {
+            btnEliminar =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            btnEliminar.setText(PluginServices.getText(this, "Eliminar"));
+            btnEliminar.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    int[] indices = lista.getSelectedIndices();
+
+                    if (indices.length != 0) {
+                        callIndexesRemoved(indices);
+                    }
+                }
+            });
+        }
+        return btnEliminar;
+    }
+
+    /**
+     * This method initializes jPanel
+     * 
+     * @return javax.swing.JPanel
+     */
+    private javax.swing.JPanel getJPanel() {
+        if (jPanel == null) {
+            jPanel = new javax.swing.JPanel();
+            jPanel.setLayout(null);
+
+            jPanel.add(getJLabel(), null);
+            jPanel.add(getTxtGuardar(), null);
+            jPanel.setPreferredSize(new java.awt.Dimension(530, 100));
+            jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
+                PluginServices.getText(this, "Guardar_el_zoom_actual"),
+                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+                javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
+            jPanel.add(getJPanel3(), null);
+        }
+        return jPanel;
+    }
+
+    /**
+     * This method initializes jPanel1
+     * 
+     * @return javax.swing.JPanel
+     */
+    private javax.swing.JPanel getJPanel1() {
+        if (jPanel1 == null) {
+            jPanel1 = new javax.swing.JPanel();
+            jPanel1.setLayout(null);
+            jPanel1.add(getJScrollPane(), null);
+            jPanel1.setPreferredSize(new java.awt.Dimension(530, 220));
+            jPanel1
+                .setBorder(javax.swing.BorderFactory.createTitledBorder(null,
+                    PluginServices.getText(this,
+                        "Recuperar_y_eliminar_otros_zoom"),
+                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null,
+                    null));
+            jPanel1.add(getJPanel2(), null);
+        }
+        return jPanel1;
+    }
+
+    /**
+     * This method initializes jLabel
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabel() {
+        if (jLabel == null) {
+            jLabel = new javax.swing.JLabel();
+            jLabel.setBounds(7, 35, 248, 16);
+            jLabel.setText(PluginServices.getText(this,
+                "Nombre_que_se_le_dara_al_zoom") + ":");
+        }
+        return jLabel;
+    }
+
+    /**
+     * This method initializes txtGuardar
+     * 
+     * @return javax.swing.JTextField
+     */
+    private javax.swing.JTextField getTxtGuardar() {
+        if (txtGuardar == null) {
+            txtGuardar = new javax.swing.JTextField();
+            txtGuardar.setBounds(250, 34, 269, 20);
+            txtGuardar.setPreferredSize(new java.awt.Dimension(330, 20));
+        }
+        return txtGuardar;
+    }
+
+    /**
+     * This method initializes btnGuardar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnGuardar() {
+        if (btnGuardar == null) {
+            btnGuardar =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+            btnGuardar.setText(PluginServices.getText(this, "Guardar"));
+            btnGuardar.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    String text = txtGuardar.getText().trim();
+                    if (text.length() > 0) {
+                        callNewElement(text);
+                    }
+                }
+            });
+        }
+        return btnGuardar;
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+     */
+    public WindowInfo getWindowInfo() {
+        if (m_viewinfo == null) {
+            m_viewinfo = new WindowInfo(WindowInfo.MODELESSDIALOG);
+            m_viewinfo.setWidth(this.getWidth() + 8);
+            m_viewinfo.setHeight(this.getHeight());
+            m_viewinfo.setTitle(PluginServices.getText(this, "Encuadre"));
+        }
+        return m_viewinfo;
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
+     */
+    public void viewActivated() {
+    }
+
+    /**
+     * This method initializes jPanel2
+     * 
+     * @return javax.swing.JPanel
+     */
+    private JPanel getJPanel2() {
+        if (jPanel2 == null) {
+            jPanel2 = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 5));
+            jPanel2.setBounds(new java.awt.Rectangle(11, 180, 508, 33));
+            jPanel2.add(getBtnAceptar(), null);
+            jPanel2.add(getBtnEliminar(), null);
+        }
+        return jPanel2;
+    }
+
+    /**
+     * This method initializes jPanel3
+     * 
+     * @return javax.swing.JPanel
+     */
+    private JPanel getJPanel3() {
+        if (jPanel3 == null) {
+            jPanel3 = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 5));
+            jPanel3.setBounds(new java.awt.Rectangle(8, 59, 511, 33));
+            jPanel3.add(getBtnGuardar(), null);
+        }
+        return jPanel3;
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.TOOL_PROFILE;
+    }
+
+} // @jve:decl-index=0:visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/FPanelExtentSelector.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/DefaultViewPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/DefaultViewPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/DefaultViewPanel.java	(revision 38262)
@@ -0,0 +1,584 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2004-2009 IVER TI
+ *   
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import javax.swing.JSplitPane;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiFrame.NewStatusBar;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.project.DefaultProject;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.view.MapOverview;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.toc.gui.TOC;
+import org.gvsig.app.project.documents.view.toolListeners.AreaListener;
+import org.gvsig.app.project.documents.view.toolListeners.InfoListener;
+import org.gvsig.app.project.documents.view.toolListeners.LinkListener;
+import org.gvsig.app.project.documents.view.toolListeners.MeasureListener;
+import org.gvsig.app.project.documents.view.toolListeners.PanListener;
+import org.gvsig.app.project.documents.view.toolListeners.PointSelectListener;
+import org.gvsig.app.project.documents.view.toolListeners.PolygonSelectListener;
+import org.gvsig.app.project.documents.view.toolListeners.RectangleSelectListener;
+import org.gvsig.app.project.documents.view.toolListeners.SelectImageListener;
+import org.gvsig.app.project.documents.view.toolListeners.StatusBarListener;
+import org.gvsig.app.project.documents.view.toolListeners.ZoomInListener;
+import org.gvsig.app.project.documents.view.toolListeners.ZoomOutListener;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.events.ColorEvent;
+import org.gvsig.fmap.mapcontext.events.ExtentEvent;
+import org.gvsig.fmap.mapcontext.events.ProjectionEvent;
+import org.gvsig.fmap.mapcontext.events.listeners.ViewPortListener;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.MapControlCreationException;
+import org.gvsig.fmap.mapcontrol.MapControlLocator;
+import org.gvsig.fmap.mapcontrol.MapControlManager;
+import org.gvsig.fmap.mapcontrol.tools.ZoomOutRightButtonListener;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.Behavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.MouseMovementBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.MouseWheelBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.MoveBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.PointBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.PolygonBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.PolylineBehavior;
+import org.gvsig.fmap.mapcontrol.tools.Behavior.RectangleBehavior;
+import org.gvsig.utils.console.JConsole;
+import org.gvsig.utils.console.JDockPanel;
+import org.gvsig.utils.console.ResponseListener;
+import org.gvsig.utils.console.jedit.JEditTextArea;
+
+/**
+ * <p>
+ * <b>Class View</b>. This class represents the gvSIG specific internal window
+ * where the maps are displayed and where the events coming from the user are
+ * captured.
+ * </p>
+ * <p>
+ * It is composed by three main visual areas:
+ * </p>
+ * <ol>
+ * <li>
+ * <b>Map control</b>: the map area located in the right area of the window. It
+ * takes up the biggest part of the window.</li>
+ * <li>
+ * <b>Table of contents (TOC)</b>: is a list of layers displayed in the view.
+ * The TOC is located on the left-top corner of the View and is the place where
+ * the user can modify the order, the legends, the visibility and other
+ * properties of the layers.</li>
+ * <li>
+ * <b>Map overview</b>: is a small MapControl located in the left-bottom corner
+ * of the View where the user can put some layers which summarizes the view. It
+ * is used to make the navigation easier and faster.</li>
+ * </ol>
+ * 
+ * @author 2005- Vicente Caballero
+ * @author 2009- Joaquin del Cerro
+ * 
+ */
+public class DefaultViewPanel extends AbstractViewPanel {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4044661458841786519L;
+
+	private JConsole console;
+	private JDockPanel dockConsole = null;
+	protected ResponseAdapter consoleResponseAdapter = new ResponseAdapter();
+	protected boolean isShowConsole = false;
+	private ViewPortListener viewPortListener;
+	private static MapControlManager mapControlManager = MapControlLocator
+			.getMapControlManager();
+
+	/**
+	 * Creates a new View object. Before being used, the object must be
+	 * initialized.
+	 * 
+	 * @see initialize()
+	 */
+	public DefaultViewPanel() {
+		super();
+		this.setName("View");
+		// TODO Remove this when the system lo load libraries is finished
+		if (mapControlManager == null) {
+			mapControlManager = MapControlLocator.getMapControlManager();
+		}
+	}
+
+	public DefaultViewPanel(Document document) {
+		this();
+		this.initialize();
+		this.setDocument(document);
+	}
+
+	/**
+     * Create the internal componentes and populate the window with them.
+     * If the layout properties were set using the
+	 * <code>setWindowData(WindowData)</code> method, the window will be
+	 * populated according to this properties.
+	 */
+	protected void initialize() {
+		super.initialize();
+		initComponents();
+		hideConsole();
+		getConsolePanel().addResponseListener(consoleResponseAdapter);
+	}
+
+	public void setDocument(Document document) {
+		setModel((ViewDocument) document);
+	}
+
+	public Document getDocument() {
+		return this.modelo;
+	}
+
+	public void setModel(ViewDocument model) {
+		this.modelo = model;
+		// Se registra como listener de cambios en FMap
+		MapContext fmap = modelo.getMapContext();
+
+		FLayers layers = fmap.getLayers();
+		for (int i = 0; i < layers.getLayersCount(); i++) {
+			if (layers.getLayer(i).isEditing()
+					&& layers.getLayer(i) instanceof FLyrVect) {
+				this.showConsole();
+			}
+		}
+
+		// Se configura el mapControl
+		m_MapControl.setMapContext(fmap);
+		m_TOC.setMapContext(fmap);
+		m_MapControl.getMapContext().getLayers().addLegendListener(m_TOC);
+
+		m_MapControl.setBackground(new Color(255, 255, 255));
+		if (modelo.getMapOverViewContext() != null) {
+			m_MapLoc.setModel(modelo.getMapOverViewContext());
+		}
+		model.addPropertyChangeListener(new PropertyChangeListener() {
+			public void propertyChange(PropertyChangeEvent evt) {
+				if (evt.getPropertyName().equals("name")) {
+					PluginServices.getMDIManager()
+							.getWindowInfo(DefaultViewPanel.this)
+                        .setTitle(
+                            PluginServices.getText(this, "Vista") + ": "
+                                + (String) evt.getNewValue());
+				}
+			}
+		});
+		if (m_MapControl.getViewPort() != null) {
+			viewPortListener = new ViewPortListener() {
+				public void extentChanged(ExtentEvent e) {
+					if (PluginServices.getMainFrame() != null) {
+						PluginServices
+								.getMainFrame()
+								.getStatusBar()
+								.setControlValue(
+										"scale",
+										String.valueOf(m_MapControl
+												.getMapContext().getScaleView()));
+						PluginServices
+								.getMainFrame()
+								.getStatusBar()
+								.setMessage(
+										"projection",
+										getMapControl().getViewPort()
+												.getProjection().getAbrev());
+					}
+				}
+
+				public void backColorChanged(ColorEvent e) {
+					// Do nothing
+				}
+
+				public void projectionChanged(ProjectionEvent e) {
+					m_MapLoc.setProjection(e.getNewProjection());
+				}
+			};
+			m_MapControl.getViewPort().addViewPortListener(viewPortListener);
+		}
+	}
+
+	public JConsole getConsolePanel() {
+		if (console == null) {
+			console = new JConsole();
+			// Para distinguir cuando se est� escribiendo sobre la consola y
+			// cuando no.
+			console.setJTextName("CADConsole");
+		}
+		return console;
+	}
+
+	private JDockPanel getDockConsole() {
+		if (dockConsole == null) {
+			dockConsole = new JDockPanel(getConsolePanel());
+		}
+		return dockConsole;
+	}
+
+	public void addConsoleListener(String prefix, ResponseListener listener) {
+		consoleResponseAdapter.putSpaceListener(prefix, listener);
+
+	}
+
+	public void removeConsoleListener(ResponseListener listener) {
+		consoleResponseAdapter.deleteListener(listener);
+
+	}
+
+	public void focusConsole(String text) {
+		getConsolePanel().addResponseText(text);
+
+		JEditTextArea jeta = getConsolePanel().getTxt();
+		jeta.requestFocusInWindow();
+		jeta.setCaretPosition(jeta.getText().length());
+
+	}
+
+	public void hideConsole() {
+		isShowConsole = false;
+		getDockConsole().setVisible(false);
+
+	}
+
+	public void showConsole() {
+		if (isShowConsole) {
+			return;
+		}
+		isShowConsole = true;
+		getMapControl().remove(getDockConsole());
+		getMapControl().setLayout(new BorderLayout());
+		getMapControl().add(getDockConsole(), BorderLayout.SOUTH);
+		getDockConsole().setVisible(true);
+
+	}
+
+	static class ResponseAdapter implements ResponseListener {
+
+        private HashMap<String, ResponseListener> spaceListener =
+            new HashMap<String, ResponseListener>();
+
+		public void putSpaceListener(String namespace, ResponseListener listener) {
+			spaceListener.put(namespace, listener);
+		}
+
+		public void acceptResponse(String response) {
+			boolean nameSpace = false;
+			int n = -1;
+			if (response != null) {
+				if ((n = response.indexOf(':')) != -1) {
+					nameSpace = true;
+				}
+			}
+
+			if (nameSpace) {
+                ResponseListener listener =
+                    spaceListener.get(response.substring(0, n));
+				if (listener != null) {
+					listener.acceptResponse(response.substring(n + 1));
+				}
+			} else {
+                Iterator<ResponseListener> i =
+                    spaceListener.values().iterator();
+				while (i.hasNext()) {
+					ResponseListener listener = i.next();
+					listener.acceptResponse(response);
+				}
+			}
+		}
+
+		/**
+		 * @param listener
+		 */
+		public void deleteListener(ResponseListener listener) {
+			Iterator<String> i = spaceListener.keySet().iterator();
+			while (i.hasNext()) {
+				String namespace = i.next();
+				ResponseListener l = spaceListener.get(namespace);
+				if (l == listener) {
+					spaceListener.remove(namespace);
+				}
+			}
+		}
+
+	}
+
+	protected void initComponents() { // GEN-BEGIN:initComponents
+		m_MapControl = new MapControl(); // Default is paintEnabled = false.
+											// Remember to activate it
+		try {
+			m_MapControl.setMapControlDrawer(mapControlManager
+					.createDefaultMapControlDrawer());
+		} catch (MapControlCreationException e) {
+			NotificationManager.addError(e);
+		}
+
+		m_MapControl.addExceptionListener(mapControlExceptionListener);
+		m_TOC = new TOC();
+
+		// Ponemos el localizador
+		m_MapLoc = new MapOverview(m_MapControl);
+		try {
+			m_MapLoc.setMapControlDrawer(mapControlManager
+					.createDefaultMapControlDrawer());
+		} catch (MapControlCreationException e) {
+			NotificationManager.addError(e);
+		}
+		removeAll();
+		tempMainSplit = new ViewSplitPane(JSplitPane.HORIZONTAL_SPLIT);
+
+		if (windowLayout == null) {
+			m_MapLoc.setPreferredSize(new Dimension(150, 200));
+			tempMainSplit.setPreferredSize(new Dimension(500, 300));
+		}
+
+		if (!isPalette()) {
+			tempSplitToc = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
+			tempSplitToc.setTopComponent(m_TOC);
+			tempSplitToc.setBottomComponent(m_MapLoc);
+			tempSplitToc.setResizeWeight(0.7);
+			tempMainSplit.setLeftComponent(tempSplitToc);
+		} else {
+			tempMainSplit.setLeftComponent(m_TOC);
+		}
+		m_TOC.setVisible(true);
+		tempMainSplit.setRightComponent(m_MapControl);
+		this.setLayout(new BorderLayout());
+		this.add(tempMainSplit, BorderLayout.CENTER);
+
+		if (windowLayout != null) {
+			try {
+				tempMainSplit.setDividerLocation(Integer.valueOf(
+						windowLayout.get("MainDivider.Location")).intValue());
+				if (windowLayout.get("TOCDivider.Location") != null) {
+                    tempSplitToc.setDividerLocation(Integer.valueOf(
+                        windowLayout.get("TOCDivider.Location")).intValue());
+				}
+			} catch (NumberFormatException ex) {
+				PluginServices.getLogger().error(
+						"Error restoring View properties");
+			}
+		}
+
+		// Listener de eventos de movimiento que pone las coordenadas del rat�n
+		// en la barra de estado
+		StatusBarListener sbl = new StatusBarListener(m_MapControl);
+
+		// Zoom out (pinchas y el mapa se centra y te muestra m�s).
+		// No es dibujando un rect�ngulo, es solo pinchando.
+
+		ZoomOutListener zol = new ZoomOutListener(m_MapControl);
+
+		m_MapControl.addBehavior("zoomOut", new Behavior[] {
+            new PointBehavior(zol), new MouseMovementBehavior(sbl) });
+
+		// pan
+
+		PanListener pl = new PanListener(m_MapControl);
+		m_MapControl.addBehavior("pan", new Behavior[] { new MoveBehavior(pl),
+            new MouseMovementBehavior(sbl) });
+
+		// Medir
+
+		MeasureListener mli = new MeasureListener(m_MapControl);
+		m_MapControl.addBehavior("medicion", new Behavior[] {
+            new PolylineBehavior(mli), new MouseMovementBehavior(sbl) });
+
+		// Area
+
+		AreaListener ali = new AreaListener(m_MapControl);
+		m_MapControl.addBehavior("area", new Behavior[] {
+            new PolygonBehavior(ali), new MouseMovementBehavior(sbl) });
+
+		// Seleccion por punto
+		PointSelectListener psl = new PointSelectListener(m_MapControl);
+		m_MapControl.addBehavior("pointSelection", new Behavior[] {
+            new PointBehavior(psl), new MouseMovementBehavior(sbl) });
+
+		// Info por punto
+		InfoListener il = new InfoListener(m_MapControl);
+		m_MapControl.addBehavior("info", new Behavior[] {
+            new PointBehavior(il), new MouseMovementBehavior(sbl) });
+
+		// Link por punto
+		LinkListener ll = new LinkListener(m_MapControl);
+		m_MapControl.addBehavior("link", new Behavior[] {
+            new PointBehavior(ll), new MouseMovementBehavior(sbl) });
+
+		// Selecci�n por rect�ngulo
+		RectangleSelectListener rsl = new RectangleSelectListener(m_MapControl);
+		m_MapControl.addBehavior("rectSelection", new Behavior[] {
+            new RectangleBehavior(rsl), new MouseMovementBehavior(sbl) });
+
+		// Selecci�n por pol�gono
+        PolygonSelectListener poligSel =
+            new PolygonSelectListener(m_MapControl);
+        m_MapControl.addBehavior("polSelection", new Behavior[] {
+            new PolygonBehavior(poligSel), new MouseMovementBehavior(sbl) });
+
+		// Zoom por rect�ngulo
+		ZoomOutRightButtonListener zoil =
+            new ZoomOutRightButtonListener(m_MapControl);
+		ZoomInListener zil = new ZoomInListener(m_MapControl);
+		m_MapControl.addBehavior("zoomIn", new Behavior[] {
+				new RectangleBehavior(zil), new PointBehavior(zoil),
+            new MouseMovementBehavior(sbl) });
+
+		SelectImageListener sil = new SelectImageListener(m_MapControl);
+		m_MapControl.addBehavior("selectImage", new Behavior[] {
+            new PointBehavior(sil), new MouseMovementBehavior(sbl) });
+
+		m_MapControl.setTool("zoomIn"); // Por defecto
+        m_MapControl.addCombinedBehavior(new MouseWheelBehavior());
+	}
+
+	public void windowActivated() {
+		NewStatusBar statusbar = PluginServices.getMainFrame().getStatusBar();
+		MapContext mapContext = this.getMapControl().getMapContext();
+
+		statusbar.setMessage("units",
+				PluginServices.getText(this, mapContext.getDistanceName()));
+		statusbar.setControlValue("scale",
+				String.valueOf(mapContext.getScaleView()));
+		IProjection proj = getMapControl().getViewPort().getProjection();
+		if (proj != null) {
+			statusbar.setMessage("projection", proj.getAbrev());
+		} else {
+			statusbar.setMessage("projection", "");
+		}
+	}
+
+	public void windowClosed() {
+		super.windowClosed();
+		if (viewPortListener != null) {
+			getMapControl().getViewPort().removeViewPortListener(
+					viewPortListener);
+		}
+		if (getMapOverview() != null) {
+			getMapOverview().getViewPort().removeViewPortListener(
+					getMapOverview());
+		}
+
+	}
+
+	public void toPalette() {
+		isPalette = true;
+		m_MapLoc.setPreferredSize(new Dimension(200, 150));
+		m_MapLoc.setSize(new Dimension(200, 150));
+		movp = new MapOverViewPalette(m_MapLoc, this);
+		PluginServices.getMDIManager().addWindow(movp);
+        FLayer[] layers =
+            getViewDocument().getMapContext().getLayers().getActives();
+		if (layers.length > 0 && layers[0] instanceof FLyrVect) {
+			if (((FLyrVect) layers[0]).isEditing()) {
+				showConsole();
+				return;
+			}
+		}
+		hideConsole();
+
+	}
+
+	public void restore() {
+		isPalette = false;
+		PluginServices.getMDIManager().closeWindow(movp);
+        FLayer[] layers =
+            getViewDocument().getMapContext().getLayers().getActives();
+		if (layers.length > 0 && layers[0] instanceof FLyrVect) {
+			if (((FLyrVect) layers[0]).isEditing()) {
+				showConsole();
+				return;
+			}
+		}
+		hideConsole();
+		JSplitPane tempSplitToc = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
+		tempSplitToc.setTopComponent(m_TOC);
+		tempSplitToc.setBottomComponent(m_MapLoc);
+		tempSplitToc.setResizeWeight(0.7);
+		tempMainSplit.setLeftComponent(tempSplitToc);
+	}
+
+	/**
+	 * Sets the default map overview background color that will be used in
+	 * subsequent projects.
+	 * 
+	 * @param color
+	 * @deprecated use instead
+	 *             Project.getPreferences().setDefaultMapoverViewBackColor
+	 */
+	public static void setDefaultMapOverViewBackColor(Color color) {
+		DefaultProject.getPreferences().setDefaultOverviewBackColor(color);
+	}
+
+	/**
+	 * Returns the current default map overview background color defined which
+	 * is the color defined when the user does not define any other one
+	 * 
+	 * @return java.awt.Color
+	 * @deprecated use instead
+	 *             Project.getPreferences().setDefaultMapoverViewBackColor
+	 */
+	public static Color getDefaultMapOverViewBackColor() {
+		return DefaultProject.getPreferences().getDefaultOverviewBackColor();
+	}
+
+	/**
+	 * Returns the current default view background color defined which is the
+	 * color defined when the user does not define any other one
+	 * 
+	 * @return java.awt.Color
+	 * @deprecated use instead Project.getPreferences().getDefaultViewBackColor
+	 */
+	public static Color getDefaultBackColor() {
+		return DefaultProject.getPreferences().getDefaultViewBackColor();
+	}
+
+	/**
+	 * @deprecated use instead Project.getPreferences().setDefaultViewBackColor
+	 */
+	public static void setDefaultBackColor(Color color) {
+		DefaultProject.getPreferences().setDefaultViewBackColor(color);
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.EDITOR_PROFILE;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/DefaultViewPanel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/IView.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/IView.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/IView.java	(revision 38262)
@@ -0,0 +1,37 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import org.gvsig.app.project.documents.gui.IDocumentWindow;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.toc.gui.TOC;
+import org.gvsig.fmap.mapcontrol.MapControl;
+
+public interface IView extends IDocumentWindow {
+
+    public MapControl getMapControl();
+
+    public TOC getTOC();
+
+    public ViewDocument getViewDocument();
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/IView.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/MapOverViewPalette.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/MapOverViewPalette.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/MapOverViewPalette.java	(revision 38262)
@@ -0,0 +1,88 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.IWindowTransform;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.project.documents.view.MapOverview;
+
+public class MapOverViewPalette extends JPanel implements IWindow,
+    IWindowTransform {
+
+    private static final long serialVersionUID = 3254895082290314502L;
+    private MapOverview mov;
+    private DefaultViewPanel view;
+
+    public MapOverViewPalette(MapOverview mapOverView, IView view) {
+        super();
+        mov = mapOverView;
+        this.view = (DefaultViewPanel) view;
+        initialize();
+        this.add(mov);
+    }
+
+    /**
+     * This method initializes this
+     * 
+     * @return void
+     */
+    private void initialize() {
+        this.setSize(300, 200);
+        this.setBackground(java.awt.SystemColor.control);
+        this.setBorder(javax.swing.BorderFactory.createLineBorder(
+            java.awt.Color.gray, 0));
+    }
+
+    public WindowInfo getWindowInfo() {
+        WindowInfo m_viewinfo =
+            new WindowInfo(WindowInfo.ICONIFIABLE | WindowInfo.MODELESSDIALOG
+                | WindowInfo.PALETTE);
+        m_viewinfo.setTitle(PluginServices.getText(this, "localizador"));
+        m_viewinfo.setWidth(mov.getWidth() + 20);
+        m_viewinfo.setHeight(mov.getHeight());
+
+        return m_viewinfo;
+    }
+
+    public void toPalette() {
+        view.toPalette();
+
+    }
+
+    public void restore() {
+        view.restore();
+
+    }
+
+    public boolean isPalette() {
+        return true;
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.TOOL_PROFILE;
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/MapOverViewPalette.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ExtentListSelectorModel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ExtentListSelectorModel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ExtentListSelectorModel.java	(revision 38262)
@@ -0,0 +1,80 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.ListModel;
+import javax.swing.event.ListDataEvent;
+import javax.swing.event.ListDataListener;
+
+import org.gvsig.app.project.Project;
+
+public class ExtentListSelectorModel implements ListModel,
+    PropertyChangeListener {
+
+    private Project project;
+    private List<ListDataListener> listeners =
+        new ArrayList<ListDataListener>();
+
+    public ExtentListSelectorModel(Project p) {
+        project = p;
+    }
+
+    public int getSize() {
+        return project.getExtents().length;
+    }
+
+    public Object getElementAt(int arg0) {
+        return project.getExtents()[arg0];
+    }
+
+    public void addListDataListener(ListDataListener arg0) {
+        listeners.add(arg0);
+    }
+
+    public void removeListDataListener(ListDataListener arg0) {
+        listeners.remove(arg0);
+    }
+
+    public void propertyChange(PropertyChangeEvent change) {
+        if (change.getPropertyName().equals("addExtent")) {
+            ListDataEvent event =
+                new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, 0,
+                    getSize());
+            for (int i = 0; i < listeners.size(); i++) {
+                listeners.get(i).intervalAdded(event);
+            }
+        } else {
+            ListDataEvent event =
+                new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, 0,
+                    getSize());
+            for (int i = 0; i < listeners.size(); i++) {
+                listeners.get(i).intervalRemoved(event);
+            }
+        }
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ExtentListSelectorModel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ViewProperties.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ViewProperties.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ViewProperties.java	(revision 38262)
@@ -0,0 +1,630 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.view.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionListener;
+import java.util.List;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JColorChooser;
+import javax.swing.JComboBox;
+import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.SingletonWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.gui.JComboBoxUnits;
+import org.gvsig.app.gui.panels.CRSSelectPanel;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.view.DefaultViewDocument;
+import org.gvsig.app.project.documents.view.ViewManager;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.gui.beans.AcceptCancelPanel;
+import org.gvsig.i18n.Messages;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+
+/**
+ * Dialogo donde se muestran las propiedades de una vista
+ * 
+ * @author Fernando Gonz�lez Cort�s
+ * @author gvSIG Team
+ */
+public class ViewProperties extends JPanel implements SingletonWindow {
+
+    private static final long serialVersionUID = 5328865370833315385L;
+    private javax.swing.JLabel jLabelName = null;
+    private javax.swing.JTextField txtName = null;
+    private javax.swing.JLabel jLabelDate = null;
+    private javax.swing.JTextField txtDate = null;
+    private javax.swing.JLabel jLabelOwner = null;
+    private javax.swing.JTextField txtOwner = null;
+    private javax.swing.JLabel jLabelMapUnits = null;
+    private javax.swing.JComboBox cmbMapUnits = null;
+    private javax.swing.JLabel jLabelDistanceUnits = null;
+    private javax.swing.JComboBox cmbDistanceUnits = null;
+    private javax.swing.JLabel jLabelAreaUnits = null;
+    private javax.swing.JTextArea txtComments = null;
+    private javax.swing.JLabel jLabelColor = null;
+    private javax.swing.JLabel jLabelComments = null;
+    private javax.swing.JLabel lblColor = null;
+
+    private Color backColor = null;
+
+    private JButton btnColor = null;
+    private DefaultViewDocument view = null;
+    private javax.swing.JScrollPane jScrollPane = null;
+    protected CRSSelectPanel jPanelProj = null;
+    private AcceptCancelPanel okCancelPanel = null;
+    private boolean isAcceppted = false;
+    private JComboBox cmbDistanceArea = null;
+
+    /**
+     * This is the default constructor
+     * 
+     * @param f
+     *            Frame padre del dialogo
+     * @param v
+     *            Vista que se representa
+     */
+    public ViewProperties(DefaultViewDocument v) {
+        view = v;
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        setLayout(new GridBagLayout());
+        setBorder(BorderFactory.createEmptyBorder(4, 5, 4, 5));
+
+        GridBagConstraints c = new GridBagConstraints();
+        c.insets = new Insets(2, 5, 2, 5);
+        c.gridy = -1;
+
+        addRow(c, getJLabelName(), getTxtName());
+        addRow(c, getJLabelDate(), getTxtDate());
+        addRow(c, getJLabelOwner(), getTxtOwner());
+        addRow(c, getJLabelMapUnits(), getCmbMapUnits());
+        addRow(c, getJLabelDistanceUnits(), getCmbDistanceUnits());
+        addRow(c, getJLabelAreaUnits(), getCmbDistanceArea());
+        addRow(c, getJLabelColor(), getJPanelColor());
+
+        c.anchor = GridBagConstraints.WEST;
+        c.weightx = 0.0d;
+        c.gridx = 0;
+        c.gridy++;
+        add(getJLabelColor(), c);
+
+        c.fill = GridBagConstraints.HORIZONTAL;
+        c.weightx = 1.0d;
+        c.gridx = 1;
+        add(getJPanelColor(), c);
+
+        c.anchor = GridBagConstraints.WEST;
+        c.weightx = 0.0d;
+        c.gridx = 0;
+        c.gridwidth = GridBagConstraints.REMAINDER;
+        c.gridy++;
+        c.weightx = 1.0d;
+        c.fill = GridBagConstraints.HORIZONTAL;
+        add(getJPanelProj(), c);
+
+        c.anchor = GridBagConstraints.WEST;
+        c.weightx = 0.0d;
+        c.gridx = 0;
+        c.gridy++;
+        add(getJLabelComments(), c);
+
+        c.fill = GridBagConstraints.BOTH;
+        c.weightx = 1.0d;
+        c.gridy++;
+        c.gridwidth = 2;
+        add(getJScrollPaneComments(), c);
+
+        c.anchor = GridBagConstraints.EAST;
+        c.gridx = 0;
+        c.gridwidth = 2;
+        c.gridy++;
+        c.weightx = 1.0d;
+
+        add(getOkCancelPanel(), c);
+    }
+
+    private JComponent getJPanelColor() {
+        JPanel colorPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+        colorPanel.add(getLblColor());
+        colorPanel.add(getBtnColor());
+
+        return colorPanel;
+    }
+
+    private void addRow(GridBagConstraints c, JComponent label, JComponent text) {
+        c.anchor = GridBagConstraints.WEST;
+        c.weightx = 0.0d;
+        c.gridx = 0;
+        c.gridy++;
+        add(label, c);
+
+        c.fill = GridBagConstraints.HORIZONTAL;
+        c.weightx = 1.0d;
+        c.gridx = 1;
+        add(text, c);
+    }
+
+    /**
+     * This method initializes jLabel
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelName() {
+        if (jLabelName == null) {
+            jLabelName =
+                new javax.swing.JLabel(Messages.getText("nombre") + ":");
+        }
+
+        return jLabelName;
+    }
+
+    /**
+     * This method initializes txtName
+     * 
+     * @return javax.swing.JTextField
+     */
+    private javax.swing.JTextField getTxtName() {
+        if (txtName == null) {
+            txtName = new javax.swing.JTextField(view.getName());
+        }
+
+        return txtName;
+    }
+
+    /**
+     * This method initializes jLabel1
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelDate() {
+        if (jLabelDate == null) {
+            jLabelDate =
+                new javax.swing.JLabel(Messages.getText("creation_date") + ":");
+        }
+
+        return jLabelDate;
+    }
+
+    /**
+     * This method initializes txtDate
+     * 
+     * @return javax.swing.JTextField
+     */
+    private javax.swing.JTextField getTxtDate() {
+        if (txtDate == null) {
+            txtDate = new javax.swing.JTextField(view.getCreationDate());
+            txtDate.setEditable(false);
+            txtDate.setBackground(java.awt.Color.white);
+        }
+
+        return txtDate;
+    }
+
+    /**
+     * This method initializes jLabel2
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelOwner() {
+        if (jLabelOwner == null) {
+            jLabelOwner =
+                new javax.swing.JLabel(Messages.getText("owner") + ":");
+        }
+
+        return jLabelOwner;
+    }
+
+    /**
+     * This method initializes txtOwner
+     * 
+     * @return javax.swing.JTextField
+     */
+    private javax.swing.JTextField getTxtOwner() {
+        if (txtOwner == null) {
+            txtOwner = new javax.swing.JTextField(view.getOwner());
+        }
+
+        return txtOwner;
+    }
+
+    /**
+     * This method initializes jLabel4
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelMapUnits() {
+        if (jLabelMapUnits == null) {
+            jLabelMapUnits =
+                new javax.swing.JLabel(Messages.getText("map_units") + ":");
+        }
+
+        return jLabelMapUnits;
+    }
+
+    /**
+     * This method initializes cmbMapUnits
+     * 
+     * @return javax.swing.JComboBox
+     */
+    private javax.swing.JComboBox getCmbMapUnits() {
+        if (cmbMapUnits == null
+            || MapContext.getDistanceNames().length > cmbMapUnits
+                .getItemCount()) {
+            cmbMapUnits = new JComboBoxUnits(false);
+
+            IProjection proj = view.getProjection();
+            if (!proj.isProjected()) {
+                cmbMapUnits.setSelectedItem(Messages.getText("Grados")); // deegree
+                cmbMapUnits.setEnabled(false);
+            } else {
+                if (!(cmbMapUnits.getItemCount() == MapContext
+                    .getDistanceNames().length)) {
+                    cmbMapUnits.removeItem(Messages.getText("Grados")); // deegree
+                    view.getMapContext().getViewPort().setMapUnits(1);
+                }
+                cmbMapUnits.setSelectedIndex(view.getMapContext().getViewPort()
+                    .getMapUnits());
+                cmbMapUnits.setEnabled(true);
+            }
+            cmbMapUnits.setSelectedIndex(view.getMapContext().getViewPort()
+                .getMapUnits());
+        }
+
+        return cmbMapUnits;
+    }
+
+    /**
+     * This method initializes jLabel5
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelDistanceUnits() {
+        if (jLabelDistanceUnits == null) {
+            jLabelDistanceUnits =
+                new javax.swing.JLabel(Messages.getText("distance_units") + ":");
+        }
+
+        return jLabelDistanceUnits;
+    }
+
+    /**
+     * This method initializes jLabel6
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelAreaUnits() {
+        if (jLabelAreaUnits == null) {
+            jLabelAreaUnits =
+                new javax.swing.JLabel(Messages.getText("unidades_area") + ":");
+        }
+
+        return jLabelAreaUnits;
+    }
+
+    /**
+     * This method initializes cmbDistanceUnits
+     * 
+     * @return javax.swing.JComboBox
+     */
+    private javax.swing.JComboBox getCmbDistanceUnits() {
+        if (cmbDistanceUnits == null
+            || MapContext.getDistanceNames().length > cmbDistanceUnits
+                .getItemCount()) {
+            cmbDistanceUnits = new JComboBoxUnits(false);
+            cmbDistanceUnits.setSelectedIndex(view.getMapContext()
+                .getViewPort().getDistanceUnits());
+        }
+
+        return cmbDistanceUnits;
+    }
+
+    /**
+     * This method initializes jLabel6
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelComments() {
+        if (jLabelComments == null) {
+            jLabelComments =
+                new javax.swing.JLabel(Messages.getText("comentarios") + ":");
+            jLabelComments
+                .setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
+            jLabelComments
+                .setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
+        }
+
+        return jLabelComments;
+    }
+
+    /**
+     * This method initializes txtComments
+     * 
+     * @return javax.swing.JTextArea
+     */
+    private javax.swing.JTextArea getTxtComments() {
+        if (txtComments == null) {
+            txtComments = new javax.swing.JTextArea(view.getComment());
+            txtComments.setRows(3);
+            txtComments.setColumns(20);
+        }
+
+        return txtComments;
+    }
+
+    /**
+     * This method initializes jLabel7
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getJLabelColor() {
+        if (jLabelColor == null) {
+            jLabelColor =
+                new javax.swing.JLabel(Messages.getText("background_color")
+                    + ":");
+        }
+
+        return jLabelColor;
+    }
+
+    /**
+     * This method initializes lblColor
+     * 
+     * @return javax.swing.JLabel
+     */
+    private javax.swing.JLabel getLblColor() {
+        if (lblColor == null) {
+            lblColor = new javax.swing.JLabel("");
+            lblColor.setPreferredSize(new java.awt.Dimension(30, 16));
+            Color theColor = view.getMapContext().getViewPort().getBackColor();
+            backColor = theColor;
+            if (theColor == null) {
+                theColor = Color.WHITE;
+            }
+            lblColor.setBackground(theColor);
+            lblColor.setOpaque(true);
+        }
+
+        return lblColor;
+    }
+
+    /**
+     * This method initializes btnColor
+     * 
+     * @return javax.swing.JButton
+     */
+    private JButton getBtnColor() {
+        if (btnColor == null) {
+            btnColor =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton();
+
+            btnColor.setText("...");
+
+            btnColor.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    Color ret =
+                        JColorChooser.showDialog(ViewProperties.this,
+                            Messages.getText("background_color"),
+                            lblColor.getBackground());
+
+                    if (ret != null) {
+                        lblColor.setBackground(ret);
+                        backColor = ret;
+                    } else {
+                        lblColor.setBackground(Color.WHITE);
+                    }
+                }
+            });
+        }
+
+        return btnColor;
+    }
+
+    /**
+     * This method initializes jScrollPane
+     * 
+     * @return javax.swing.JScrollPane
+     */
+    private javax.swing.JScrollPane getJScrollPaneComments() {
+        if (jScrollPane == null) {
+            jScrollPane = new javax.swing.JScrollPane();
+            jScrollPane.setViewportView(getTxtComments());
+            Dimension dim = getTxtComments().getPreferredSize();
+            jScrollPane
+                .setMinimumSize(new Dimension(dim.width, dim.height + 10));
+        }
+
+        return jScrollPane;
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+     */
+    public WindowInfo getWindowInfo() {
+        WindowInfo m_viewinfo = new WindowInfo();
+        this.validate();
+        m_viewinfo.setTitle(Messages.getText("propiedades_vista"));
+        Dimension dim = getPreferredSize();
+        m_viewinfo.setWidth(dim.width);
+        m_viewinfo.setHeight(dim.height
+            + getOkCancelPanel().getPreferredSize().height);
+        return m_viewinfo;
+    }
+
+    /**
+     * This method initializes jPanel4
+     * 
+     * @return javax.swing.JPanel
+     */
+    private CRSSelectPanel getJPanelProj() {
+        if (jPanelProj == null) {
+            IProjection proj = view.getProjection();
+            jPanelProj = CRSSelectPanel.getPanel(proj);
+        }
+        return jPanelProj;
+    }
+
+    /**
+     * @see org.gvsig.andami.ui.mdiManager.SingletonWindow#getWindowModel()
+     */
+    public Object getWindowModel() {
+        return view;
+    }
+
+    /**
+     * This method initializes okCancelPanel
+     * 
+     * @return javax.swing.JPanel
+     */
+    private AcceptCancelPanel getOkCancelPanel() {
+        if (okCancelPanel == null) {
+            ActionListener okAction, cancelAction;
+            okAction = new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    String name = txtName.getText();
+                    if (name == null || name.length() == 0) {
+                        return;
+                    }
+                    Project project =
+                        ProjectManager.getInstance().getCurrentProject();
+                    List<Document> views =
+                        project.getDocuments(ViewManager.TYPENAME);
+                    for (Document theView : views) {
+                        if (view.equals(theView)) {
+                            continue;
+                        }
+                        if (theView.getName().equals(name)) {
+                            JOptionPane.showMessageDialog(
+                                (Component) PluginServices.getMainFrame(),
+                                Messages.getText("elemento_ya_existe"));
+                            return;
+                        }
+                    }
+
+                    view.setName(name);
+                    view.setCreationDate(txtDate.getText());
+                    view.setOwner(txtOwner.getText());
+                    view.setComment(txtComments.getText());
+                    view.getMapContext().getViewPort()
+                        .setMapUnits(cmbMapUnits.getSelectedIndex());
+                    view.getMapContext().getViewPort()
+                        .setDistanceUnits(cmbDistanceUnits.getSelectedIndex());
+                    view.getMapContext().getViewPort()
+                        .setDistanceArea(cmbDistanceArea.getSelectedIndex());
+                    view.setBackColor(backColor);
+
+                    // Select the projection
+                    if (jPanelProj.isOkPressed()) {
+                        if (!jPanelProj.getCurProj().isProjected()) {
+                            getCmbMapUnits().setSelectedItem(
+                                Messages.getText("Grados"));
+                            getCmbMapUnits().setEnabled(false);
+                        } else {
+                            if (getCmbMapUnits().getSelectedItem().equals(
+                                Messages.getText("Grados"))) {
+                                getCmbMapUnits().setSelectedIndex(1);
+                            }
+                            getCmbMapUnits().setEnabled(true);
+                        }
+                        view.setProjection(jPanelProj.getCurProj());
+                    }
+
+                    isAcceppted = true;
+                    PluginServices.getMDIManager().closeWindow(
+                        ViewProperties.this);
+                }
+            };
+            cancelAction = new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    isAcceppted = false;
+                    PluginServices.getMDIManager().closeWindow(
+                        ViewProperties.this);
+                }
+            };
+            okCancelPanel = new AcceptCancelPanel(okAction, cancelAction);
+        }
+        return okCancelPanel;
+    }
+
+    public boolean isAcceppted() {
+        return isAcceppted;
+    }
+
+    /**
+     * This method initializes jComboBox
+     * 
+     * @return javax.swing.JComboBox
+     */
+    private JComboBox getCmbDistanceArea() {
+        String[] names = MapContext.getAreaNames();
+        if (cmbDistanceArea == null
+            || names.length > cmbDistanceArea.getItemCount()) {
+            for (int i = 0; i < names.length; i++) {
+                names[i] =
+                    Messages.getText(names[i]) + MapContext.getOfLinear(i);
+            }
+            cmbDistanceArea = new javax.swing.JComboBox(names);
+            cmbDistanceArea.setEditable(false);
+            cmbDistanceArea.setSelectedIndex(view.getMapContext().getViewPort()
+                .getDistanceArea());
+            cmbDistanceArea
+                .addActionListener(new java.awt.event.ActionListener() {
+
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        // view.getMapContext().getViewPort().setDistanceUnits(cmbDistanceUnits.getSelectedIndex());
+                    }
+                });
+        }
+
+        return cmbDistanceArea;
+
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.PROPERTIES_PROFILE;
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/gui/ViewProperties.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewManager.java	(revision 38262)
@@ -0,0 +1,207 @@
+package org.gvsig.app.project.documents.view;
+
+import javax.swing.ImageIcon;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.AbstractDocumentManager;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.actions.CopyDocumentAction;
+import org.gvsig.app.project.documents.actions.CutDocumentAction;
+import org.gvsig.app.project.documents.actions.PasteDocumentAction;
+import org.gvsig.app.project.documents.gui.IDocumentWindow;
+import org.gvsig.app.project.documents.gui.WindowLayout;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.app.project.documents.view.gui.ViewProperties;
+import org.gvsig.app.project.documents.view.legend.gui.SingleSymbol;
+import org.gvsig.app.project.documents.view.legend.gui.VectorialInterval;
+import org.gvsig.app.project.documents.view.legend.gui.VectorialUniqueValue;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+/**
+ * Factory of View.
+ *
+ * @author 2005-         Vicente Caballero
+ * @author 2009-         Joaquin del Cerro
+ * 
+ */
+public class ViewManager extends AbstractDocumentManager {
+    private static final Logger logger = LoggerFactory.getLogger(ViewManager.class);
+    
+    private static final String PERSISTENCE_VIEW_DOCUMENT_DEFINITION_NAME =
+        "DefaultViewDocument";
+    public static String TYPENAME = "project.document.view2d";
+    private DynStruct persistenceDefinition;
+    
+    public ViewManager() {
+    	// Do nothing
+    }
+    
+    public int getPriority() {
+        return 0;
+    }
+
+    public ImageIcon getIcon() {
+		return PluginServices.getIconTheme().get("document-view-icon");
+    }
+
+    public ImageIcon getIconSelected() {
+		return PluginServices.getIconTheme().get("document-view-icon-sel");
+    }
+
+    public String getTitle() {
+        return PluginServices.getText(this, "Vista");
+    }
+
+    public String getTypeName() {
+        return TYPENAME;
+    }
+    
+    public Class getMainWindowClass() {
+        return DefaultViewPanel.class;
+    }
+    
+    public AbstractDocument createDocument() {
+    	return new DefaultViewDocument(this);
+    }
+
+	public IWindow getMainWindow(Document doc, WindowLayout layout) {
+	    IDocumentWindow view;
+	    
+	    view = (IDocumentWindow) PluginServices.getMDIManager().getSingletonWindow(getMainWindowClass(), doc);
+	    if( view != null ) {
+	        // The view window document is already created, return it.
+	        return view;
+	    }
+	    view = this.createDocumentWindow(doc);
+		if ( layout != null && view != null ) {
+			view.setWindowLayout(layout);
+		}
+		((AbstractDocument) doc).raiseEventCreateWindow(view);
+		return view;
+	}
+
+	public IWindow getPropertiesWindow(Document doc) {
+		return new ViewProperties((DefaultViewDocument) doc);
+	}
+
+    /**
+     * Registers in the points of extension the Factory with alias.
+     *
+     */
+    public static void register() {
+        ViewManager factory = new ViewManager();
+    	ProjectManager.getInstance().registerDocumentFactory(factory);
+    	
+        PersistenceManager manager = ToolsLocator.getPersistenceManager();
+        manager.registerFactory(factory);
+
+
+        ProjectManager.getInstance().registerDocumentAction(TYPENAME,new CopyDocumentAction());
+        ProjectManager.getInstance().registerDocumentAction(TYPENAME,new CutDocumentAction());
+        ProjectManager.getInstance().registerDocumentAction(TYPENAME,new PasteDocumentAction());
+
+        PluginServices.getIconTheme().registerDefault(
+        		"document-view-icon",
+        		DefaultViewDocument.class.getClassLoader().getResource("images/Vista.png")
+        	);
+        PluginServices.getIconTheme().registerDefault(
+        		"document-view-icon-sel",
+        		DefaultViewDocument.class.getClassLoader().getResource("images/Vista_sel.png")
+        	);
+
+
+
+        PluginServices.getIconTheme().registerDefault(
+        		"cursor-query-distance",
+        		MapControl.class.getClassLoader().getResource("org/gvsig/fmap/mapcontrol/images/RulerCursor.gif")
+        	);
+
+        PluginServices.getIconTheme().registerDefault(
+        		"cursor-query-information",
+        		MapControl.class.getResource("org/gvsig/fmap/mapcontrol/images/InfoCursor.gif")
+        	);
+        PluginServices.getIconTheme().registerDefault(
+        		"cursor-hiperlink",
+        		MapControl.class.getResource("org/gvsig/fmap/mapcontrol/images/LinkCursor.gif")
+        	);
+        PluginServices.getIconTheme().registerDefault(
+        		"cursor-zoom-in",
+        		MapControl.class.getClassLoader().getResource("org/gvsig/fmap/mapcontrol/images/ZoomInCursor.gif")
+        	);
+        PluginServices.getIconTheme().registerDefault(
+        		"cursor-zoom-out",
+        		MapControl.class.getClassLoader().getResource("org/gvsig/fmap/mapcontrol/images/ZoomOutCursor.gif")
+        	);
+
+
+        PluginServices.getIconTheme().registerDefault(
+           		"single-symbol",
+           		SingleSymbol.class.getClassLoader().getResource("images/single-symbol.png")
+           	);
+        PluginServices.getIconTheme().registerDefault(
+           		"vectorial-interval",
+           		VectorialInterval.class.getClassLoader().getResource("images/Intervalos.png")
+           	);
+        PluginServices.getIconTheme().registerDefault(
+           		"vectorial-unique-value",
+           		VectorialUniqueValue.class.getClassLoader().getResource("images/ValoresUnicos.png")
+           	);
+        PluginServices.getIconTheme().registerDefault(
+           		"crux-cursor",
+           		MapControl.class.getClassLoader().getResource("org/gvsig/fmap/mapcontrol/images/CruxCursor.png")
+           	);
+
+        if (factory.persistenceDefinition == null){
+            factory.persistenceDefinition = manager.addDefinition(
+                ViewDocument.class,
+                PERSISTENCE_VIEW_DOCUMENT_DEFINITION_NAME,
+                "Default view document persistence definition",
+                null, 
+                null
+            );
+            factory.persistenceDefinition.extend(manager.getDefinition(AbstractDocument.PERSISTENCE_DEFINITION_NAME));
+
+            factory.persistenceDefinition.addDynFieldBoolean("useMapOverview").setMandatory(true);
+            factory.persistenceDefinition.addDynFieldObject("mainMapContext").setClassOfValue(MapContext.class).setMandatory(true);
+            factory.persistenceDefinition.addDynFieldObject("overviewMapContext").setClassOfValue(MapContext.class).setMandatory(false);
+
+        }
+
+
+    }
+
+    @SuppressWarnings("rawtypes")
+    public DynStruct getDefinition(String className) {
+
+        if( this.persistenceDefinition.getName().equalsIgnoreCase(className)) {
+            return this.persistenceDefinition;
+        }
+        if( this.persistenceDefinition.getFullName().equalsIgnoreCase(className)) {
+            return this.persistenceDefinition;
+        }
+        if( this.getDocumentClass().getName().equals(className) ) {
+            return this.persistenceDefinition;
+        }
+
+        return null;
+    }
+
+    @SuppressWarnings("rawtypes")
+    protected Class getDocumentClass() {
+        return DefaultViewDocument.class;
+    }
+
+    public boolean manages(Object object) {
+        return object instanceof ViewDocument;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/ViewManager.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemLeaf.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemLeaf.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemLeaf.java	(revision 38262)
@@ -0,0 +1,250 @@
+/*
+ * Created on 03-dic-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc;
+
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Rectangle;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.awt.geom.AffineTransform;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.view.IContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.actions.ChangeSymbolTocMenuEntry;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolDrawingException;
+
+
+/**
+ * @author FJP
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class TocItemLeaf implements ITocItem {
+
+	private ISymbol symbol;
+	private String description;
+	private int layerType;
+	private static int w_1symbol = 20;
+	private static int h_1symbol = 15;
+
+	private Dimension sz;
+	BufferedImage imgLegend = null;
+
+    final public static DataFlavor INFO_FLAVOR =
+	    new DataFlavor(TocItemLeaf.class, "ItemLeaf");
+
+	static DataFlavor flavors[] = {INFO_FLAVOR };
+
+
+	public TocItemLeaf(ISymbol symbol, String description, int layerType)
+	{
+		this.symbol = symbol;
+		this.description = description;
+		this.layerType = layerType;
+	}
+	public TocItemLeaf()
+	{
+
+	}
+	public void setImageLegend(Image imageLegend, String descrip, Dimension size)
+	{
+		this.description = descrip;
+		this.sz = size;
+		imgLegend = new BufferedImage(sz.width, sz.height, BufferedImage.TYPE_INT_ARGB);
+		Graphics2D g2 = imgLegend.createGraphics();
+		// Rectangle r = new Rectangle(sz.width, sz.height);
+		// TODO: Calcular ratio
+
+		double ratioImage =  (double) imageLegend.getWidth(null) / (double) imageLegend.getHeight(null);
+	    double ratioToc  = (double) sz.width / (double) sz.height;
+
+	    boolean resul = g2.drawImage(imageLegend, 0, 0, sz.width, sz.height, null);
+//		if (ratioImage > ratioToc) {
+//			int newHeight = (int) (sz.width / ratioImage);
+//			boolean resul = g2.drawImage(imageLegend, 0, 0, sz.width, newHeight, null);
+//		} else {
+//			int newWidth = (int) (sz.height * ratioImage);
+//			boolean resul = g2.drawImage(imageLegend, 0, 0, newWidth, sz.height, null);
+//		}
+
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#getLabel()
+	 */
+	public String getLabel() {
+		return description;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#getIcon()
+	 */
+	public Icon getIcon() {
+		// System.out.println("Dentro de getIcon: layerType=" + layerType);
+		if (imgLegend != null)
+		{
+//			Graphics2D g2 = imgLegend.createGraphics();
+//			g2.drawString("Prueba", 10, 20);
+			return new ImageIcon(imgLegend);
+		}
+
+		BufferedImage img = null;
+		Graphics2D g2 = null;
+		Rectangle r = null;
+
+		switch (layerType)
+		{
+			case Geometry.TYPES.POINT:
+			case Geometry.TYPES.CURVE:
+			case Geometry.TYPES.SURFACE:
+			case Geometry.TYPES.MULTICURVE:
+			case Geometry.TYPES.MULTISURFACE:
+			case Geometry.TYPES.MULTIPOINT:
+				img = new BufferedImage(w_1symbol, h_1symbol, BufferedImage.TYPE_INT_ARGB);
+				g2 = img.createGraphics();
+				r = new Rectangle(w_1symbol, h_1symbol);
+
+//				// TODO: CAMBIAR PARA QUE NO DEPENDA DE FSYMBOL
+//				if (symbol instanceof FSymbol)
+//					FGraphicUtilities.DrawSymbol(g2, AffineTransform.getScaleInstance(0.8,0.8), r, (FSymbol) symbol);
+//				// Por ahora, los que no sean FSymbol no se renderizan en el TOC.
+				break;
+			case Geometry.TYPES.GEOMETRY:
+				img = new BufferedImage(3*w_1symbol, h_1symbol, BufferedImage.TYPE_INT_ARGB);
+				g2 = img.createGraphics();
+				r = new Rectangle(3*w_1symbol, h_1symbol);
+//				if (symbol instanceof FSymbol)
+//					FGraphicUtilities.DrawSymbol(g2, AffineTransform.getScaleInstance(0.8,0.8), r, (FSymbol) symbol);
+				break;
+
+		}
+
+		if (g2 == null) {
+			return null;//TODO tipo de shape no soportado.
+		}
+		try {
+			symbol.drawInsideRectangle(g2, AffineTransform.getScaleInstance(1,1), r,null);
+		} catch (SymbolDrawingException e) {
+			if (e.getType() == SymbolDrawingException.UNSUPPORTED_SET_OF_SETTINGS) {
+				try {
+					MapContextLocator.getSymbolManager()
+							.getWarningSymbol(
+									SymbolDrawingException.STR_UNSUPPORTED_SET_OF_SETTINGS,
+									symbol.getDescription(),
+									SymbolDrawingException.UNSUPPORTED_SET_OF_SETTINGS)
+							.drawInsideRectangle(g2, g2.getTransform(),
+									r.getBounds(), null);
+				} catch (SymbolDrawingException e1) {
+					// IMPOSSIBLE TO REACH THIS
+				}
+			} else {
+				// should be unreachable code
+				throw new Error(PluginServices.getText(this, "symbol_shapetype_mismatch"));
+			}
+		}
+		return new ImageIcon(img);
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.datatransfer.Transferable#getTransferDataFlavors()
+	 */
+	public DataFlavor[] getTransferDataFlavors() {
+		return flavors;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.datatransfer.Transferable#isDataFlavorSupported(java.awt.datatransfer.DataFlavor)
+	 */
+	public boolean isDataFlavorSupported(DataFlavor dF) {
+		return dF.equals(INFO_FLAVOR);
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.datatransfer.Transferable#getTransferData(java.awt.datatransfer.DataFlavor)
+	 */
+	public Object getTransferData(DataFlavor dF) throws UnsupportedFlavorException, IOException {
+	    if (dF.equals(INFO_FLAVOR)) {
+	        return this;
+	      } else {
+			throw new UnsupportedFlavorException(dF);
+		}
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#getSize()
+	 */
+	public Dimension getSize() {
+		return sz;
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#setSize(java.awt.Dimension)
+	 */
+	public void setSize(Dimension sz) {
+		this.sz = sz;
+
+	}
+
+
+	/**
+	 * @return Returns the symbol.
+	 */
+	public ISymbol getSymbol() {
+		return symbol;
+	}
+	public IContextMenuAction getDoubleClickAction() {
+		return new ChangeSymbolTocMenuEntry();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemLeaf.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocMenuEntry.java	(revision 38262)
@@ -0,0 +1,108 @@
+/*
+ * Created on 20-dic-2004
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import org.gvsig.app.project.documents.view.toc.gui.FPopupMenu;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+/**
+ * @author Luis W. Sevilla (sevilla_lui@gva.es)�
+ * @deprecated
+ */
+public abstract class TocMenuEntry implements ActionListener {
+	private FPopupMenu menu;
+	//private Class [] layerTypes = null;
+	public TocMenuEntry() {
+	}
+
+	/**
+	 * Se utiliza para inicializar el menu. Dentro comprobar�
+	 * encima de qu� tipo de tocItem hemos pinchado, y se
+	 * mostrar� la opci�n de menu o no en funci�n de si
+	 * es un branch o un leaf, o incluso de alg�n otro
+	 * par�metro interno.
+	 * @param menu
+	 */
+	public void initialize(FPopupMenu m) {
+		menu = m;
+	}
+
+	/**
+	 * C�digo que se ejecuta cuando selecciona una opci�n
+	 * de menu. Recibe el tocItem sobre el que has pinchado.
+	 * @param tocItem
+	 */
+	public abstract void actionPerformed(ActionEvent e);
+
+	public FPopupMenu getMenu() { return menu; }
+
+	public MapContext getMapContext() {
+		return menu.getMapContext();
+	}
+	public Object getNodeUserObject() {
+		if (menu.getNode() == null) {
+			return null;
+		}
+		return menu.getNode().getUserObject();
+	}
+
+	public FLayer getNodeLayer() {
+		if (isTocItemBranch()) {
+			return ((TocItemBranch) getNodeUserObject()).getLayer();
+		}
+		return null;
+	}
+	public boolean isTocItemLeaf() {
+		return getNodeUserObject() instanceof TocItemLeaf;
+	}
+
+	public boolean isTocItemBranch() {
+		return getNodeUserObject() instanceof TocItemBranch;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocItem.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocItem.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocItem.java	(revision 38262)
@@ -0,0 +1,72 @@
+/*
+ * Created on 03-dic-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc;
+
+import java.awt.Dimension;
+import java.awt.datatransfer.Transferable;
+
+import javax.swing.Icon;
+
+import org.gvsig.app.project.documents.view.IContextMenuAction;
+
+
+/**
+ * @author FJP
+ * Siguiendo el Patr�n COMPOSITE: la rama ser� la capa (FLayer) y la
+ * hoja ser� el s�mbolo (FStyle2D)
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public interface ITocItem extends Transferable {
+	String getLabel();
+	Icon getIcon();
+	Dimension getSize();
+	void setSize(Dimension sz);
+	public IContextMenuAction getDoubleClickAction();
+	
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocItem.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/DnDJTree.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/DnDJTree.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/DnDJTree.java	(revision 38262)
@@ -0,0 +1,607 @@
+/*
+ * Created on 02-jun-2004
+ *
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc;
+/*
+**  This is version II of DnDJTree. The first version allowed for what I
+**  thought was a JDK oversight. However, we can set the cursor appropriately,
+**  relative to whether the current cursor location is a valid drop target.
+**
+**  If this is your first time reading the source code. Just ignore the above
+**  comment and ignore the "CHANGED" comments below. Otherwise, the
+**  "CHANGED" comments will show where the code has changed.
+**
+**  Credit for finding this shortcoming in my code goes Laurent Hubert.
+**  Thanks Laurent.
+**
+**  Rob. [ rkenworthy@hotmail.com ]
+*/
+
+
+import java.awt.Point;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.awt.dnd.DnDConstants;
+import java.awt.dnd.DragGestureEvent;
+import java.awt.dnd.DragGestureListener;
+import java.awt.dnd.DragGestureRecognizer;
+import java.awt.dnd.DragSource;
+import java.awt.dnd.DragSourceDragEvent;
+import java.awt.dnd.DragSourceDropEvent;
+import java.awt.dnd.DragSourceEvent;
+import java.awt.dnd.DragSourceListener;
+import java.awt.dnd.DropTarget;
+import java.awt.dnd.DropTargetDragEvent;
+import java.awt.dnd.DropTargetDropEvent;
+import java.awt.dnd.DropTargetEvent;
+import java.awt.dnd.DropTargetListener;
+import java.awt.dnd.MouseDragGestureRecognizer;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import javax.swing.JTree;
+import javax.swing.SwingUtilities;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.MutableTreeNode;
+import javax.swing.tree.TreeModel;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+
+
+public class DnDJTree extends JTree
+                  implements TreeSelectionListener,
+                  DragGestureListener, DropTargetListener,
+                  DragSourceListener {
+
+  protected ArrayList m_Listeners = new ArrayList();
+
+  private static DnDJTree oDnDtocOrigin = null;
+  private static DnDJTree oDnDtocDestination = null;
+  /** Stores the parent Frame of the component */
+  // private Frame Parent = null;
+
+  /** Stores the selected node info */
+  protected TreePath SelectedTreePath = null;
+  protected DefaultMutableTreeNode SelectedNode = null;
+
+  /** Variables needed for DnD */
+  private DragSource dragSource = null;
+  //private DragSourceContext dragSourceContext = null;
+  private DropTarget dropTarget;
+  //private ArrayList treeListeners=new ArrayList();
+  //private ArrayList dropListeners=new ArrayList();
+ // private TreeModel model1;
+  /** Constructor
+  @param root The root node of the tree
+  @param parent Parent JFrame of the JTree */
+  public DnDJTree(TreeModel treeModel) {
+    super(treeModel);
+    // Parent = parent;
+
+    //addTreeSelectionListener(this);
+
+		/* ********************** CHANGED ********************** */
+    dragSource = DragSource.getDefaultDragSource() ;
+		/* ****************** END OF CHANGE ******************** */
+
+    DragGestureRecognizer dgr =
+      dragSource.createDefaultDragGestureRecognizer(
+        this,                             //DragSource
+        DnDConstants.ACTION_COPY_OR_MOVE, //specifies valid actions
+        this                              //DragGestureListener
+      );
+
+
+    /* Eliminates right mouse clicks as valid actions - useful especially
+     * if you implement a JPopupMenu for the JTree
+     */
+    dgr.setSourceActions(dgr.getSourceActions() & ~InputEvent.BUTTON3_MASK);
+
+    /* First argument:  Component to associate the target with
+     * Second argument: DropTargetListener
+    */
+    //DropTarget dropTarget = new DropTarget(this, this);
+    setDropTarget();
+  }
+  public void invalidateListeners(){
+	  removeDropListener();
+	  removeTreeListener();
+  }
+  private void addDropListener(){
+	  dropTarget= new DropTarget(this, this);
+  }
+  private void removeDropListener(){
+	  dropTarget=null;
+  }
+  private void addTreeListener(){
+	  addTreeSelectionListener(this);
+  }
+  private void removeTreeListener(){
+	  removeTreeSelectionListener(this);
+  }
+  public void setDropTarget(){
+      // TODO: COMENTADO POR FJP
+	  /* com.iver.andami.ui.mdiManager.View[] views=PluginServices.getMDIManager().getAllViews();
+	  for(int i=0;i<views.length;i++){
+		  if (views[i] instanceof View){
+			 // model1=((View)views[i]).getTOC().getTree().getModel();
+			  ((View)views[i]).getTOC().getTree().removeTreeListener();
+			  ((View)views[i]).getTOC().getTree().addTreeListener();
+			  ((View)views[i]).getTOC().getTree().removeDropListener();
+			  ((View)views[i]).getTOC().getTree().addDropListener();
+		  } */
+		  addTreeListener();
+		  addDropListener();
+	  // }
+	 ////////// new DropTarget(this, this);
+  }
+  /** Returns The selected node */
+  public DefaultMutableTreeNode getSelectedNode() {
+    return SelectedNode;
+  }
+
+  ///////////////////////// Interface stuff ////////////////////
+
+
+  /** DragGestureListener interface method */
+  public void dragGestureRecognized(DragGestureEvent e) {
+	  if (((MouseEvent)((MouseDragGestureRecognizer)e.getSource()).getTriggerEvent()).getButton()==MouseEvent.BUTTON3){
+		  return;
+	  }
+    //Get the selected node
+    DefaultMutableTreeNode dragNode = getSelectedNode();
+    if (dragNode != null) {
+
+
+      if (!(dragNode.getUserObject() instanceof Transferable)) {
+		return;
+	}
+
+//    Get the Transferable Object
+      Transferable transferable = (Transferable) dragNode.getUserObject();
+
+			/* ********************** CHANGED ********************** */
+
+      //Select the appropriate cursor;
+      // Cursor cursor = DragSource.DefaultCopyNoDrop;
+      int action = e.getDragAction();
+      /* if (action == DnDConstants.ACTION_MOVE)
+        cursor = DragSource.DefaultMoveDrop; */
+
+
+      //In fact the cursor is set to NoDrop because once an action is rejected
+      // by a dropTarget, the dragSourceListener are no more invoked.
+      // Setting the cursor to no drop by default is so more logical, because
+      // when the drop is accepted by a component, then the cursor is changed by the
+      // dropActionChanged of the default DragSource.
+			/* ****************** END OF CHANGE ******************** */
+
+      //begin the drag
+      oDnDtocOrigin = this;
+      dragSource.startDrag(e, null, transferable, this);
+    }
+  }
+
+  /** DragSourceListener interface method */
+  public void dragDropEnd(DragSourceDropEvent dsde) {
+  }
+
+  /** DragSourceListener interface method */
+  public void dragEnter(DragSourceDragEvent dsde) {
+		/* ********************** CHANGED ********************** */
+      // System.err.println("dragOver" + dsde.getDragSourceContext().getComponent());
+
+		/* ****************** END OF CHANGE ******************** */
+  }
+
+  /** DragSourceListener interface method */
+  public void dragOver(DragSourceDragEvent dsde) {
+		/* ********************** CHANGED ********************** */
+      // System.err.println("dragOver" + dsde.getDragSourceContext().getComponent());
+		/* ****************** END OF CHANGE ******************** */
+  }
+
+  /** DragSourceListener interface method */
+  public void dropActionChanged(DragSourceDragEvent dsde) {
+  }
+
+  /** DragSourceListener interface method */
+  public void dragExit(DragSourceEvent dsde) {
+  }
+
+  /** DropTargetListener interface method - What we do when drag is released */
+  public void drop(DropTargetDropEvent e) {
+    try {
+      Transferable tr = e.getTransferable();
+      //flavor not supported, reject drop
+      if (!tr.isDataFlavorSupported( TocItemBranch.INFO_FLAVOR)) {
+		e.rejectDrop();
+	}
+      //cast into appropriate data type
+      TocItemBranch childInfo =
+        (TocItemBranch) tr.getTransferData( TocItemBranch.INFO_FLAVOR );
+      //get new parent node
+      Point loc = e.getLocation();
+      TreePath destinationPath = getPathForLocation(loc.x, loc.y);
+
+      final String msg = testDropTarget(destinationPath, SelectedTreePath);
+      if (msg != null) {
+          /* if (testSameComponent())
+          { */
+              e.rejectDrop();
+              SwingUtilities.invokeLater(new Runnable() {
+                  public void run() {
+                      System.err.println(msg);
+                  }
+              });
+              return;
+          /* }
+          else
+          {
+              // TODO: Por ahora solo dejamos mover, no copiar
+              // TODO: �Y qu� pasa si la vista a la que vamos
+              // no tiene la misma proyecci�n? MEJOR DESHABILITO ESTO POR AHORA
+              if (e.getDropAction() == DnDConstants.ACTION_MOVE)
+                  dropRoot(SelectedNode);
+              else
+                  e.rejectDrop();
+              return;
+          } */
+      }
+      if (!testSameComponent(e))
+      {
+          e.rejectDrop();
+          return;
+      }
+      int oldPos,newPos;
+	  //boolean isContainer=false;
+
+	  DefaultMutableTreeNode nodoTocado =
+        (DefaultMutableTreeNode) destinationPath.getLastPathComponent();
+	  //	get old parent node
+      DefaultMutableTreeNode oldParent = (DefaultMutableTreeNode) getSelectedNode().getParent();
+      if (nodoTocado.getParent().equals(getSelectedNode())){
+    	  return;
+      }
+      //oldParent.setUserObject(new TocItemBranch(((TocItemBranch)getSelectedNode().getUserObject()).getLayer().getParentLayer()));
+	  if (oldParent==null) {
+		return;
+	}
+      oldPos = oldParent.getIndex(getSelectedNode());
+	  // Para no tener en cuenta los nodos de s�mbolos:
+      if (!(nodoTocado.getUserObject() instanceof TocItemBranch)){
+      		nodoTocado = (DefaultMutableTreeNode) nodoTocado.getParent();
+      }
+
+      ///posActual = oldParent.getIndex(getSelectedNode());
+      //Destino
+	  DefaultMutableTreeNode destParent=null;
+
+	  if (((TocItemBranch)nodoTocado.getUserObject()).getLayer() instanceof FLayers){
+		  //isContainer=true;
+		  newPos=0;
+		  destParent=nodoTocado;
+      }else{//Si donde se deja la capa seleccionada no es un contenedor de capas.
+		destParent= (DefaultMutableTreeNode)nodoTocado.getParent();
+        newPos=destParent.getIndex(nodoTocado);
+      }
+
+
+
+
+      int action = e.getDropAction();
+      boolean copyAction = (action == DnDConstants.ACTION_COPY);
+
+      //make new child node
+      DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(childInfo);
+	  if (getSelectedNode().getAllowsChildren()){
+		  int childs=getSelectedNode().getChildCount();
+
+		  for (int i=0;i<childs;i++){
+			  newChild.add((MutableTreeNode)getSelectedNode().getChildAt(0));
+		  }
+	  }
+
+	  try {
+        if (!copyAction){
+        	oldParent.remove(getSelectedNode());
+            destParent.insert(newChild,newPos);
+            // newParent.add(newChild);
+        }
+        if (copyAction) {
+			e.acceptDrop (DnDConstants.ACTION_COPY);
+		} else {
+			e.acceptDrop (DnDConstants.ACTION_MOVE);
+		}
+      }
+      catch (java.lang.IllegalStateException ils) {
+        e.rejectDrop();
+      }
+
+      e.getDropTargetContext().dropComplete(true);
+
+      //expand nodes appropriately - this probably isnt the best way...
+
+      // TODO: COMENTADO POR FJP
+      /* com.iver.andami.ui.mdiManager.View[] views=PluginServices.getMDIManager().getAllViews();
+	  for(int i=0;i<views.length;i++){
+		  if (views[i] instanceof View){
+			  ((DefaultTreeModel)((View)views[i]).getTOC().getTree().getModel()).reload(oldParent);
+		  }
+	  } */
+
+
+
+     // ((DefaultTreeModel)model1).reload(oldParent);
+      DefaultTreeModel model = (DefaultTreeModel) getModel();
+
+	  model.reload(getSelectedNode().getRoot());
+	  FLayers lpo=null;
+	  FLayers lpd=null;
+
+	  if (oldParent.getUserObject() instanceof TocItemBranch){
+	  lpo=(FLayers)((TocItemBranch)oldParent.getUserObject()).getLayer();
+	  //lpd=(FLayers)((TocItemBranch)destParent.getUserObject()).getLayer();
+	  }/*else if (((TocItemBranch)nodoTocado.getUserObject()).getLayer().getParentLayer()!=null){
+		  lpo=((TocItemBranch)nodoTocado.getUserObject()).getLayer().getParentLayer();
+	  }*/else{
+		  lpo=((TocItemBranch)getSelectedNode().getUserObject()).getLayer().getParentLayer();
+	  }
+		  if (destParent.getUserObject() instanceof TocItemBranch){
+		  lpd=(FLayers)((TocItemBranch)destParent.getUserObject()).getLayer();
+		  }else{
+		  lpd=((TocItemBranch)nodoTocado.getUserObject()).getLayer().getParentLayer();
+		  }
+
+
+	  if (destParent.equals(oldParent)){
+		  callListeners(oldPos,newPos,lpd);
+	  }else{
+		  callListeners(lpo,lpd,((TocItemBranch)newChild.getUserObject()).getLayer());
+	  }
+	  }
+
+    catch (IOException io) { e.rejectDrop(); }
+    catch (UnsupportedFlavorException ufe) {e.rejectDrop();}
+  } //end of method
+public void dropRoot(TreeNode tn){
+	int oldPos,newPos;
+	DefaultMutableTreeNode nodoTocado =
+	        (DefaultMutableTreeNode) tn;
+		  //	get old parent node
+	    if (getSelectedNode()==null) {
+			return;
+		}
+		DefaultMutableTreeNode oldParent = (DefaultMutableTreeNode) getSelectedNode().getParent();
+		  if (oldParent!=null){
+	      oldPos = oldParent.getIndex(getSelectedNode());
+	      //Destino
+		  DefaultMutableTreeNode destParent=null;
+		  newPos=0;
+		  destParent=nodoTocado;
+
+	      //make new child node
+	      DefaultMutableTreeNode newChild = (DefaultMutableTreeNode)getSelectedNode().clone();
+	      oldParent.remove(getSelectedNode());
+	      destParent.insert(newChild,newPos);
+
+	      org.gvsig.andami.ui.mdiManager.IWindow[] views=PluginServices.getMDIManager().getAllWindows();
+		  for(int i=0;i<views.length;i++){
+			  if (views[i] instanceof DefaultViewPanel){
+				  ((DefaultTreeModel)((DefaultViewPanel)views[i]).getTOC().getTree().getModel()).reload(oldParent);
+			  }
+		  }
+	     // ((DefaultTreeModel)model1).reload(oldParent);
+	      DefaultTreeModel model = (DefaultTreeModel) getModel();
+		  model.reload(destParent);
+		  FLayers lpo=null;
+		  FLayers lpd=null;
+
+		  lpo=((TocItemBranch)getSelectedNode().getUserObject()).getLayer().getParentLayer();
+		  for(int i=0;i<views.length;i++){
+			  if (views[i] instanceof DefaultViewPanel){
+				  if (((DefaultViewPanel)views[i]).getTOC().getTree().equals(this)){
+					  lpd= ((DefaultViewPanel)views[i]).getMapControl().getMapContext().getLayers();
+				  }
+			  }
+		  }
+		  if (destParent.equals(oldParent)){
+			  callListeners(oldPos,newPos,lpd);
+		  }else{
+			  callListeners(lpo,lpd,((TocItemBranch)newChild.getUserObject()).getLayer());
+		  }
+		  }
+	}
+
+  /** DropTaregetListener interface method */
+  public void dragEnter(DropTargetDragEvent e) {
+  }
+
+  /** DropTaregetListener interface method */
+  public void dragExit(DropTargetEvent e) {
+  }
+
+  /** DropTaregetListener interface method */
+  public void dragOver(DropTargetDragEvent e) {
+		/* ********************** CHANGED ********************** */
+    //set cursor location. Needed in setCursor method
+    Point cursorLocationBis = e.getLocation();
+        TreePath destinationPath =
+      getPathForLocation(cursorLocationBis.x, cursorLocationBis.y);
+
+
+    // if destination path is okay accept drop...
+
+    if (testSameComponent(e))
+    {
+        String msg = testDropTarget(destinationPath, SelectedTreePath);
+        if ( msg == null) {
+            e.acceptDrag(DnDConstants.ACTION_MOVE) ;
+            return;
+        }
+
+    }
+    // ...otherwise reject drop
+    // else {
+        // System.err.println(e.getDropTargetContext().getComponent());
+
+        // if (testSameComponent(e))
+            e.rejectDrag() ;
+        /* else
+            e.acceptDrag(DnDConstants.ACTION_MOVE); */
+    // }
+		/* ****************** END OF CHANGE ******************** */
+  }
+
+  /** DropTaregetListener interface method */
+  public void dropActionChanged(DropTargetDragEvent e) {
+  }
+  private void setSelectedNode(DefaultMutableTreeNode smtn){
+	  if (smtn!=null) {
+		SelectedNode=smtn;
+	}
+  }
+
+  /** TreeSelectionListener - sets selected node */
+  public void valueChanged(TreeSelectionEvent evt) {
+    SelectedTreePath = evt.getNewLeadSelectionPath();
+    /* com.iver.andami.ui.mdiManager.View[] views=PluginServices.getMDIManager().getAllViews();
+	  for(int i=0;i<views.length;i++){
+		  if (views[i] instanceof View){
+			  if (SelectedTreePath == null) {
+				((View)views[i]).getTOC().getTree().setSelectedNode(null);
+			  }else{
+			   	((View)views[i]).getTOC().getTree().setSelectedNode((DefaultMutableTreeNode)SelectedTreePath.getLastPathComponent());
+			  }
+		  }
+	  } */
+	  if (SelectedTreePath == null){
+		  setSelectedNode(null);
+	  }else{
+		  setSelectedNode((DefaultMutableTreeNode)SelectedTreePath.getLastPathComponent());
+	  }
+  }
+
+  /** Convenience method to test whether drop location is valid
+  @param destination The destination path
+  @param dropper The path for the node to be dropped
+  @return null if no problems, otherwise an explanation
+  */
+  private String testDropTarget(TreePath destination, TreePath dropper) {
+    //Typical Tests for dropping
+
+    //Test 1.
+    boolean destinationPathIsNull = destination == null;
+    if (destinationPathIsNull) {
+		return "Invalid drop location.";
+	}
+
+    //Test 2.
+    DefaultMutableTreeNode node = (DefaultMutableTreeNode) destination.getLastPathComponent();
+    if ( !node.getAllowsChildren() ) {
+		return "This node does not allow children";
+	}
+
+    if (destination.equals(dropper)) {
+		return "Destination cannot be same as source";
+	}
+
+    //Test 3.
+    /* if ( dropper.isDescendant(destination))
+       return "Destination node cannot be a descendant.";
+
+    //Test 4.
+    if ( dropper.getParentPath().equals(destination))
+       return "Destination node cannot be a parent."; */
+
+    return null;
+  }
+
+  private boolean testSameComponent(DropTargetEvent e)
+  {
+      oDnDtocDestination = this;
+      return (oDnDtocOrigin == oDnDtocDestination);
+  }
+	/**
+	 * @param arg0
+	 * @return
+	 */
+	public boolean addOrderListener(ITocOrderListener arg0) {
+		return m_Listeners.add(arg0);
+	}
+	/**
+	 * @param arg0
+	 * @return
+	 */
+	public boolean removeOrderListener(ITocOrderListener arg0) {
+		return m_Listeners.remove(arg0);
+	}
+	private void callListeners(int oldPos, int newPos,FLayers lpd)
+	{
+		for (int i=0; i < m_Listeners.size(); i++)
+		{
+			ITocOrderListener listener = (ITocOrderListener) m_Listeners.get(i);
+			listener.orderChanged(oldPos, newPos,lpd);
+		}
+	}
+
+  private void callListeners(FLayers lpo,FLayers lpd,FLayer ls){
+	  for (int i=0; i < m_Listeners.size(); i++)
+		{
+			ITocOrderListener listener = (ITocOrderListener) m_Listeners.get(i);
+			listener.parentChanged(lpo,lpd,ls);
+		}
+  }
+
+} //end of DnDJTree

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/DnDJTree.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocOrderListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocOrderListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocOrderListener.java	(revision 38262)
@@ -0,0 +1,62 @@
+/*
+ * Created on 03-jun-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+
+
+/**
+ * @author fjp
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public interface ITocOrderListener {
+	void orderChanged(int oldPos, int newPos,FLayers lpd);
+	void parentChanged(FLayers lpo,FLayers lpd,FLayer ls);
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/ITocOrderListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ZoomAlTemaTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ZoomAlTemaTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ZoomAlTemaTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,182 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.6  2007-09-19 15:52:16  jaume
+ * ReadExpansionFileException removed from this context
+ *
+ * Revision 1.5  2007/03/06 16:37:08  caballero
+ * Exceptions
+ *
+ * Revision 1.4  2007/01/04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.3  2006/10/18 16:01:13  sbayarri
+ * Added zoomToExtent method to MapContext.
+ *
+ * Revision 1.2  2006/10/02 13:52:34  jaume
+ * organize impots
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+public class ZoomAlTemaTocMenuEntry extends AbstractTocContextMenuAction {
+	private static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
+	private static final Logger logger = LoggerFactory.getLogger(ZoomAlTemaTocMenuEntry.class);
+	
+	public String getGroup() {
+		return "group2"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 20;
+	}
+
+	public int getOrder() {
+		return 1;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "Zoom_a_la_capa");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return true;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item) && ! (selectedItems == null || selectedItems.length <= 0)) {
+			return true;
+		}
+		return false;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+
+
+		// 050209, jmorell: Para que haga un zoom a un grupo de capas seleccionadas.
+
+		if (selectedItems.length==1) {
+	        try {
+	        	if (!selectedItems[0].isAvailable()) {
+					return;
+				}
+	        	getMapContext().zoomToEnvelope(selectedItems[0].getFullEnvelope());
+			} catch (ReadException e1) {
+				e1.printStackTrace();
+			}
+		} else {
+			try {
+				Envelope maxExtent = setMaxExtent(selectedItems);
+				getMapContext().zoomToEnvelope(maxExtent);
+			} catch (ReadException e1) {
+				e1.printStackTrace();
+			}
+		}
+		Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+		project.setModified(true);
+	}
+
+	private Envelope setMaxExtent(FLayer[] actives)
+			throws ReadException {
+		Envelope extRef = null;
+			extRef = actives[0].getFullEnvelope();
+
+			double minXRef = extRef.getMinimum(0);
+			double maxYRef = extRef.getMaximum(1);
+			double maxXRef = extRef.getMaximum(0);
+			double minYRef = extRef.getMinimum(1);
+			for (int i = 0; i < actives.length; i++) {
+				if (actives[i].isAvailable()) {
+					Envelope extVar = actives[i].getFullEnvelope();
+					double minXVar = extVar.getMinimum(0);
+					double maxYVar = extVar.getMaximum(1);
+					double maxXVar = extVar.getMaximum(0);
+					double minYVar = extVar.getMinimum(1);
+					if (minXVar <= minXRef) {
+						minXRef = minXVar;
+					}
+					if (maxYVar >= maxYRef) {
+						maxYRef = maxYVar;
+					}
+					if (maxXVar >= maxXRef) {
+						maxXRef = maxXVar;
+					}
+					if (minYVar <= minYRef) {
+						minYRef = minYVar;
+					}
+					try {
+						extRef = geomManager.createEnvelope(minXRef, minYRef, maxXRef, maxYRef, SUBTYPES.GEOM2D);
+					} catch (CreateEnvelopeException e) {
+						logger.error("Error creating the envelope", e);
+					}
+				}
+			}
+		return extRef;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ZoomAlTemaTocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ShowLayerErrorsTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ShowLayerErrorsTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ShowLayerErrorsTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,115 @@
+/*
+ * Created on 20-sep-2006
+ *
+ * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+*
+* $Id$
+* $Log$
+* Revision 1.4  2007-03-06 16:37:08  caballero
+* Exceptions
+*
+* Revision 1.3  2007/02/20 15:52:17  caballero
+* no modified
+*
+* Revision 1.2  2007/01/04 07:24:31  caballero
+* isModified
+*
+* Revision 1.1  2006/09/21 18:26:13  azabala
+* first version in cvs
+*
+*
+*/
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+public class ShowLayerErrorsTocMenuEntry extends AbstractTocContextMenuAction{
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		FLayer layer = getNodeLayer(item);
+		String introductoryText = "<h2 text=\"#000080\">La capa "+
+								layer.getName()+
+								" presenta los siguientes errores</h2>";
+		((DefaultViewPanel)PluginServices.getMDIManager().getActiveWindow()).
+			getMapControl().
+			getMapContext().
+			reportDriverExceptions(introductoryText, layer.getErrors());
+//		Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+//		project.setModified(true);
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "ver_error_capa");
+	}
+
+	public String getGroup() {
+		return "group3"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 30;
+	}
+
+	public int getOrder() {
+		return 2;
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return !getNodeLayer(item).isOk();
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item)) {
+			return true;
+		}
+		return false;
+
+	}
+
+}
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ShowLayerErrorsTocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeSymbolTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeSymbolTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeSymbolTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,219 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.gui.styling.SymbolSelector;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.legend.gui.ISymbolSelector;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.TocItemLeaf;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.IClassifiedVectorLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.ISingleSymbolLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.impl.MultiLayerFillSymbol;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.3  2007-09-19 15:50:42  jaume
+ * refactor name IVectorialLegend -> IVectorLegend
+ *
+ * Revision 1.2  2007/09/17 09:22:21  jaume
+ * view draw frame rate now customizable
+ *
+ * Revision 1.1  2007/09/10 15:34:39  jaume
+ * improvements on usability (double-clicks on TOC and some minor shorcuts)
+ *
+ * Revision 1.5  2007/01/04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.4  2006/10/02 13:52:34  jaume
+ * organize impots
+ *
+ * Revision 1.3  2006/09/29 07:07:41  caballero
+ * llamada a listener
+ *
+ * Revision 1.2  2006/09/28 15:00:45  fjp
+ * Usar siempre que se pueda ISymbol en lugar de FSymbol
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+/**
+ * Directly opens the Symbol Selector if it is invoked from the TOC avoiding
+ * by-passing the Layer Properties window
+ */
+public class ChangeSymbolTocMenuEntry extends AbstractTocContextMenuAction {
+    private static final Logger logger = LoggerFactory
+            .getLogger(ChangeSymbolTocMenuEntry.class);
+
+	public String getGroup() {
+		return "group1"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 10;
+	}
+
+	public int getOrder() {
+		return 0;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "change_symbol");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return true;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		return isTocItemLeaf(item);
+	}
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+
+		boolean showDialog = isTocItemLeaf(item);
+
+		if (!showDialog) {
+			return;
+		}
+
+		try {
+			if(!(selectedItems[0] instanceof FLyrVect))
+				return;
+			FLyrVect layer = (FLyrVect) selectedItems[0];
+			ISymbol oldSymbol = ((TocItemLeaf) item).getSymbol();
+			// patch, figure out an ellegant way to solve this
+			if (oldSymbol instanceof MultiLayerFillSymbol) {
+				MultiLayerFillSymbol ms = (MultiLayerFillSymbol) oldSymbol;
+				for (int i = 0; i < ms.getLayerCount(); i++) {
+					if (ms.getLayer(i).getClass().getName().equals("org.gvsig.symbology.symbols.DotDensityFillSymbol")) {
+						/*
+						 * since dot density symbol works together with the
+						 * legend, there is no way to edit it from the symbol selector and editor
+						 * we have to break now!
+						 */
+						return;
+					}
+				}
+			}
+			// end patch
+
+
+			int shapeType = ((IVectorLegend) layer.getLegend()).getShapeType();
+			if (shapeType == 0) {
+				logger.debug("Error legend " + layer.getLegend()
+                        + " does not have shapetype initialized");
+				shapeType = layer.getShapeType();
+			}
+
+			ISymbolSelector symSel = null;
+
+			try {
+				symSel = SymbolSelector.createSymbolSelector(oldSymbol, shapeType);
+			} catch (IllegalArgumentException iaEx) {
+				/*
+				 * this usually happens when the Legend has a composed
+				 * symbol that collides with the normal operation and
+				 * it only can be changed from the panel of the legend
+				 */
+				// TODO throw a signal and show a warning message box telling
+				// that the operation cannot be performed
+				return;
+			}
+			PluginServices.getMDIManager().addWindow(symSel);
+			ISymbol newSymbol = (ISymbol) symSel.getSelectedObject();
+
+			if (newSymbol == null) {
+				return;
+			}
+
+			newSymbol.setDescription(oldSymbol.getDescription());
+
+			for (int i = 0; i < selectedItems.length; i++) {
+				FLyrVect theLayer = ((FLyrVect) selectedItems[i]);
+
+				try {
+					ILegend legend = theLayer.getLegend();
+					if (legend instanceof IClassifiedVectorLegend) {
+						IClassifiedVectorLegend cv = (IClassifiedVectorLegend) legend;
+						cv.replace(oldSymbol, newSymbol);
+					} else if (legend instanceof ISingleSymbolLegend) {
+						ISingleSymbolLegend ss = (ISingleSymbolLegend) legend;
+						ss.setDefaultSymbol(newSymbol);
+					}
+				} catch (Exception e) {
+					NotificationManager.addWarning(PluginServices.getText(this, "skipped_symbol_changed_for_layer")+": "+theLayer.getName(), e);
+				}
+
+			}
+		     // refresh view treak
+			MapContext mc = layer.getMapContext();
+			mc.invalidate();
+			Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+			project.setModified(true);
+			mc.callLegendChanged();
+
+		} catch (ReadException e) {
+			NotificationManager.addError(PluginServices.getText(this, "getting_shape_type"), e);
+		}
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeSymbolTocMenuEntry.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:executable
   + *
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CutLayersTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CutLayersTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CutLayersTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,96 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import java.awt.Component;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.utils.XMLEntity;
+
+
+public class CutLayersTocMenuEntry extends AbstractTocContextMenuAction {
+	private CopyPasteLayersUtiles utiles = CopyPasteLayersUtiles.getInstance();
+
+	public String getGroup() {
+		return "copyPasteLayer";
+	}
+
+	public int getGroupOrder() {
+		return 60;
+	}
+	public int getOrder() {
+		return 1;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "cortar");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		if ( selectedItems.length >= 1 && isTocItemBranch(item)){
+			for (int i=0;i< selectedItems.length;i++) {
+				if (selectedItems[i].isEditing()){
+					return false;
+				}
+			}
+			return true;
+		}
+		return false;
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		XMLEntity xml = this.utiles.generateXMLCopyLayers(selectedItems);
+		if (xml == null) {
+			JOptionPane.showMessageDialog(
+					(Component)PluginServices.getMainFrame(),
+					"<html>"+PluginServices.getText(this,"No_ha_sido_posible_realizar_la_operacion")+"</html>",//Mensaje
+					PluginServices.getText(this,"cortar"),//titulo
+					JOptionPane.ERROR_MESSAGE
+					);
+			return;
+		}
+
+		String data = xml.toString();
+		if (data == null) {
+			JOptionPane.showMessageDialog(
+					(Component)PluginServices.getMainFrame(),
+					"<html>"+PluginServices.getText(this,"No_ha_sido_posible_realizar_la_operacion")+"</html>",//Mensaje
+					PluginServices.getText(this,"cortar"),//titulo
+					JOptionPane.ERROR_MESSAGE
+					);
+			return;
+		}
+
+
+		PluginServices.putInClipboard(data);
+
+
+    	int option=JOptionPane.showConfirmDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"desea_borrar_la_capa"));
+    	if (option!=JOptionPane.OK_OPTION) {
+    		return;
+    	}
+		getMapContext().beginAtomicEvent();
+
+
+		boolean isOK =this.utiles.removeLayers(selectedItems);
+
+		getMapContext().endAtomicEvent();
+
+		if (isOK) {
+			getMapContext().invalidate();
+			Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+			project.setModified(true);
+			if (getMapContext().getLayers().getLayersCount()==0) {
+				PluginServices.getMainFrame().enableControls();
+			}
+		}
+
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CutLayersTocMenuEntry.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersGroupTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersGroupTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersGroupTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,167 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.gui.ChangeName;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.operations.LayerNotFoundInCollectionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.7  2007-06-19 08:42:17  jcampos
+ * New method to get new group layers
+ *
+ * Revision 1.6  2007/02/15 11:04:54  caballero
+ * cancelar agrupaci�n
+ *
+ * Revision 1.5  2007/02/14 17:09:43  caballero
+ * posici�n layerGroup
+ *
+ * Revision 1.4  2007/01/04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.3  2006/10/02 13:52:34  jaume
+ * organize impots
+ *
+ * Revision 1.2  2006/09/25 15:21:47  jmvivo
+ * * Modificada la condicion de visibilidad, no permitir si no tienen el mismo padre.
+ * * Modificada la implementacion.
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+/**
+ * Realiza una agrupaci�n de capas, a partir de las capas que se encuentren activas.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class LayersGroupTocMenuEntry extends AbstractTocContextMenuAction {
+	/**
+	 * Useful for debug the problems during the implementation.
+	 */
+	private static Logger logger = LoggerFactory.getLogger(LayersGroupTocMenuEntry.class);
+
+	public String getGroup() {
+		return "group4"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 40;
+	}
+
+	public int getOrder() {
+		return 0;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "agrupar_capas");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return selectedItems.length > 1;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		if (selectedItems.length < 2) {
+			return false;
+		}
+		FLayers parent = selectedItems[0].getParentLayer();
+		for (int i = 1; i < selectedItems.length;i++){
+			if (parent != selectedItems[i].getParentLayer()){
+				return false;
+			}
+		}
+		return true;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		//ITocItem tocItem = (ITocItem) getNodeUserObject();
+		ChangeName changename=new ChangeName(null);
+		PluginServices.getMDIManager().addWindow(changename);
+		if (!changename.isAccepted())
+			return;
+		String nombre=changename.getName();
+
+		if (nombre != null){
+
+			getMapContext().beginAtomicEvent();
+			FLayers parent = selectedItems[0].getParentLayer();
+			FLayers newGroup = getMapContext().getNewGroupLayer(parent);
+			newGroup.setName(nombre);
+			int pos=0;
+			for (int i=0;i<parent.getLayersCount();i++){
+				if (parent.getLayer(i).equals(selectedItems[0])){
+					pos=i;
+					continue;
+				}
+			}
+			for (int j=0;j < selectedItems.length;j++){
+				FLayer layer = selectedItems[j];
+				parent.move(layer, newGroup);
+			}
+			parent.addLayer(pos,newGroup);
+			newGroup.dispose();
+			getMapContext().endAtomicEvent();
+			// TRUCO PARA REFRESCAR.
+			getMapContext().invalidate();
+			Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+			project.setModified(true);
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersGroupTocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersUngroupTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersUngroupTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersUngroupTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,152 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.operations.LayerCollection;
+import org.gvsig.fmap.mapcontext.layers.operations.LayerNotFoundInCollectionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.6  2007-01-04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.5  2006/10/02 13:52:34  jaume
+ * organize impots
+ *
+ * Revision 1.4  2006/09/25 15:24:26  jmvivo
+ * * Modificada la implementacion.
+ *
+ * Revision 1.3  2006/09/20 12:01:24  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.2  2006/09/20 11:41:20  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+/**
+ * Realiza una desagrupaci�n de capas, a partir de las capas que se encuentren activas.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class LayersUngroupTocMenuEntry extends AbstractTocContextMenuAction {
+	/**
+	 * Useful for debug the problems during the implementation.
+	 */
+	private static Logger logger = LoggerFactory.getLogger(LayersUngroupTocMenuEntry.class);
+
+	public String getGroup() {
+		return "group4"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 40;
+	}
+
+	public int getOrder() {
+		return 1;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "desagrupar_capas");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return true;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		FLayer lyr = getNodeLayer(item);
+		if (!(lyr instanceof FLayers) || (lyr instanceof FLayers && lyr.getParentLayer() == null)){
+			return false;
+		}
+		return true;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item)){
+			FLayers agrupa = (FLayers)getNodeLayer(item);
+			FLayers parent=agrupa.getParentLayer();
+
+			if (parent!=null){
+				getMapContext().beginAtomicEvent();
+				try{
+					while (agrupa.getLayersCount() > 0){
+						FLayer layer = agrupa.getLayer(0);
+						agrupa.move(layer, parent, LayerCollection.BEFORE, agrupa);
+					}
+					parent.removeLayer(agrupa);
+				} catch (LayerNotFoundInCollectionException e) {
+					NotificationManager.addError(e);
+				}
+				getMapContext().endAtomicEvent();
+
+				// TRUCO PARA REFRESCAR.
+				getMapContext().invalidate();
+				Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+				project.setModified(true);
+
+			}
+		}
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/LayersUngroupTocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FLyrVectEditPropertiesTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FLyrVectEditPropertiesTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FLyrVectEditPropertiesTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,167 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import javax.swing.JDialog;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.legend.gui.ThemeManagerWindow;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.operations.ClassifiableVectorial;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.8  2007-09-19 15:51:33  jaume
+ * fixed bug when opening the layer properties dialog for more than one layer (two or more active layers selected)
+ *
+ * Revision 1.7  2007/07/30 12:56:04  jaume
+ * organize imports, java 5 code downgraded to 1.4 and added PictureFillSymbol
+ *
+ * Revision 1.6  2007/03/09 11:25:00  jaume
+ * Advanced symbology (start committing)
+ *
+ * Revision 1.4.2.3  2007/02/01 12:12:41  jaume
+ * theme manager window and all its components are now dynamic
+ *
+ * Revision 1.4.2.2  2007/01/30 18:10:10  jaume
+ * start commiting labeling stuff
+ *
+ * Revision 1.4.2.1  2007/01/26 13:49:03  jaume
+ * *** empty log message ***
+ *
+ * Revision 1.4  2007/01/23 13:10:45  caballero
+ * no mostrar propiedades de una capa de anotaciones
+ *
+ * Revision 1.3  2007/01/04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.2  2006/10/02 13:52:34  jaume
+ * organize impots
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+/**
+ * Muestra el men� de propiedades del tema.
+ *
+ * @author jmorell
+ */
+
+
+public class FLyrVectEditPropertiesTocMenuEntry extends AbstractTocContextMenuAction {
+	public String getGroup() {
+		return "group2"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 20;
+	}
+
+	public int getOrder() {
+		return 0;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "propiedades");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return selectedItems.length == 1;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item)) {
+			FLayer lyr = getNodeLayer(item);
+            if ((lyr instanceof ClassifiableVectorial)) {
+            	if (!((lyr instanceof FLyrVect) &&
+            			!((FLyrVect)lyr).isPropertiesMenuVisible())){
+            		return true;
+//            		if (!(lyr instanceof FLyrAnnotation))
+//            			return true;
+            	}
+
+            }
+		}
+		return false;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+//		long t1 = System.currentTimeMillis();
+
+		FLayer lyr = getNodeLayer(item);
+		ThemeManagerWindow fThemeManagerWindow = null;
+
+		if (lyr.isAvailable()) {
+			fThemeManagerWindow = new ThemeManagerWindow(lyr);
+		}
+
+		if (PluginServices.getMainFrame() == null) {
+			JDialog dlg = new JDialog();
+			fThemeManagerWindow.setPreferredSize(fThemeManagerWindow.getSize());
+			dlg.getContentPane().add(fThemeManagerWindow);
+			dlg.setModal(false);
+			dlg.pack();
+			dlg.setVisible(true);
+//			System.err.println("open properties dialog time: "+(System.currentTimeMillis()-t1));
+		} else {
+//			System.err.println("open properties dialog time: "+(System.currentTimeMillis()-t1));
+			PluginServices.getMDIManager().addWindow(fThemeManagerWindow);
+		}
+
+		Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+		project.setModified(true);
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FLyrVectEditPropertiesTocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FirstLayerTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FirstLayerTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FirstLayerTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,134 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.TocItemBranch;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.3  2007-01-04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.2  2006/10/02 13:52:34  jaume
+ * organize impots
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+/**
+ * Cambia la posici�n actual del layer a la primera posici�n.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class FirstLayerTocMenuEntry extends AbstractTocContextMenuAction {
+	public String getGroup() {
+		return "group4"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 40;
+	}
+
+	public int getOrder() {
+		return 2;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "colocar_delante");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return true;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item)){
+			return true;
+		}
+		return false;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+      	if (isTocItemBranch(item)){
+            if (getMapContext().getLayers().getActives().length == 1) {
+                FLayer layer=((TocItemBranch)item).getLayer();
+                FLayers layers=layer.getParentLayer();
+                for (int i=0;i<layers.getLayersCount();i++){
+                    if(layers.getLayer(i).equals(layer)){
+                    	layers.moveTo(layers.getLayersCount()-1-i, 0);
+                    }
+                }
+            } else if (selectedItems.length > 1) {
+                FLayer[] actives =selectedItems;
+                FLayers layers=actives[0].getParentLayer();
+                for (int i=0;i<actives.length;i++){
+                    for (int j=0;j<layers.getLayersCount();j++){
+                        if(layers.getLayer(j).equals(actives[i])){
+                        	layers.moveTo(layers.getLayersCount()-1-j, 0);
+                        }
+                    }
+                }
+            }
+		}
+		// TRUCO PARA REFRESCAR.
+        getMapContext().invalidate();
+        Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+		project.setModified(true);
+		PluginServices.getMainFrame().enableControls();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/FirstLayerTocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/EliminarCapaTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/EliminarCapaTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/EliminarCapaTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,180 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import java.awt.Component;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.CancelationException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.8  2007-08-29 10:52:01  nacho
+ * Bug en eliminar capa
+ *
+ * Revision 1.7  2007/08/29 10:44:00  nacho
+ * Comprobaci�n de null para que no salte la consola en caso de que la capa no est� seleccionada
+ *
+ * Revision 1.6  2007/08/21 11:47:26  nacho
+ * Cerrar cuadros asociados a la capa al eliminar esta
+ *
+ * Revision 1.5  2007/06/06 15:53:09  jmvivo
+ * Added check for edition layers: It cannot be removed
+ *
+ * Revision 1.4  2007/03/06 16:37:08  caballero
+ * Exceptions
+ *
+ * Revision 1.3  2007/01/04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.2  2006/12/19 09:09:07  jmvivo
+ * Faltaba un beginAtomicEvent para que no refrescase cada vez
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+public class EliminarCapaTocMenuEntry extends AbstractTocContextMenuAction {
+	public String getGroup() {
+		return "group3"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 30;
+	}
+
+	public int getOrder() {
+		return 0;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "eliminar_capa");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return true;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item)) {
+			return true;
+		}
+		return false;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+    	// 050209, jmorell: Para poder borrar todas las capas seleccionadas desde el FPopUpMenu.
+		//					Es necesario pulsar May�sculas a la vez que el bot�n derecho.
+
+    	FLayer[] actives = selectedItems;
+
+    	int i;
+    	for (i= 0; i < actives.length;i++){
+    		if (actives[i].isEditing() && actives[i].isAvailable()){
+    			JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), PluginServices.getText(this,"no_se_puede_borrar_una_capa_en_edicion"), PluginServices.getText(this, "eliminar_capa"), JOptionPane.WARNING_MESSAGE);
+    			return;
+    		}
+    	}
+
+    	int option=-1;
+    	if (actives.length>0) {
+    		option=JOptionPane.showConfirmDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"desea_borrar_la_capa"));
+    	} else {
+    		return;
+    	}
+    	if (option!=JOptionPane.OK_OPTION)
+    		return;
+    	getMapContext().beginAtomicEvent();
+    	for (i = actives.length-1; i>=0; i--){
+        	try {
+				//actives[i].getParentLayer().removeLayer(actives[i]);
+				//FLayers lyrs=getMapContext().getLayers();
+				//lyrs.addLayer(actives[i]);
+				actives[i].getParentLayer().removeLayer(actives[i]);
+
+                //Cierra todas las ventanas asociadas a la capa
+        		IWindow[] wList = PluginServices.getMDIManager().getAllWindows();
+        		for (int j = 0; j < wList.length; j++) {
+        			String name = wList[j].getWindowInfo().getAdditionalInfo();
+        			for (int k = 0; k < actives.length; k++) {
+        				if( name != null && actives != null && actives[k] != null &&
+                			actives[k].getName() != null &&
+                			name.compareTo(actives[k].getName()) == 0)
+                			PluginServices.getMDIManager().closeWindow(wList[j]);
+					}
+        		}
+
+    		} catch (CancelationException e1) {
+    			e1.printStackTrace();
+    		}
+    	}
+    	getMapContext().endAtomicEvent();
+    	Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+		project.setModified(true);
+    	PluginServices.getMainFrame().enableControls();
+		// 050209, jmorell: As� solo borra una capa (sobre la que pulsas).
+    	/*FLayer lyr = getNodeLayer();
+        try {
+        	getMapContext().getLayers().removeLayer(lyr);
+        	if (getMapContext().getLayers().getLayersCount()==0)PluginServices.getMainFrame().enableControls();
+		} catch (CancelationException e1) {
+			e1.printStackTrace();
+		}*/
+    }
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/EliminarCapaTocMenuEntry.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeNameTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeNameTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeNameTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,108 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.gui.ChangeName;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.2  2007-01-04 07:24:31  caballero
+ * isModified
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+/**
+ * Realiza un cambio de nombre en la capa seleccionada
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ChangeNameTocMenuEntry extends AbstractTocContextMenuAction {
+	public String getGroup() {
+		return "group1"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 10;
+	}
+
+	public int getOrder() {
+		return 1;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "cambio_nombre");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return selectedItems.length == 1;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		return isTocItemBranch(item);
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		FLayer lyr = getNodeLayer(item);
+		if (!lyr.isAvailable()) return;
+		ChangeName chn=new ChangeName(lyr.getName());
+		PluginServices.getMDIManager().addWindow(chn);
+		lyr.setName(chn.getName());
+		Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+		project.setModified(true);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ChangeNameTocMenuEntry.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyLayersTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyLayersTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyLayersTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,78 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import java.awt.Component;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.utils.XMLEntity;
+
+
+public class CopyLayersTocMenuEntry extends AbstractTocContextMenuAction {
+	private CopyPasteLayersUtiles utiles = CopyPasteLayersUtiles.getInstance();
+
+	public String getGroup() {
+		return "copyPasteLayer";
+	}
+
+	public int getGroupOrder() {
+		return 60;
+	}
+
+	public int getOrder() {
+		return 0;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "copiar");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		if ( selectedItems.length >= 1 && isTocItemBranch(item)){
+			for (int i=0;i< selectedItems.length;i++) {
+				if (selectedItems[i].isEditing()){
+					return false;
+				}
+			}
+			return true;
+		}
+		return false;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		XMLEntity xml = this.utiles.generateXMLCopyLayers(selectedItems);
+		if (xml == null) {
+			JOptionPane.showMessageDialog(
+					(Component)PluginServices.getMainFrame(),
+					"<html>"+PluginServices.getText(this,"No_ha_sido_posible_realizar_la_operacion")+"</html>",//Mensaje
+					PluginServices.getText(this,"copiar"),//titulo
+					JOptionPane.ERROR_MESSAGE
+					);
+			return;
+		}
+
+		String data = xml.toString();
+		if (data == null) {
+			JOptionPane.showMessageDialog(
+					(Component)PluginServices.getMainFrame(),
+					"<html>"+PluginServices.getText(this,"No_ha_sido_posible_realizar_la_operacion")+"</html>",//Mensaje
+					PluginServices.getText(this,"copiar"),//titulo
+					JOptionPane.ERROR_MESSAGE
+					);
+			return;
+		}
+
+		PluginServices.putInClipboard(data);
+		Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+		project.setModified(true);
+	}
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyLayersTocMenuEntry.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/PasteLayersTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/PasteLayersTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/PasteLayersTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,100 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.exolab.castor.xml.MarshalException;
+import org.exolab.castor.xml.ValidationException;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.utils.XMLEntity;
+
+
+public class PasteLayersTocMenuEntry extends AbstractTocContextMenuAction {
+	private XMLEntity xml=null;
+	private CopyPasteLayersUtiles utiles = CopyPasteLayersUtiles.getInstance();
+
+
+	public String getGroup() {
+		return "copyPasteLayer";
+	}
+
+	public int getGroupOrder() {
+		return 60;
+	}
+
+	public int getOrder() {
+		return 2;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "pegar");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item)) {
+			FLayer lyr = getNodeLayer(item);
+			if (lyr instanceof FLayers) {
+				this.xml = this.getCheckedXMLFromClipboard();
+				return true;
+			}
+
+		} else if (!isTocItemLeaf(item)) {
+			if (getNodeLayer(item) == null) {
+				this.xml = this.getCheckedXMLFromClipboard();
+				return this.xml != null;
+			}
+		}
+		return false;
+	}
+
+	private XMLEntity getCheckedXMLFromClipboard() {
+		String sourceString = PluginServices.getFromClipboard();
+		if (sourceString == null) return null;
+
+		XMLEntity xml;
+		try {
+			xml = XMLEntity.parse(sourceString);
+		} catch (MarshalException e) {
+			return null;
+		} catch (ValidationException e) {
+			return null;
+		}
+
+
+		if (!this.utiles.checkXMLRootNode(xml)) return null;
+
+		if (xml.findChildren("type","layers") == null) return null;
+
+		return  xml;
+	}
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		FLayers root;
+
+		if (this.xml == null) return;
+
+		if (isTocItemBranch(item)) {
+			root = (FLayers)getNodeLayer(item);
+		} else if (getNodeLayer(item) == null){
+			root = getMapContext().getLayers();
+		} else {
+			return;
+		}
+		getMapContext().beginAtomicEvent();
+
+		boolean isOK = this.utiles.loadLayersFromXML(this.xml,root);
+
+		getMapContext().endAtomicEvent();
+
+		if (isOK) {
+			getMapContext().invalidate();
+			Project project=((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+			project.setModified(true);
+		}
+	}
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/PasteLayersTocMenuEntry.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/DelegatedTocContextMenuAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/DelegatedTocContextMenuAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/DelegatedTocContextMenuAction.java	(revision 38262)
@@ -0,0 +1,58 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+/**
+ * Clase abstract para facilitar sobreescribir una accion sobre el TOC.
+ *
+ * @author Joaquin del Cerro
+ */
+public abstract class DelegatedTocContextMenuAction extends AbstractTocContextMenuAction {
+
+	private AbstractTocContextMenuAction delegated = null; 
+	
+	public DelegatedTocContextMenuAction(AbstractTocContextMenuAction delegated) {
+		this.delegated = delegated;
+	}
+	
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		delegated.execute(item,selectedItems);
+	}
+
+	public String getText() {
+		return delegated.getText();
+	}
+	public String getGroup() {
+		return delegated.getGroup();
+	}
+
+	public int getGroupOrder() {
+		return delegated.getGroupOrder();
+	}
+
+	public int getOrder() {
+		return delegated.getOrder();
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return delegated.isEnabled(item, selectedItems);
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		return delegated.isVisible(item, selectedItems);
+		
+	}
+	
+	public MapContext getMapContext() {
+		return delegated.getMapContext();
+	}
+	
+	public void setMapContext(MapContext mapContext) {
+		delegated.setMapContext(mapContext);
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/DelegatedTocContextMenuAction.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/OldTocContextMenuAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/OldTocContextMenuAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/OldTocContextMenuAction.java	(revision 38262)
@@ -0,0 +1,92 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.TocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.gui.FPopupMenu;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.1  2006-09-15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+public class OldTocContextMenuAction extends AbstractTocContextMenuAction {
+	private TocMenuEntry entry;
+
+	public int getGroupOrder() {
+		return 999;
+	}
+
+	public String getGroup() {
+		return "zzzOldMenus";
+	}
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		return; //No se llega a ejecutar nunca
+	}
+
+	public String getText() {
+		return null; //No se llega a ejecutar nunca
+	}
+
+	public void initializeElement(FPopupMenu menu) {
+		this.entry.initialize(menu);
+	}
+
+	public void setEntry(TocMenuEntry entry) {
+		this.entry = entry;
+	}
+
+	public TocMenuEntry getEntry() {
+		return this.entry;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/OldTocContextMenuAction.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyPasteLayersUtiles.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyPasteLayersUtiles.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyPasteLayersUtiles.java	(revision 38262)
@@ -0,0 +1,416 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import javax.help.UnsupportedOperationException;
+
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.utils.XMLEntity;
+
+
+public class CopyPasteLayersUtiles {
+	private static CopyPasteLayersUtiles theInstance = null;
+
+	public static CopyPasteLayersUtiles getInstance() {
+		if (theInstance == null) {
+			theInstance = new CopyPasteLayersUtiles();
+		}
+		return theInstance;
+	}
+
+	public XMLEntity generateXMLCopyLayers(FLayer[] actives) {
+		// FIXME: jjdc esta pendiente la implementacion del copy/paste
+		throw new UnsupportedOperationException();
+//
+//		XMLEntity xml = this.newRootNode();
+//		XMLEntity xmlLayers = this.newLayersNode();
+//		XMLEntity xmlTables = this.newTablesNode();
+//		XMLEntity xmlDataSources = this.newDataSourcesNode();
+//
+//		for (int i=0;i < actives.length; i++) {
+//			if (!this.addToXMLLayer(actives[i],xmlLayers ,xmlTables,xmlDataSources)) {
+//				return null;
+//			}
+//
+//		}
+//
+//		if (xmlDataSources.getChildrenCount() > 0) {
+//			xml.addChild(xmlDataSources);
+//		}
+//		if (xmlLayers.getChildrenCount() > 0) {
+//			xml.addChild(xmlLayers);
+//		}
+//		if (xmlTables.getChildrenCount() > 0) {
+//			xml.addChild(xmlTables);
+//		}
+//
+//		return xml;
+//
+	}
+
+
+
+	/*
+	 *
+	 *
+	 *
+	 * Funciones Publicas de carga de un XML (pegar)
+	 *
+	 *
+	 *
+	*/
+
+	public boolean loadLayersFromXML(XMLEntity xml, FLayers root) {
+		// FIXME: jjdc esta pendiente la implementacion del copy/paste
+		throw new UnsupportedOperationException();
+//		XMLEntity xmlLayers = xml.firstChild("type","layers");
+//		XMLEntity xmlTables = xml.firstChild("type","tables");
+//		XMLEntity xmlDataSources = xml.firstChild("type","dataSources");
+//
+//		if (xmlLayers == null ) {
+//			return false;
+//		}
+//
+//		// Se pegan las tablas igualmente
+//		/*
+//		Project project = this.getProject();
+//
+//		Hashtable tablesConfits = this.getConflicts(xmlTables,project.getTables());
+//		*/
+//
+//
+//		if (xmlDataSources != null)  {
+//			if (!this.registerDataSources(xmlDataSources)) {
+//				return false;
+//			}
+//		}
+//
+//		if (!this.addLayers(xmlLayers,root)) {
+//			return false;
+//		}
+//
+//		if (xmlTables != null)  {
+//			if (!this.addTables(xmlTables)) {
+//				return false;
+//			}
+//		}
+//
+//		return true;
+//
+	}
+
+	public boolean loadTablesFromXML(XMLEntity xml) {
+		// FIXME: jjdc esta pendiente la implementacion del copy/paste
+		throw new UnsupportedOperationException();
+//		XMLEntity xmlTables = xml.firstChild("type","tables");
+//		XMLEntity xmlDataSources = xml.firstChild("type","dataSources");
+//
+//
+//		if (xmlTables == null ) {
+//			return false;
+//		}
+//
+//		/*
+//		Project project = this.getProject();
+//
+//		Hashtable tablesConfits = this.getConflicts(xmlTables,project.getTables());
+//		*/
+//
+//		if (xmlDataSources != null)  {
+//			if (!this.registerDataSources(xmlDataSources)) {
+//				return false;
+//			}
+//		}
+//
+//
+//
+//		return this.addTables(xmlTables);
+	}
+
+
+	public boolean checkXMLRootNode(XMLEntity xml) {
+		// FIXME: jjdc esta pendiente la implementacion del copy/paste
+		throw new UnsupportedOperationException();
+//		if (!xml.contains("applicationName")) {
+//			return false;
+//		}
+//		if (!xml.getStringProperty("applicationName").equalsIgnoreCase("gvSIG")) {
+//			return false;
+//		}
+//
+//		if (!xml.contains("version")) {
+//			return false;
+//		}
+//		if (!xml.getStringProperty("version").equalsIgnoreCase(Version.format())) {
+//			return false;
+//		}
+//
+//		return true;
+	}
+
+//	private void fillXMLRootNode(XMLEntity xml) {
+//		xml.putProperty("applicationName","gvSIG");
+//		xml.putProperty("version",Version.format());
+//	}
+//
+//	private boolean registerDataSources(XMLEntity xmlDataSources) {
+//		try {
+//			int numDataSources = xmlDataSources.getChildrenCount();
+//
+//			if (numDataSources == 0) return true;
+//			DataSourceFactory dsFactory = LayerFactory.getDataSourceFactory();
+//
+//			for (int i = 0; i < numDataSources; i++) {
+//				XMLEntity child = xmlDataSources.getChild(i);
+//				String name = child.getStringProperty("gdbmsname");
+//
+//				if (dsFactory.getDriverInfo(name) == null) {
+//					if (child.getStringProperty("type").equals("otherDriverFile")) {
+//						LayerFactory.getDataSourceFactory().addFileDataSource(
+//								child.getStringProperty("driverName"),
+//								name,
+//								child.getStringProperty("file")
+//						);
+//
+//
+//					} else if (child.getStringProperty("type").equals("sameDriverFile")) {
+//						/*                                String layerName = child.getStringProperty("layerName");
+//						 ProjectView vista = project.getViewByName(child.getStringProperty(
+//						 "viewName"));
+//						 FLayer layer = vista.getMapContext().getLayers().getLayer(layerName);
+//
+//						 modelo = ((AlphanumericData) layer).getRecordset();
+//						 associatedTable = (AlphanumericData) layer;
+//						 */
+//					} else if (child.getStringProperty("type").equals("db")) {
+//						LayerFactory.getDataSourceFactory().addDBDataSourceByTable(
+//								name,
+//								child.getStringProperty("host"),
+//								child.getIntProperty("port"),
+//								child.getStringProperty("user"),
+//								child.getStringProperty("password"),
+//								child.getStringProperty("dbName"),
+//								child.getStringProperty("tableName"),
+//								child.getStringProperty("driverInfo")
+//						);
+//					}
+//				}
+//			}
+//
+//			return true;
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//			return false;
+//		}
+//		return false;
+//	}
+//
+//	private boolean addTables(XMLEntity xmlTables) {
+//		try {
+//			int numTables = xmlTables.getChildrenCount();
+//			if (numTables == 0) {
+//				return true;
+//			}
+//
+//			Project project = this.getProject();
+//
+//			for (int i = 0; i < numTables; i++) {
+//				try{
+//					FeatureTableDocument ptable = (FeatureTableDocument) FeatureTableDocument.createFromXML(xmlTables.getChild(i), project);
+//					project.addDocument(ptable);
+//					/*
+//					if (ptable.getSeedViewInfo()!=null && ptable.getAndamiView()!=null) { // open the view, if it was open, and restore its dimensions
+//						PluginServices.getMDIManager().addView(ptable.getAndamiView());
+//						PluginServices.getMDIManager().changeViewInfo(ptable.getAndamiView(), ptable.getSeedViewInfo());
+//					}
+//					*/
+//				}catch(OpenException e){
+//					e.printStackTrace();
+//					return false;
+//				}
+//			}
+//
+//			project.setLinkTable();
+//
+//			return true;
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//			return false;
+//		}
+//	}
+//
+//	private boolean addLayers(XMLEntity xmlLayers,FLayers root) {
+//		try {
+//			XMLEntity child;
+//			int numLayers = xmlLayers.getChildrenCount();
+//			for (int i = 0; i < numLayers; i++) {
+//				child = xmlLayers.getChild(i);
+//				if (!root.addLayerFromXMLEntity(child,null)) return false;
+//			}
+//			return true;
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//			return false;
+//		}
+//
+//	}
+//
+//
+//
+//	private Project getProject() {
+//		 return ((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+//	}
+//
+//	private boolean addToXMLDataSource(SourceInfo source,XMLEntity xmlDataSources, Project project) {
+//		if (project== null) {
+//			project = this.getProject();
+//		}
+//  	  	xmlDataSources.addChild(project.getSourceInfoXMLEntity(source));
+//
+//  	  	return true;
+//	}
+//
+//	private boolean addToXMLTable(FeatureTableDocument pt,XMLEntity xmlTables,XMLEntity xmlDataSources,Project project) {
+//		if (project== null) {
+//			project = this.getProject();
+//		}
+//		if (xmlTables.findChildren("name",pt.getName()) != null) return true;
+//		XMLEntity xmlTable = null;
+//		try {
+//			xmlTable = pt.getXMLEntity();
+//
+//			xmlTables.addChild(xmlTable);
+//
+//			if (pt.getAssociatedTable() != null) {
+//				this.addToXMLDataSource(pt.getAssociatedTable().getRecordset().getSourceInfo(),xmlDataSources,project);
+//			}
+//
+//			if (pt.getLinkTable() != null) {
+//				if (xmlTables.findChildren("name",pt.getLinkTable()) == null)  {
+//					ProjectTable ptLink = (ProjectTable)project.getProjectDocumentByName(pt.getLinkTable(),ProjectTableFactory.registerName);
+//					if (!this.addToXMLTable(ptLink,xmlTables,xmlDataSources,project)) return false;
+//				}
+//			}
+//		} catch (SaveException e) {
+//			e.printStackTrace();
+//			return false;
+//		} catch (ReadException e) {
+//			e.printStackTrace();
+//			return false;
+//		}
+//
+//  	  	return true;
+//	}
+//
+//	private boolean addToXMLLayerDependencies(FLayer lyr,XMLEntity xmlTables,XMLEntity xmlDataSources) {
+//		try {
+//			Project project = this.getProject();
+//
+//			if (lyr instanceof FLayers) {
+//				FLayers lyrs = (FLayers)lyr;
+//				int count = lyrs.getLayersCount();
+//				for (int i=0;i < count;i++) {
+//					FLayer subLyr = lyrs.getLayer(i);
+//					this.addToXMLLayerDependencies(subLyr,xmlTables,xmlDataSources);
+//				}
+//
+//		    } else if (lyr instanceof FLyrVect){
+//            	if (!this.addToXMLDataSource(
+//        			((FLyrVect)lyr).getRecordset().getSourceInfo(),
+//        			xmlDataSources,
+//        			project
+//
+//            	)) return false;
+//
+//                ProjectTable pt = project.getTable((FLyrVect) lyr);
+//                if (pt != null) {
+//                	if (!this.addToXMLTable(pt,xmlTables,xmlDataSources,project)) return false;
+//                }
+//
+//            }
+//
+//		} catch (ReadException e) {
+//			// TODO Auto-generated catch block
+//			e.printStackTrace();
+//			return false;
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//			return false;
+//
+//		}
+//		return true;
+//	}
+//
+//	private boolean addToXMLLayer(FLayer lyr,XMLEntity xmlLayers,XMLEntity xmlTables,XMLEntity xmlDataSources) {
+//		try {
+//			xmlLayers.addChild(lyr.getXMLEntity());
+//
+//			return this.addToXMLLayerDependencies(lyr,xmlTables,xmlDataSources);
+//
+//		} catch (XMLException e) {
+//			e.printStackTrace();
+//			return false;
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//			return false;
+//		}
+//	}
+//
+//	private XMLEntity newRootNode() {
+//		XMLEntity xml = new XMLEntity();
+//		fillXMLRootNode(xml);
+//		return xml;
+//	}
+//
+//	private XMLEntity newLayersNode() {
+//		XMLEntity xmlLayers = new XMLEntity();
+//		xmlLayers.putProperty("type","layers");
+//		return xmlLayers;
+//	}
+//
+//	private XMLEntity newDataSourcesNode() {
+//		XMLEntity xmlDataSources = new XMLEntity();
+//		xmlDataSources.putProperty("type","dataSources");
+//		return xmlDataSources;
+//	}
+//
+//	private XMLEntity newTablesNode() {
+//		XMLEntity xmlTables = new XMLEntity();
+//		xmlTables.putProperty("type","tables");
+//		return xmlTables;
+//	}
+//
+	public boolean removeLayers(FLayer[] actives) {
+		// FIXME: jjdc esta pendiente la implementacion del copy/paste
+		throw new UnsupportedOperationException();
+//   	for (int i = actives.length-1; i>=0; i--){
+//        	try {
+//				//actives[i].getParentLayer().removeLayer(actives[i]);
+//				//FLayers lyrs=getMapContext().getLayers();
+//				//lyrs.addLayer(actives[i]);
+//				actives[i].getParentLayer().removeLayer(actives[i]);
+//
+//                if (actives[i] instanceof FLyrVect){
+//                    Project project = ((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
+//                    FeatureTableDocument pt = project.getTable((FLyrVect) actives[i]);
+//
+//                    List<IProjectDocument> tables = project.getDocuments(FeatureTableDocumentFactory.TYPENAME);
+//                    for (int j = 0; j < tables.size(); j++) {
+//                        if (tables.get(j) == pt){
+//                            project.delDocument(tables.get(j));
+//                            break;
+//                        }
+//                    }
+//
+//                    PluginServices.getMDIManager().closeSingletonWindow(pt);
+//                }
+//
+//
+//    		} catch (CancelationException e1) {
+//    			e1.printStackTrace();
+//    			return false;
+//    		}
+//    	}
+//		return true;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/CopyPasteLayersUtiles.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ReloadLayerTocMenuEntry.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ReloadLayerTocMenuEntry.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ReloadLayerTocMenuEntry.java	(revision 38262)
@@ -0,0 +1,108 @@
+package org.gvsig.app.project.documents.view.toc.actions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ * Revision 1.2  2006-10-02 13:52:34  jaume
+ * organize impots
+ *
+ * Revision 1.1  2006/09/15 10:41:30  caballero
+ * extensibilidad de documentos
+ *
+ * Revision 1.1  2006/09/12 15:58:14  jorpiell
+ * "Sacadas" las opcines del men� de FPopupMenu
+ *
+ *
+ */
+/**
+*
+* @author Jose Manuel Viv� (Chema)
+*
+* Entrada de men� para recargar una capa.
+*/
+public class ReloadLayerTocMenuEntry extends AbstractTocContextMenuAction{
+	public String getGroup() {
+		return "group3"; //FIXME
+	}
+
+	public int getGroupOrder() {
+		return 30;
+	}
+
+	public int getOrder() {
+		return 1;
+	}
+
+	public String getText() {
+		return PluginServices.getText(this, "recargar");
+	}
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return !getNodeLayer(item).isAvailable();
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		if (isTocItemBranch(item)) {
+			return true;
+		}
+		return false;
+
+	}
+
+
+	public void execute(ITocItem item, FLayer[] selectedItems) {
+		try {
+			getNodeLayer(item).reload();
+		} catch (Exception ex) {
+			ex.printStackTrace();
+		}
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/actions/ReloadLayerTocMenuEntry.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/AbstractTocContextMenuAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/AbstractTocContextMenuAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/AbstractTocContextMenuAction.java	(revision 38262)
@@ -0,0 +1,81 @@
+package org.gvsig.app.project.documents.view.toc;
+
+import java.util.Map;
+
+import org.gvsig.app.project.documents.view.AbstractContextMenuAction;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.tools.extensionpoint.ExtensionBuilder;
+
+
+public abstract class AbstractTocContextMenuAction extends AbstractContextMenuAction implements ExtensionBuilder{
+	private MapContext mapContext;
+
+	public MapContext getMapContext() {
+		return this.mapContext;
+	}
+
+	public void setMapContext(MapContext mapContext) {
+		this.mapContext = mapContext;
+	}
+
+	/**
+	 * @deprecated use public boolean isEnabled(ITocItem item, FLayer[] selectedItems)
+	 */
+	public boolean isEnabled(Object item, Object[] selectedItems) {
+		return this.isEnabled((ITocItem)item, (FLayer[])selectedItems);
+	}
+
+	/**
+	 * @deprecated use public boolean isVisible(ITocItem item, FLayer[] selectedItems)
+	 */
+	public boolean isVisible(Object item, Object[] selectedItems) {
+		return this.isVisible((ITocItem)item, (FLayer[])selectedItems);
+	}
+
+	/**
+	 * @deprecated use public void execute(ITocItem item, FLayer[] selectedItems)
+	 */
+	public void execute(Object item, Object[] selectedItems) {
+		this.execute((ITocItem)item, (FLayer[])selectedItems);
+	}
+
+	public FLayer getNodeLayer(ITocItem node) {
+		if (isTocItemBranch(node))
+			return ((TocItemBranch) node).getLayer();
+		return null;
+	}
+	public boolean isTocItemLeaf(ITocItem node) {
+		return node instanceof TocItemLeaf;
+	}
+
+	public boolean isTocItemBranch(ITocItem node) {
+		return node instanceof TocItemBranch;
+	}
+
+
+	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
+		return true;
+	}
+
+	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
+		return true;
+	}
+
+	public abstract void execute(ITocItem item, FLayer[] selectedItems);
+
+	public Object create() {
+		return this;
+	}
+
+	public Object create(Map args) {
+		// TODO Auto-generated method stub
+		return this;
+	}
+
+	public Object create(Object[] args) {
+		// TODO Auto-generated method stub
+		return this;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/AbstractTocContextMenuAction.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemBranch.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemBranch.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemBranch.java	(revision 38262)
@@ -0,0 +1,257 @@
+/*
+ * Created on 03-dic-2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc;
+
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.view.IContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.actions.FLyrVectEditPropertiesTocMenuEntry;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+
+
+/**
+ * @author FJP
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class TocItemBranch implements ITocItem {
+
+	private ImageIcon icolayer = null;
+
+	private ImageIcon finalIcon = null;
+
+	private BufferedImage unavailableImg = null;
+
+	private final String defaultIcon = "images/icolayer.PNG";
+
+	private final String unavailableImgPath = "images/unavailable.png";
+
+	private boolean isAvailable = true;
+
+	private FLayer lyr;
+
+	private Dimension sz;
+
+    final public static DataFlavor INFO_FLAVOR =
+	    new DataFlavor(TocItemBranch.class, "ItemBranch");
+    static DataFlavor flavors[] = {INFO_FLAVOR };
+
+	public TocItemBranch(FLayer lyr)
+	{
+		this.lyr = lyr;
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#getLabel()
+	 */
+	public String getLabel() {
+		/*if (lyr instanceof FLyrVect && ((FLyrVect)lyr).isBroken())
+		{
+			return lyr.getName() + "(broken)";
+		}
+		else*/
+			return lyr.getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#getIcon()
+	 */
+	public Icon getIcon() {
+		// TODO Pedirle el icono a la capa. Por defecto habr� un icono
+		// para vectoriales y otro para raster, pero se podr�n cambiar.
+
+		if (finalIcon == null) {
+			ImageIcon icon = (ImageIcon) PluginServices.getIconTheme().get(lyr.getTocImageIcon());
+			this.setIcon(icon);
+		}
+		updateStateIcon();
+
+		return finalIcon;
+	}
+
+	private void setIcon(String path) {
+		File f = new File(path);
+		if (f.exists()) {
+			icolayer = new ImageIcon(f.getAbsolutePath());
+		} else {
+			URL url =PluginServices.getPluginServices("org.gvsig.app").getClassLoader().getResource(path);
+			if (url!=null) {
+				icolayer = new ImageIcon(url);
+				return;
+			}
+		}
+		updateStateIcon();
+
+	}
+	private void updateStateIcon() {
+		if (icolayer == null) return;
+		if (lyr.getTocStatusImage() != null)
+		{
+			BufferedImage newImage = new BufferedImage(icolayer.getIconWidth(),icolayer.getIconHeight(),BufferedImage.TYPE_INT_ARGB);
+			Graphics2D grp = newImage.createGraphics();
+			grp.drawImage(icolayer.getImage(),0,0,null);
+			Image img = lyr.getTocStatusImage();
+			grp.drawImage(
+					img,
+					0,
+					icolayer.getIconHeight() -img.getHeight(null),
+					null
+			);
+			this.finalIcon = new ImageIcon(newImage);
+		}
+		if (this.lyr.isAvailable() != this.isAvailable || finalIcon==null) {
+			if (!this.lyr.isAvailable()) {
+				BufferedImage newImage = new BufferedImage(icolayer.getIconWidth(),icolayer.getIconHeight(),BufferedImage.TYPE_INT_ARGB);
+				Graphics2D grp = newImage.createGraphics();
+				grp.drawImage(icolayer.getImage(),0,0,null);
+				/*grp.setComposite(AlphaComposite.getInstance(
+				 AlphaComposite.SRC_OVER, (float) 1));*/
+				BufferedImage img = this.getUnavailableImage();
+				grp.drawImage(
+						img,
+						0,
+						icolayer.getIconHeight() -img.getHeight(),
+						null
+				);
+				this.finalIcon = new ImageIcon(newImage);
+
+			} else {
+				this.finalIcon = new ImageIcon(icolayer.getImage());
+			}
+			this.isAvailable =(this.lyr.isAvailable());
+		}
+
+	}
+
+	private void setIcon(ImageIcon icon) {
+		if (icon!=null) {
+			icolayer = icon;
+		} else {
+			this.setIcon(defaultIcon);
+
+		}
+		updateStateIcon();
+
+	}
+
+	public FLayer getLayer() {
+		return lyr;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.datatransfer.Transferable#getTransferDataFlavors()
+	 */
+	public DataFlavor[] getTransferDataFlavors() {
+		return flavors;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.datatransfer.Transferable#isDataFlavorSupported(java.awt.datatransfer.DataFlavor)
+	 */
+	public boolean isDataFlavorSupported(DataFlavor dF) {
+		return dF.equals(INFO_FLAVOR);
+	}
+
+	/* (non-Javadoc)
+	 * @see java.awt.datatransfer.Transferable#getTransferData(java.awt.datatransfer.DataFlavor)
+	 */
+	public Object getTransferData(DataFlavor dF) throws UnsupportedFlavorException, IOException {
+	    if (dF.equals(INFO_FLAVOR)) {
+	        return this;
+	      }
+	      else throw new UnsupportedFlavorException(dF);
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#getSize()
+	 */
+	public Dimension getSize() {
+		return sz;
+	}
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.toc.ITocItem#setSize(java.awt.Dimension)
+	 */
+	public void setSize(Dimension sz) {
+		this.sz = sz;
+	}
+
+	private BufferedImage getUnavailableImage() {
+		if (this.unavailableImg == null) {
+			URL url =PluginServices.getPluginServices("org.gvsig.app").getClassLoader().getResource(this.unavailableImgPath);
+			if (url!=null) {
+				ImageIcon uIcon = new ImageIcon(url);
+				this.unavailableImg = new BufferedImage(uIcon.getIconWidth(),uIcon.getIconHeight(),BufferedImage.TYPE_INT_RGB);
+				this.unavailableImg.getGraphics().drawImage(uIcon.getImage(),0,0,null);
+			}
+
+		}
+		return this.unavailableImg;
+	}
+
+	public IContextMenuAction getDoubleClickAction() {
+		// TODO
+		// THIS IS A PATCH; IT WILL BE REMOVED WHEN ALL THE PROPERTIES
+		// FOR ALL LAYERS WILL BE MERGED IN THE SAME DIALOG
+		if (!(getLayer() instanceof FLyrVect)) {
+			return null;
+		}
+		return new FLyrVectEditPropertiesTocMenuEntry();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/TocItemBranch.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOCRenderer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOCRenderer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOCRenderer.java	(revision 38262)
@@ -0,0 +1,162 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2012 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.app.project.documents.view.toc.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Rectangle;
+
+import javax.swing.Icon;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTree;
+import javax.swing.SpringLayout;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreeCellRenderer;
+
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.TocItemBranch;
+import org.gvsig.fmap.mapcontext.layers.FLyrDefault;
+
+/**
+ * Renderer que actua sobre el TOC.
+ * 
+ * @author vcn
+ */
+public class TOCRenderer extends JPanel implements TreeCellRenderer {
+
+    private static final long serialVersionUID = -6733445768959238193L;
+    private JCheckBox check;
+    private JLabel label;
+
+    private final Color editingColor;
+
+    /**
+     * Creates a new TOCRenderer object.
+     */
+    public TOCRenderer() {
+        this(Color.RED);
+    }
+
+    /**
+     * Creates a new TOCRenderer object.
+     */
+    public TOCRenderer(Color editingColor) {
+        this.editingColor = editingColor;
+
+        check = new JCheckBox();
+        label = new JLabel();
+
+        SpringLayout theLayout = new SpringLayout();
+        this.setLayout(theLayout);
+
+        // Adjust constraints for the text field so it's at
+        // (<label's right edge> + 5, 5).
+        this.add(check);
+        this.add(label);
+
+        theLayout.putConstraint(SpringLayout.WEST, label, 5, SpringLayout.EAST,
+            check);
+    }
+
+    /**
+     * M�todo llamado una vez por cada nodo, y todas las veces que se redibuja
+     * en pantalla el TOC.
+     * 
+     * @param tree
+     * @param value
+     * @param isSelected
+     * @param expanded
+     * @param leaf
+     * @param row
+     * @param hasFocus
+     * 
+     * @return
+     */
+    public Component getTreeCellRendererComponent(JTree tree, Object value,
+        boolean isSelected, boolean expanded, boolean leaf, int row,
+        boolean hasFocus) {
+
+        DefaultMutableTreeNode n = (DefaultMutableTreeNode) value;
+        Color foreground = tree.getForeground();
+        this.label.setFont(tree.getFont());
+
+        if (n.getUserObject() instanceof ITocItem) {
+
+            ITocItem item = (ITocItem) n.getUserObject();
+            label.setText(item.getLabel());
+            Icon icono = item.getIcon();
+            if (icono != null) {
+                label.setIcon(icono);
+            }
+
+            this.validate();
+            Dimension sizeNode = item.getSize(); // Se fija en el resize del TOC
+            this.setPreferredSize(sizeNode);
+
+            if (item instanceof TocItemBranch) {
+                TocItemBranch branch = (TocItemBranch) item;
+                FLyrDefault lyr = (FLyrDefault) branch.getLayer();
+                check.setVisible(true);
+                check.setSelected(lyr.visibleRequired());
+                if (!lyr.isAvailable()) {
+                    check.setEnabled(false);
+                } else {
+                    check.setEnabled(true);
+                    if (!lyr.isWithinScale(lyr.getMapContext().getScaleView())) {
+                        check.setEnabled(false);
+                    }
+
+                    if (lyr.isEditing()) {
+                        this.label.setForeground(editingColor);
+                    } else {
+                        this.label.setForeground(foreground);
+                    }
+                }
+                if (lyr.isActive()) {
+                    this.label.setFont(label.getFont().deriveFont(Font.BOLD));
+                }
+            } else {
+                check.setVisible(false);
+            }
+        }
+
+        if (leaf) {
+            // label.setIcon(UIManager.getIcon("Tree.leafIcon"));
+        } else if (expanded) {
+            // label.setIcon(UIManager.getIcon("Tree.openIcon"));
+        } else {
+            // label.setIcon(UIManager.getIcon("Tree.closedIcon"));
+        }
+
+        return this;
+    }
+
+    public Rectangle getCheckBoxBounds() {
+        return check.getBounds();
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOCRenderer.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/FPopupMenu.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/FPopupMenu.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/FPopupMenu.java	(revision 38262)
@@ -0,0 +1,252 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2012 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.app.project.documents.view.toc.gui;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.lang.reflect.Array;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Iterator;
+
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import javax.swing.tree.DefaultMutableTreeNode;
+
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.project.documents.view.IContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.TocItemBranch;
+import org.gvsig.app.project.documents.view.toc.actions.ChangeNameTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.ChangeSymbolTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.CopyLayersTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.CutLayersTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.EliminarCapaTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.FLyrVectEditPropertiesTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.FirstLayerTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.LayersGroupTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.LayersUngroupTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.OldTocContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.actions.PasteLayersTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.ReloadLayerTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.ShowLayerErrorsTocMenuEntry;
+import org.gvsig.app.project.documents.view.toc.actions.ZoomAlTemaTocMenuEntry;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.extensionpoint.ExtensionPoint;
+import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
+
+/**
+ * Menu de bot�n derecho para el TOC.
+ * Se pueden a�adir entradas facilmente desde una extensi�n,
+ * creando una clase derivando de TocMenuEntry, y a�adiendola en
+ * est�tico (o en tiempo de carga de la extensi�n) a FPopupMenu.
+ * (Las entradas actuales est�n hechas de esa manera).
+ * 
+ * @author vcn To change the template for this generated type comment go to
+ *         Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and
+ *         Comments
+ */
+
+public class FPopupMenu extends JPopupMenu {
+
+    private static final long serialVersionUID = -7420923229618207434L;
+    private DefaultMutableTreeNode nodo;
+    protected MapContext mapContext;
+    private ExtensionPoint extensionPoint;
+    private FLayer[] selecteds;
+
+    public static void registerExtensionPoint() {
+        ExtensionPoint exPoint =
+            ToolsLocator.getExtensionPointManager().add("View_TocActions", "");
+        exPoint
+            .append("FSymbolChangeColor", "", new ChangeSymbolTocMenuEntry());
+        exPoint.append("ChangeName", "", new ChangeNameTocMenuEntry());
+        exPoint.append("FLyrVectEditProperties", "",
+            new FLyrVectEditPropertiesTocMenuEntry());
+        exPoint.append("ZoomAlTema", "", new ZoomAlTemaTocMenuEntry());
+        exPoint.append("EliminarCapa", "", new EliminarCapaTocMenuEntry());
+        exPoint.append("VerErroresCapa", "", new ShowLayerErrorsTocMenuEntry());
+        exPoint.append("ReloadLayer", "", new ReloadLayerTocMenuEntry());
+        exPoint.append("LayersGroup", "", new LayersGroupTocMenuEntry());
+        exPoint.append("LayersUngroup", "", new LayersUngroupTocMenuEntry());
+        exPoint.append("FirstLayer", "", new FirstLayerTocMenuEntry());
+
+        exPoint.append("Copy", "", new CopyLayersTocMenuEntry());
+        exPoint.append("Cut", "", new CutLayersTocMenuEntry());
+        exPoint.append("Paste", "", new PasteLayersTocMenuEntry());
+    }
+
+    /**
+     * Creates a new FPopupMenu object.
+     * 
+     * @param nodo
+     *            DOCUMENT ME!
+     * @param vista
+     *            DOCUMENT ME!
+     */
+    public FPopupMenu(MapContext mc, DefaultMutableTreeNode node) {
+        super();
+        this.initialize(mc, node);
+    }
+
+    private void initialize(MapContext mc, DefaultMutableTreeNode node) {
+        this.mapContext = mc;
+        this.nodo = node;
+
+        this.extensionPoint =
+            ToolsLocator.getExtensionPointManager().get("View_TocActions");
+        this.selecteds = this.mapContext.getLayers().getActives();
+
+        IContextMenuAction[] actions = this.getActionList();
+        if (actions == null) {
+            return;
+        }
+        this.createMenuElements(actions);
+    }
+
+    public MapContext getMapContext() {
+        return mapContext;
+    }
+
+    public ITocItem getNodeUserObject() {
+        if (nodo == null) {
+            return null;
+        }
+        return (ITocItem) nodo.getUserObject();
+    }
+
+    public DefaultMutableTreeNode getNode() {
+        return this.nodo;
+    }
+
+    private IContextMenuAction[] getActionList() {
+        ArrayList<IContextMenuAction> actionArrayList =
+            new ArrayList<IContextMenuAction>();
+        @SuppressWarnings("unchecked")
+        Iterator<Extension> iter = this.extensionPoint.iterator();
+        AbstractTocContextMenuAction action;
+        boolean contains = false;
+        ITocItem tocItem = this.getNodeUserObject();
+        if (tocItem instanceof TocItemBranch) {
+            for (int i = 0; i < this.selecteds.length; i++) {
+                if (this.selecteds[i].equals(((TocItemBranch) tocItem)
+                    .getLayer())) {
+                    contains = true;
+                    break;
+                }
+            }
+        } else {
+            contains = true;
+        }
+        if (contains) {
+            while (iter.hasNext()) {
+                action = null;
+                try {
+                    action =
+                        (AbstractTocContextMenuAction) iter.next().create();
+                } catch (Exception e) {
+                    NotificationManager.addError(e);
+                }
+                if (action != null
+                    && !(action instanceof OldTocContextMenuAction)) {
+                    action.setMapContext(this.mapContext);
+                    if (action.isVisible(this.getNodeUserObject(),
+                        this.selecteds)) {
+                        actionArrayList.add(action);
+                    }
+                }
+
+            }
+            IContextMenuAction[] result =
+                (IContextMenuAction[]) Array.newInstance(
+                    IContextMenuAction.class, actionArrayList.size());
+            System.arraycopy(actionArrayList.toArray(), 0, result, 0,
+                actionArrayList.size());
+            Arrays.sort(result, new CompareAction());
+
+            return result;
+        }
+        return null;
+    }
+
+    public class CompareAction implements Comparator<IContextMenuAction> {
+
+        public int compare(IContextMenuAction o1, IContextMenuAction o2) {
+            // FIXME: flata formatear los enteros!!!!
+            NumberFormat formater = NumberFormat.getInstance();
+            formater.setMinimumIntegerDigits(3);
+            String key1 =
+                "" + formater.format(o1.getGroupOrder()) + o1.getGroup()
+                    + formater.format(o1.getOrder());
+            String key2 =
+                "" + formater.format(o2.getGroupOrder()) + o2.getGroup()
+                    + formater.format(o2.getOrder());
+            return key1.compareTo(key2);
+        }
+    }
+
+    private void createMenuElements(IContextMenuAction[] actions) {
+        String group = null;
+        for (int i = 0; i < actions.length; i++) {
+            IContextMenuAction action = actions[i];
+            MenuItem item = new MenuItem(action.getText(), action);
+            item.setEnabled(action.isEnabled(this.getNodeUserObject(),
+                this.selecteds));
+            if (!action.getGroup().equals(group)) {
+                if (group != null) {
+                    this.addSeparator();
+                }
+                group = action.getGroup();
+            }
+            this.add(item);
+        }
+
+    }
+
+    public class MenuItem extends JMenuItem implements ActionListener {
+
+        private static final long serialVersionUID = 6858724610206253411L;
+        private IContextMenuAction action;
+
+        public MenuItem(String text, IContextMenuAction documentAction) {
+            super(text);
+            this.action = documentAction;
+            String tip = this.action.getDescription();
+            if (tip != null && tip.length() > 0) {
+                this.setToolTipText(tip);
+            }
+            this.addActionListener(this);
+        }
+
+        public void actionPerformed(ActionEvent e) {
+            this.action.execute(FPopupMenu.this.getNodeUserObject(),
+                FPopupMenu.this.selecteds);
+        }
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/FPopupMenu.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/PanelColor.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/PanelColor.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/PanelColor.java	(revision 38262)
@@ -0,0 +1,123 @@
+/*
+ * Created on 27-feb-2004
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toc.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+
+import javax.swing.JPanel;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author vcn To change the template for this generated type comment go to
+ *         Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and
+ *         Comments
+ */
+public class PanelColor extends JPanel {
+    public Color[] m_colores = new Color[100];
+    public Color m_color;
+    private Integer numReg;
+    private int numreg;
+    public int a = 155;
+    public int b = 205;
+    public int c = 255;
+
+    /**
+     * Creates a new PanelColor object.
+     *
+     * @param numReg DOCUMENT ME!
+     */
+    public PanelColor(int numReg) {
+        //numReg=numReg+1;
+        //m_color = new Color((numReg*numReg+100)%255,(numReg+(3*numReg+100))%255,numReg%255);
+        //this.setBackground(m_color);
+        setLayout(new BorderLayout());
+		
+        //add(oneColorPanel);
+        setMaximumSize(new Dimension(12, 12));
+        setMinimumSize(new Dimension(12, 12));
+        setPreferredSize(new Dimension(12, 12));
+    }
+
+    //private ColorPanel oneColorPanel = new ColorPanel();
+    //private FourColorPanel fourColorPanel = new LayerColorPanel.FourColorPanel();
+    public void setColor(Color color) {
+        m_color = color;
+        a=color.getRed();
+        System.out.println("a=color.getRed();"+a);
+		b=color.getGreen();
+		System.out.println("b=color.getGreen();"+b);
+        c=color.getBlue();
+		System.out.println("c=color.getBlue();"+c);
+        this.setBackground(color);
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    public void setColorinicial() {
+        a=155;
+		b=205;
+		c=255;
+        m_color = new Color(a, b, c);
+        this.setBackground(m_color);
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    public void setColorfin() {
+        this.m_color = new Color(45, 95, 145);
+        a=45;
+        b=95;
+        c=145;
+        this.setBackground(m_color);
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/PanelColor.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/HTMLInfoPanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/HTMLInfoPanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/HTMLInfoPanel.java	(revision 38262)
@@ -0,0 +1,201 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.app.project.documents.view.toc.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+
+import javax.swing.JEditorPane;
+import javax.swing.JScrollPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.gui.beans.panelGroup.panels.AbstractPanel;
+import org.gvsig.utils.swing.JComboBox;
+
+
+/**
+ * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
+ */
+public abstract class HTMLInfoPanel extends AbstractPanel{
+	private final String      bgColor0        = "\"#FEEDD6\""; // light salmon
+	private final String      bgColor1        = "\"#EAEAEA\""; // light grey
+	private final String      bgColor3        = "\"#FBFFE1\""; // light yellow
+	private final String      bgColor4        = "\"#D6D6D6\""; // Gris
+	private final String      bgColorBody     = "\"#FFFFFF\""; // white
+	
+	private JScrollPane       jScrollPane     = null;
+	public JEditorPane        jEditorPane     = null;
+	private JComboBox         jComboBox       = null;
+		
+	/**
+	 * 
+	 */
+	public HTMLInfoPanel() {
+		super();
+		setLabel(PluginServices.getText(this, "info"));
+		initialize();
+	}
+
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	protected void initialize() {
+		this.setLayout(new BorderLayout(5, 5));
+		this.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
+		this.add(getJScrollPane(), BorderLayout.CENTER);		
+		this.getJEditorPane().repaint();		
+	}	
+	
+	/**
+	 * This method initializes jScrollPane
+	 *
+	 * @return javax.swing.JScrollPane
+	 */
+	private JScrollPane getJScrollPane() {
+		if (jScrollPane == null) {
+			jScrollPane = new JScrollPane();
+			jScrollPane.setViewportView(getJEditorPane());
+		}
+		return jScrollPane;
+	}
+
+	/**
+	 * This method initializes jEditorPane
+	 *
+	 * @return javax.swing.JEditorPane
+	 */
+	private JEditorPane getJEditorPane() {
+		if (jEditorPane == null) {
+			jEditorPane = new JEditorPane();
+			jEditorPane.setEditable(false);
+			jEditorPane.setContentType("text/html");
+		}
+		return jEditorPane;
+	}
+	
+	/**
+	 * Booleano que est� a true cuando la fila a dibujar es par y a false cuando
+	 * es impar.
+	 */
+	private boolean           rowColor        = true;
+	
+	/**
+	 * Controla la alternatividad de colores en la tabla.
+	 *
+	 * @return Cadena con el color de la fila siguiente.
+	 */
+	private String getColor() {
+		String color = (rowColor ? bgColor0 : bgColor1);
+		rowColor = !rowColor;
+		return color;
+	}
+
+	/**
+	 * Obtiene una entrada de la tabla en formato HTML a partir de una propiedad,
+	 * un valor y un color.
+	 *
+	 * @param prop
+	 *          Nombre de la propiedad
+	 * @param value
+	 *          Valor
+	 * @param color
+	 *          Color
+	 *
+	 * @return Entrada HTML de la tabla
+	 */
+	protected String setHTMLBasicProperty(String prop, String value) {
+		String content = "<tr valign=\"top\">";
+		if (prop != null)
+			content += "<td bgcolor=" + bgColor4 + "align=\"right\" width=\"33%\"><font face=\"Arial\" size=\"3\">" + prop + ":&nbsp;</font></td>";
+		content += "<td bgcolor=" + getColor() + "align=\"left\" width=\"67%\"><font face=\"Arial\" size=\"3\">" + value + "</font></td>";
+		content += "</tr>";
+
+		return content;
+	}
+
+	/**
+	 * Obtiene una cabecera de tabla en formato HTML a partir de un titulo.
+	 *
+	 * @param title
+	 *          Nombre del titulo
+	 * @param colspan
+	 *          Numero de celdas que ocupara el titulo
+	 *
+	 * @return Entrada HTML del titulo
+	 */
+	protected String setHTMLTitleTable(String title, int colspan) {
+		return
+			"<tr valign=\"middle\" >" +
+			"<td bgcolor=" + bgColor3 + " align=\"center\" colspan=\"" + colspan + "\"><font face=\"Arial\" size=\"3\"><b> " + title + "</b></font></td>" +
+			"</tr>";
+	}
+
+	/**
+	 * Obtiene una cabecera de tabla en formato HTML a partir de un titulo.
+	 *
+	 * @param content
+	 *          Codigo HTML de las filas que componen la tabla.
+	 *
+	 * @return Entrada HTML de la tabla completa
+	 */
+	protected String setHTMLTable(String content) {
+		return "<table cellpadding=\"0\" cellspacing=\"0\" align=\"center\" width=\"100%\">" + content + "</table>";
+	}
+
+	/**
+	 * Genera el HTML para todo el contenido.
+	 *
+	 * @param content
+	 *          Codigo HTML que ira en el <body>...</body>.
+	 *
+	 * @return HTML completo
+	 */
+	protected String setHTMLBody(String content) {
+		String html = "<html>";
+		html += "<body bgcolor=" + bgColorBody + " topmargin=\"0\" marginheight=\"0\">";
+		html += content;
+		html += "</body>";
+		html += "</html>";
+		return html;
+	}
+	
+	/**
+	 * Add the HTML code t the form
+	 * @param content
+	 */
+	protected void addHTMLToPanel(String content){
+		this.getJEditorPane().setContentType("text/html");
+		this.getJEditorPane().setText(content);
+		this.getJEditorPane().setCaretPosition(0);
+	}
+}
+

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/HTMLInfoPanel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOC.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOC.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOC.java	(revision 38262)
@@ -0,0 +1,1107 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2012 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.app.project.documents.view.toc.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Image;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentEvent;
+import java.awt.event.ComponentListener;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.BorderFactory;
+import javax.swing.JColorChooser;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.SwingUtilities;
+import javax.swing.event.TreeExpansionEvent;
+import javax.swing.event.TreeExpansionListener;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreePath;
+import javax.swing.tree.TreeSelectionModel;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.app.project.documents.view.IContextMenuAction;
+import org.gvsig.app.project.documents.view.toc.DnDJTree;
+import org.gvsig.app.project.documents.view.toc.ITocItem;
+import org.gvsig.app.project.documents.view.toc.ITocOrderListener;
+import org.gvsig.app.project.documents.view.toc.TocItemBranch;
+import org.gvsig.app.project.documents.view.toc.TocItemLeaf;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.events.AtomicEvent;
+import org.gvsig.fmap.mapcontext.events.listeners.AtomicEventListener;
+import org.gvsig.fmap.mapcontext.layers.CancelationException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontext.layers.LayerCollectionEvent;
+import org.gvsig.fmap.mapcontext.layers.LayerCollectionListener;
+import org.gvsig.fmap.mapcontext.layers.LayerPositionEvent;
+import org.gvsig.fmap.mapcontext.layers.operations.Classifiable;
+import org.gvsig.fmap.mapcontext.layers.operations.IHasImageLegend;
+import org.gvsig.fmap.mapcontext.layers.operations.LayerCollection;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.IClassifiedLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.ISingleSymbolLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.events.LegendChangedEvent;
+import org.gvsig.fmap.mapcontext.rendering.legend.events.listeners.LegendListener;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+
+/**
+ * 
+ * @author fjp
+ */
+public class TOC extends JComponent implements ITocOrderListener,
+    LegendListener, LayerCollectionListener, TreeExpansionListener,
+    ComponentListener {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 5689047685537359038L;
+
+    /**
+     * Useful for debug the problems during the implementation.
+     */
+    private static Logger logger = LoggerFactory.getLogger(TOC.class);
+
+    private MapContext mapContext;
+
+    private DnDJTree m_Tree;
+
+    private DefaultTreeModel m_TreeModel;
+
+    private DefaultMutableTreeNode m_Root;
+
+    private TOCRenderer m_TocRenderer;
+
+    private JScrollPane m_Scroller;
+
+    // private ArrayList m_Listeners;
+    private Map<String, Boolean> m_ItemsExpanded =
+        new HashMap<String, Boolean>();
+
+    private NodeSelectionListener nodeSelectionListener = null;
+
+    /**
+     * Crea un nuevo TOC.
+     */
+    public TOC() {
+        this.setName("TOC");
+        this.setLayout(new BorderLayout());
+        this.setMinimumSize(new Dimension(100, 80));
+        this.setPreferredSize(new Dimension(100, 80));
+
+        // Construct the tree.
+        m_Root = new DefaultMutableTreeNode(java.lang.Object.class);
+        m_TreeModel = new DefaultTreeModel(m_Root);
+        m_Tree = new DnDJTree(m_TreeModel);
+
+        m_TocRenderer = new TOCRenderer();
+        m_Tree.setCellRenderer(m_TocRenderer);
+
+        m_Tree.setRootVisible(false);
+
+        // m_Tree.setExpandsSelectedPaths(true);
+        // m_Tree.setAutoscrolls(true);
+        m_Tree.setShowsRootHandles(true);
+
+        // Posibilidad de seleccionar de forma aleatoria nodos de la leyenda.
+        m_Tree.getSelectionModel().setSelectionMode(
+            TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
+        nodeSelectionListener = new NodeSelectionListener(m_Tree);
+        m_Tree.addMouseListener(nodeSelectionListener);
+        // m_Tree.setBackground(UIManager.getColor("Button.background"));
+        // m_Tree.setBorder(BorderFactory.createEtchedBorder());
+
+        this.addComponentListener(this);
+
+        m_Tree.addTreeExpansionListener(this);
+
+        m_Tree.addOrderListener(this);
+
+        m_Tree.setRowHeight(0); // Para que lo determine el renderer
+
+        m_Scroller = new JScrollPane(m_Tree);
+        m_Scroller.setBorder(BorderFactory.createEmptyBorder());
+
+        // scrollPane.setPreferredSize(new Dimension(80,80));
+        // Add everything to this panel.
+        /*
+         * GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c =
+         * new GridBagConstraints(); setLayout(gridbag); c.fill =
+         * GridBagConstraints.BOTH; c.weightx = 1.0;
+         * gridbag.setConstraints(check,c);
+         */
+        add(m_Scroller); // , BorderLayout.WEST);
+
+        // refresh();
+    }
+
+    /**
+     * Elimina los listeners que actuan sobre el TOC, lo �nico que deja hacer es
+     * desplegar la leyenda de las capas.
+     */
+    public void removeListeners() {
+        m_Tree.removeMouseListener(nodeSelectionListener);
+        m_Tree.invalidateListeners();
+    }
+
+    /**
+     * Inserta el FMap.
+     * 
+     * @param mc
+     *            FMap.
+     */
+    public void setMapContext(MapContext mc) {
+        mapContext = mc;
+        mapContext.addAtomicEventListener(new AtomicEventListener() {
+
+            /**
+             * @see org.gvsig.fmap.mapcontext.events.listeners.AtomicEventListener#atomicEvent(org.gvsig.fmap.mapcontext.events.AtomicEvent)
+             */
+            public void atomicEvent(final AtomicEvent e) {
+                if (!SwingUtilities.isEventDispatchThread()) {
+                    SwingUtilities.invokeLater(new Runnable() {
+
+                        public void run() {
+                            atomicEvent(e);
+                        }
+                    });
+                    return;
+                }
+
+                if ((e.getLayerCollectionEvents().length > 0)
+                    || (e.getLegendEvents().length > 0)) {
+                    refresh();
+                }
+
+                if (e.getLayerEvents().length > 0) {
+                    repaint();
+                }
+
+                if (e.getExtentEvents().length > 0) {
+                    repaint();
+                }
+                LayerCollectionEvent[] events = e.getLayerCollectionEvents();
+                for( int i=0; i<events.length ; i++ ) {
+                   if( events[i].getEventType() == 0 ) { // LayerCollectionEvent.LAYER_ADDED �? is private
+                       if (PluginServices.getMainFrame() != null) {
+                           PluginServices.getMainFrame().enableControls();
+                       }
+                   }
+                }
+            }
+        });
+
+        refresh();
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    private void setExpandedNodes(DefaultMutableTreeNode node) {
+        // int i = 0;
+        // Las claves sobrantes de m_ItemsExpanded (provocadas
+        // por layerRemove, se quitan en el evento layerRemoved
+        // de este TOC
+        DefaultMutableTreeNode n;
+        @SuppressWarnings("rawtypes")
+        Enumeration enumeration = node.children();
+
+        while (enumeration.hasMoreElements()) {
+            n = (DefaultMutableTreeNode) enumeration.nextElement();
+            if (n.getChildCount() > 0) {
+                setExpandedNodes(n);
+            }
+            TreePath path = new TreePath(m_TreeModel.getPathToRoot(n));
+            ITocItem item = (ITocItem) n.getUserObject();
+            Boolean b = (Boolean) m_ItemsExpanded.get(item.getLabel());
+
+            if (b == null) // No estaba en el hash todav�a: valor por defecto
+            {
+                m_Tree.expandPath(path);
+
+                return;
+            }
+
+            if (b.booleanValue()) {
+                m_Tree.expandPath(path);
+            } else {
+                m_Tree.collapsePath(path);
+            }
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.iver.cit.opensig.gui.IToc#refresh()
+     */
+    public void refresh() {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+
+                public void run() {
+                    refresh();
+                }
+            });
+            return;
+        }
+        LayerCollection theLayers = mapContext.getLayers();
+        m_Root.removeAllChildren();
+        m_Root.setAllowsChildren(true);
+        doRefresh(theLayers, m_Root);
+
+        m_TreeModel.reload();
+
+        setExpandedNodes(m_Root);
+    }
+
+    private void doRefresh(LayerCollection theLayers,
+        DefaultMutableTreeNode parentNode) {
+        int width = m_Tree.getWidth();
+        if (width == 0) {
+            width = 300;
+        }
+        Dimension sizeLeaf = new Dimension(width, 15);
+        // Get the tree font height
+        Font font = m_Tree.getFont();
+        FontMetrics metrics = this.getFontMetrics(font);
+        Dimension sizeBranch = new Dimension(width, metrics.getHeight() + 4);
+
+        for (int i = theLayers.getLayersCount() - 1; i >= 0; i--) {
+            FLayer lyr = theLayers.getLayer(i);
+            if (!lyr.isInTOC()) {
+                continue;
+            }
+            TocItemBranch elTema = new TocItemBranch(lyr);
+            elTema.setSize(sizeBranch);
+
+            DefaultMutableTreeNode nodeLayer =
+                new DefaultMutableTreeNode(elTema);
+
+            m_TreeModel.insertNodeInto(nodeLayer, parentNode,
+                parentNode.getChildCount());
+
+            if (lyr instanceof LayerCollection) {
+                LayerCollection group = (LayerCollection) lyr;
+                doRefresh(group, nodeLayer);
+            } else {
+                if (lyr instanceof Classifiable) {// && !(lyr instanceof
+                                                  // FLyrAnnotation)) {
+
+                    Classifiable aux = (Classifiable) lyr;
+                    ILegend legendInfo = aux.getLegend();
+
+                    try {
+                        if (legendInfo instanceof IClassifiedLegend) {
+                            IClassifiedLegend cl =
+                                (IClassifiedLegend) legendInfo;
+                            String[] descriptions = cl.getDescriptions();
+                            ISymbol[] symbols = cl.getSymbols();
+
+                            for (int j = 0; j < descriptions.length; j++) {
+                                TocItemLeaf itemLeaf;
+                                itemLeaf =
+                                    new TocItemLeaf(symbols[j],
+                                        descriptions[j], aux.getShapeType());
+                                itemLeaf.setSize(sizeLeaf);
+
+                                DefaultMutableTreeNode nodeValue =
+                                    new DefaultMutableTreeNode(itemLeaf);
+                                m_TreeModel.insertNodeInto(nodeValue,
+                                    nodeLayer, nodeLayer.getChildCount());
+
+                            }
+                        }
+
+                        if (legendInfo instanceof ISingleSymbolLegend
+                            && (legendInfo.getDefaultSymbol() != null)) {
+                            TocItemLeaf itemLeaf;
+                            itemLeaf =
+                                new TocItemLeaf(legendInfo.getDefaultSymbol(),
+                                    legendInfo.getDefaultSymbol()
+                                        .getDescription(), aux.getShapeType());
+                            itemLeaf.setSize(sizeLeaf);
+
+                            DefaultMutableTreeNode nodeValue =
+                                new DefaultMutableTreeNode(itemLeaf);
+                            m_TreeModel.insertNodeInto(nodeValue, nodeLayer,
+                                nodeLayer.getChildCount());
+                        }
+                    } catch (ReadException e) {
+                        logger.error(MessageFormat.format(
+                            "Can't add leyend of layer {0} to the TOC.", lyr),
+                            e);
+                    }
+                } else
+                    if (lyr instanceof IHasImageLegend) {
+                        TocItemLeaf itemLeaf;
+                        IHasImageLegend aux = (IHasImageLegend) lyr;
+                        Image image = aux.getImageLegend();
+
+                        if (image != null) {
+                            itemLeaf = new TocItemLeaf();
+                            itemLeaf.setImageLegend(image, "", new Dimension(
+                                image.getWidth(null), image.getHeight(null)));// new
+                                                                              // Dimension(150,200));
+
+                            DefaultMutableTreeNode nodeValue =
+                                new DefaultMutableTreeNode(itemLeaf);
+                            m_TreeModel.insertNodeInto(nodeValue, nodeLayer,
+                                nodeLayer.getChildCount());
+                        }
+                    }
+            } // if instanceof layers
+        }
+    }
+
+    /**
+     * @see com.iver.cit.opensig.gui.toc.ITocOrderListener#orderChanged(int,
+     *      int)
+     */
+    public void orderChanged(int oldPos, int newPos, FLayers lpd) {
+        try {
+            lpd.moveTo(oldPos, newPos);
+        } catch (CancelationException e) {
+            logger.error("Can't change order of layers in TOC", e);
+        }
+        mapContext.invalidate();
+    }
+
+    public void parentChanged(FLayers lpo, FLayers lpd, FLayer ls) {
+        lpo.move(ls, lpd);
+        mapContext.invalidate();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.event.ComponentListener#componentHidden(java.awt.event.
+     * ComponentEvent)
+     */
+    public void componentHidden(ComponentEvent e) {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * java.awt.event.ComponentListener#componentMoved(java.awt.event.ComponentEvent
+     * )
+     */
+    public void componentMoved(ComponentEvent e) {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.awt.event.ComponentListener#componentResized(java.awt.event.
+     * ComponentEvent)
+     */
+    public void componentResized(ComponentEvent e) {
+        DefaultMutableTreeNode n;
+        @SuppressWarnings("rawtypes")
+        Enumeration enumeration = m_Root.children();
+
+        while (enumeration.hasMoreElements()) {
+            n = (DefaultMutableTreeNode) enumeration.nextElement();
+
+            if (n.getUserObject() instanceof TocItemBranch) {
+                ITocItem item = (ITocItem) n.getUserObject();
+                Dimension szAnt = item.getSize();
+                item.setSize(new Dimension(this.getWidth() - 40, szAnt.height));
+            }
+
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * java.awt.event.ComponentListener#componentShown(java.awt.event.ComponentEvent
+     * )
+     */
+    public void componentShown(ComponentEvent e) {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerListener#legendChanged(com.iver.cit
+     * .gvsig.fmap.rendering.LegendChangedEvent)
+     */
+    public void legendChanged(final LegendChangedEvent e) {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+
+                public void run() {
+                    legendChanged(e);
+                }
+            });
+            return;
+        }
+        refresh();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#layerAdded(com
+     * .iver.cit.gvsig.fmap.layers.LayerCollectionEvent)
+     */
+    public void layerAdded(final LayerCollectionEvent e) {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+
+                public void run() {
+                    layerAdded(e);
+                }
+            });
+            return;
+        }
+        refresh();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#layerMoved(com
+     * .iver.cit.gvsig.fmap.layers.LayerPositionEvent)
+     */
+    public void layerMoved(final LayerPositionEvent e) {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+
+                public void run() {
+                    layerMoved(e);
+                }
+            });
+            return;
+        }
+        refresh();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#layerRemoved(com
+     * .iver.cit.gvsig.fmap.layers.LayerCollectionEvent)
+     */
+    public void layerRemoved(final LayerCollectionEvent e) {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+
+                public void run() {
+                    layerRemoved(e);
+                }
+            });
+            return;
+        }
+        m_ItemsExpanded.remove(e.getAffectedLayer().getName());
+        refresh();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#layerAdding(com
+     * .iver.cit.gvsig.fmap.layers.LayerCollectionEvent)
+     */
+    public void layerAdding(LayerCollectionEvent e) throws CancelationException {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#layerMoving(com
+     * .iver.cit.gvsig.fmap.layers.LayerPositionEvent)
+     */
+    public void layerMoving(LayerPositionEvent e) throws CancelationException {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#layerRemoving(
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionEvent)
+     */
+    public void layerRemoving(LayerCollectionEvent e)
+        throws CancelationException {
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#activationChanged
+     * (com.iver.cit.gvsig.fmap.layers.LayerCollectionEvent)
+     */
+    public void activationChanged(LayerCollectionEvent e)
+        throws CancelationException {
+        repaint();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * com.iver.cit.gvsig.fmap.layers.LayerCollectionListener#visibilityChanged
+     * (com.iver.cit.gvsig.fmap.layers.LayerCollectionEvent)
+     */
+    public void visibilityChanged(final LayerCollectionEvent e)
+        throws CancelationException {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+
+                public void run() {
+                    visibilityChanged(e);
+                }
+            });
+            return;
+        }
+        repaint();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * javax.swing.event.TreeExpansionListener#treeCollapsed(javax.swing.event
+     * .TreeExpansionEvent)
+     */
+    public void treeCollapsed(TreeExpansionEvent event) {
+        TreePath path = event.getPath();
+        DefaultMutableTreeNode n =
+            (DefaultMutableTreeNode) path.getLastPathComponent();
+
+        if (n.getUserObject() instanceof ITocItem) {
+            ITocItem item = (ITocItem) n.getUserObject();
+            Boolean b = Boolean.FALSE;
+
+            m_ItemsExpanded.put(item.getLabel(), b);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * javax.swing.event.TreeExpansionListener#treeExpanded(javax.swing.event
+     * .TreeExpansionEvent)
+     */
+    public void treeExpanded(TreeExpansionEvent event) {
+        TreePath path = event.getPath();
+        DefaultMutableTreeNode n =
+            (DefaultMutableTreeNode) path.getLastPathComponent();
+
+        if (n.getUserObject() instanceof ITocItem) {
+            ITocItem item = (ITocItem) n.getUserObject();
+            Boolean b = Boolean.TRUE;
+
+            m_ItemsExpanded.put(item.getLabel(), b);
+        }
+    }
+
+    /**
+     * Obtiene el JScrollPane que contiene el TOC
+     * 
+     * @return JScrollPane que contiene el TOC
+     */
+    public JScrollPane getJScrollPane() {
+        return this.m_Scroller;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    public DnDJTree getTree() {
+        return m_Tree;
+    }
+
+    /**
+     * Clase Listener que reacciona al pulsar sobre el checkbox de un nodo y
+     * crea un popupmenu al pulsar el bot�n derecho.
+     */
+    class NodeSelectionListener extends MouseAdapter implements ActionListener {
+
+        JTree tree;
+
+        JDialog dlg;
+
+        JColorChooser colorChooser;
+
+        FPopupMenu popmenu = null;
+
+        DefaultMutableTreeNode node;
+
+        /**
+         * Crea un nuevo NodeSelectionListener.
+         * 
+         * @param tree
+         *            DOCUMENT ME!
+         */
+        NodeSelectionListener(JTree tree) {
+            this.tree = tree;
+        }
+
+        /**
+         * DOCUMENT ME!
+         * 
+         * @param e
+         *            DOCUMENT ME!
+         */
+        public void mouseClicked(MouseEvent e) {
+            int x = e.getX();
+            int y = e.getY();
+            int row = tree.getRowForLocation(x, y);
+            TreePath path = tree.getPathForRow(row);
+            LayerCollection layers = mapContext.getLayers();
+
+            if (path != null) {
+                if (e.getClickCount() == 1) {
+                    // this fixes a bug when double-clicking. JTree by default
+                    // expands the tree when double-clicking, so we capture a
+                    // different node in the second click than in the first
+                    node = (DefaultMutableTreeNode) path.getLastPathComponent();
+                }
+
+                if (node != null
+                    && node.getUserObject() instanceof TocItemBranch) {
+                    // double click with left button ON A BRANCH/NODE (layer)
+                    if (e.getClickCount() >= 2
+                        && e.getButton() == MouseEvent.BUTTON1) {
+                        e.consume();
+                        PluginServices.getMDIManager().setWaitCursor();
+                        try {
+                            TocItemBranch leaf =
+                                (TocItemBranch) node.getUserObject();
+
+                            IContextMenuAction action =
+                                leaf.getDoubleClickAction();
+                            if (action != null) {
+                                /*
+                                 * if there is an action associated with the
+                                 * double-clicked element it will be fired for
+                                 * it and FOR ALL OTHER COMPATIBLES THAT HAVE
+                                 * BEEN ACTIVATED.
+                                 */
+                                ArrayList<FLayer> targetLayers =
+                                    new ArrayList<FLayer>();
+
+                                TocItemBranch owner =
+                                    (TocItemBranch) node.getUserObject();
+
+                                FLayer masterLayer = owner.getLayer();
+                                targetLayers.add(masterLayer);
+                                FLayer[] actives =
+                                    mapContext.getLayers().getActives();
+                                for (int i = 0; i < actives.length; i++) {
+                                    if (actives[i].getClass().equals(
+                                        masterLayer.getClass())) {
+                                        if (actives[i] instanceof FLyrVect) {
+                                            FLyrVect vectorLayer =
+                                                (FLyrVect) actives[i];
+                                            FLyrVect vectorMaster =
+                                                (FLyrVect) masterLayer;
+                                            if (vectorLayer.getShapeType() == vectorMaster
+                                                .getShapeType()) {
+                                                targetLayers.add(vectorLayer);
+                                            } else {
+                                                vectorLayer.setActive(false);
+                                            }
+                                        }
+                                        // TODO for the rest of layer types
+                                        // (i.e. FLyrRaster)
+                                    } else {
+                                        actives[i].setActive(false);
+                                    }
+                                }
+                                action.execute(leaf,
+                                    targetLayers.toArray(new FLayer[0]));
+                            }
+                        } catch (Exception ex) {
+                            NotificationManager.addError(ex);
+                        } finally {
+                            PluginServices.getMDIManager().restoreCursor();
+                        }
+                        return;
+                    }
+
+                    TocItemBranch elTema = (TocItemBranch) node.getUserObject();
+                    FLayer lyr = elTema.getLayer();
+                    lyr.getMapContext().beginAtomicEvent();
+
+                    if (((e.getModifiers() & InputEvent.SHIFT_MASK) != 0)
+                        && (e.getButton() == MouseEvent.BUTTON1)) {
+                        FLayer[] activeLayers = layers.getActives();
+                        if (activeLayers.length > 0) {
+                            selectInterval(layers, lyr);
+                        } else {
+                            updateActive(lyr, !lyr.isActive());
+                        }
+
+                    } else {
+                        if (!((e.getModifiers() & InputEvent.CTRL_MASK) != 0)
+                            && (e.getButton() == MouseEvent.BUTTON1)) {
+                            layers.setAllActives(false);
+                        }
+                        if (e.getButton() == MouseEvent.BUTTON1) {
+                            // lyr.setActive(true);
+                            updateActive(lyr, !lyr.isActive());
+                        }
+                    }
+                    // Si pertenece a un grupo, lo ponemos activo tambi�n.
+                    // FLayer parentLayer = lyr.getParentLayer();
+
+                    /*
+                     * if (parentLayer != null) { parentLayer.setActive(true); }
+                     */
+                    Point layerNodeLocation =
+                        tree.getUI().getPathBounds(tree, path).getLocation();
+
+                    // Rect�ngulo que representa el checkbox
+                    Rectangle checkBoxBounds =
+                        m_TocRenderer.getCheckBoxBounds();
+                    checkBoxBounds.translate((int) layerNodeLocation.getX(),
+                        (int) layerNodeLocation.getY());
+
+                    if (checkBoxBounds.contains(e.getPoint())) {
+                        updateVisible(lyr);
+                    }
+
+                    // }
+                    if (e.getButton() == MouseEvent.BUTTON3) {
+                        // Boton derecho sobre un nodo del arbol
+                        // if ((e.getModifiers() & InputEvent.META_MASK) != 0) {
+                        popmenu = new FPopupMenu(mapContext, node);
+                        tree.add(popmenu);
+
+                        popmenu.show(e.getComponent(), e.getX(), e.getY());
+
+                        // }
+                    }
+
+                    lyr.getMapContext().endAtomicEvent();
+                }
+
+                if (node != null && node.getUserObject() instanceof TocItemLeaf) {
+                    // double click with left button ON A LEAF (ISymbol)
+                    if (e.getClickCount() >= 2
+                        && e.getButton() == MouseEvent.BUTTON1) {
+                        e.consume();
+
+                        PluginServices.getMDIManager().setWaitCursor();
+                        try {
+                            TocItemLeaf leaf =
+                                (TocItemLeaf) node.getUserObject();
+                            IContextMenuAction action =
+                                leaf.getDoubleClickAction();
+                            if (action != null) {
+                                /*
+                                 * if there is an action associated with the
+                                 * double-clicked element it will be fired for
+                                 * it and FOR ALL OTHER COMPATIBLES THAT HAVE
+                                 * BEEN ACTIVATED.
+                                 */
+                                ArrayList<FLayer> targetLayers =
+                                    new ArrayList<FLayer>();
+
+                                TocItemBranch owner =
+                                    (TocItemBranch) ((DefaultMutableTreeNode) node
+                                        .getParent()).getUserObject();
+
+                                FLayer masterLayer = owner.getLayer();
+                                targetLayers.add(masterLayer);
+                                FLayer[] actives =
+                                    mapContext.getLayers().getActives();
+                                for (int i = 0; i < actives.length; i++) {
+                                    if (actives[i].getClass().equals(
+                                        masterLayer.getClass())) {
+                                        if (actives[i] instanceof FLyrVect) {
+                                            FLyrVect vectorLayer =
+                                                (FLyrVect) actives[i];
+                                            FLyrVect vectorMaster =
+                                                (FLyrVect) masterLayer;
+                                            int masterLayerShapetypeOF_THE_LEGEND =
+                                                ((IVectorLegend) vectorMaster
+                                                    .getLegend())
+                                                    .getShapeType();
+                                            int anotherVectorLayerShapetypeOF_THE_LEGEND =
+                                                ((IVectorLegend) vectorLayer
+                                                    .getLegend())
+                                                    .getShapeType();
+                                            if (masterLayerShapetypeOF_THE_LEGEND == anotherVectorLayerShapetypeOF_THE_LEGEND) {
+                                                targetLayers.add(vectorLayer);
+                                            } else {
+                                                vectorLayer.setActive(false);
+                                            }
+                                        }
+                                        // TODO for the rest of layer types
+                                        // (i.e. FLyrRaster)
+                                    } else {
+                                        actives[i].setActive(false);
+                                    }
+                                }
+                                action.execute(leaf,
+                                    targetLayers.toArray(new FLayer[0]));
+                            }
+                        } catch (Exception ex) {
+                            NotificationManager.addError(ex);
+                        } finally {
+                            PluginServices.getMDIManager().restoreCursor();
+                        }
+                        return;
+                    }
+
+                    // Boton derecho sobre un Simbolo
+                    // TocItemLeaf auxLeaf = (TocItemLeaf) node.getUserObject();
+                    // FSymbol theSym = auxLeaf.getSymbol();
+                    if ((e.getModifiers() & InputEvent.META_MASK) != 0) {
+                        popmenu = new FPopupMenu(mapContext, node);
+                        tree.add(popmenu);
+                        popmenu.show(e.getComponent(), e.getX(), e.getY());
+                    }
+                }
+
+                ((DefaultTreeModel) tree.getModel()).nodeChanged(node);
+
+                if (row == 0) {
+                    tree.revalidate();
+                    tree.repaint();
+                }
+
+                if (PluginServices.getMainFrame() != null) {
+                    PluginServices.getMainFrame().enableControls();
+                }
+            } else {
+                if (e.getButton() == MouseEvent.BUTTON3) {
+                    popmenu = new FPopupMenu(mapContext, null);
+                    tree.add(popmenu);
+                    popmenu.show(e.getComponent(), e.getX(), e.getY());
+                }
+
+            }
+        }
+
+        private void selectInterval(LayerCollection layers, FLayer lyr) {
+            FLayer[] activeLayers = layers.getActives();
+            // if (activeLayers[0].getParentLayer() instanceof FLayers &&
+            // activeLayers[0].getParentLayer().getParentLayer()!=null) {
+            // selectInterval((LayerCollection)activeLayers[0].getParentLayer(),lyr);
+            // }
+            for (int j = 0; j < layers.getLayersCount(); j++) {
+                FLayer layerAux = layers.getLayer(j);
+                // Si se cumple esta condici�n es porque la primera capa que nos
+                // encontramos en el TOC es la que estaba activa
+                if (activeLayers[0].equals(layerAux)) {
+                    boolean isSelected = false;
+                    for (int i = 0; i < layers.getLayersCount(); i++) {
+                        FLayer layer = layers.getLayer(i);
+                        if (!isSelected) {
+                            isSelected = layer.isActive();
+                        } else {
+                            updateActive(layer, true);
+                            if (lyr.equals(layer)) {
+                                isSelected = false;
+                            }
+                        }
+                    }
+                    break;
+                } else
+                    // Si se cumple esta condici�n es porque la primera capa que
+                    // nos
+                    // encontramos en el TOC es la que acabamos de seleccionar
+                    if (lyr.equals(layerAux)) {
+                        boolean isSelected = false;
+                        for (int i = layers.getLayersCount() - 1; i >= 0; i--) {
+                            FLayer layer = layers.getLayer(i);
+                            if (!isSelected) {
+                                isSelected = layer.isActive();
+                            } else {
+                                updateActive(layer, true);
+                                if (lyr.equals(layer)) {
+                                    isSelected = false;
+                                }
+                            }
+                        }
+                        break;
+                    }
+            }
+
+        }
+
+        /**
+         * DOCUMENT ME!
+         * 
+         * @param lyr
+         *            DOCUMENT ME!
+         * @param active
+         *            DOCUMENT ME!
+         */
+        private void updateActive(FLayer lyr, boolean active) {
+            lyr.setActive(active);
+            updateActiveChild(lyr);
+        }
+
+        /**
+         * DOCUMENT ME!
+         * 
+         * @param lyr
+         *            DOCUMENT ME!
+         */
+        private void updateActiveChild(FLayer lyr) {
+            if (lyr instanceof FLayers) { // Es la raiz de una rama o
+                // cualquier nodo intermedio.
+
+                FLayers layergroup = (FLayers) lyr;
+
+                for (int i = 0; i < layergroup.getLayersCount(); i++) {
+                    layergroup.getLayer(i).setActive(lyr.isActive());
+                    updateActiveChild(layergroup.getLayer(i));
+                }
+            }
+        }
+
+        /**
+         * Actualiza la visibilidad de la capas.
+         * 
+         * @param lyr
+         *            Capa sobre la que se est� clickando.
+         */
+        private void updateVisible(FLayer lyr) {
+            if (lyr.isAvailable()) {
+                lyr.setVisible(!lyr.visibleRequired());
+                updateVisibleChild(lyr);
+                updateVisibleParent(lyr);
+            }
+        }
+
+        /**
+         * Actualiza de forma recursiva la visibilidad de los hijos de la capa
+         * que se pasa como par�metro.
+         * 
+         * @param lyr
+         *            Capa a actualizar.
+         */
+        private void updateVisibleChild(FLayer lyr) {
+            if (lyr instanceof FLayers) { // Es la raiz de una rama o
+                                          // cualquier nodo intermedio.
+
+                FLayers layergroup = (FLayers) lyr;
+
+                for (int i = 0; i < layergroup.getLayersCount(); i++) {
+                    layergroup.getLayer(i).setVisible(lyr.visibleRequired());
+                    updateVisibleChild(layergroup.getLayer(i));
+                }
+            }
+        }
+
+        /**
+         * Actualiza de forma recursiva la visibilidad del padre de la capa que
+         * se pasa como par�metro.
+         * 
+         * @param lyr
+         *            Capa a actualizar.
+         */
+        private void updateVisibleParent(FLayer lyr) {
+            FLayers parent = lyr.getParentLayer();
+
+            if (parent != null) {
+                boolean parentVisible = false;
+
+                for (int i = 0; i < parent.getLayersCount(); i++) {
+                    if (parent.getLayer(i).visibleRequired()) {
+                        parentVisible = true;
+                    }
+                }
+
+                parent.setVisible(parentVisible);
+                updateVisibleParent(parent);
+            }
+        }
+
+        /**
+         * DOCUMENT ME!
+         * 
+         * @param arg0
+         *            DOCUMENT ME!
+         */
+        public void actionPerformed(ActionEvent arg0) {
+        }
+
+        /**
+         * DOCUMENT ME!
+         * 
+         * @param arg0
+         *            DOCUMENT ME!
+         */
+        public void mouseReleased(MouseEvent arg0) {
+            super.mouseReleased(arg0);
+        }
+
+        /**
+         * DOCUMENT ME!
+         * 
+         * @param arg0
+         *            DOCUMENT ME!
+         */
+        public void mouseEntered(MouseEvent arg0) {
+            super.mouseEntered(arg0);
+        }
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/TOC.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/ChangeName.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/ChangeName.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/ChangeName.java	(revision 38262)
@@ -0,0 +1,222 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2012 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.app.project.documents.view.toc.gui;
+
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.gui.beans.AcceptCancelPanel;
+import org.gvsig.i18n.Messages;
+
+/**
+ * Di�logo para cambiar el nombre de una capa.
+ * 
+ * @author Vicente Caballero Navarro
+ * @author gvSIG Team
+ */
+public class ChangeName extends JPanel implements IWindow {
+
+    private static final long serialVersionUID = -1366865045507066336L;
+    private JLabel lblName = null;
+    private JTextField txtName = null;
+    private String name;
+    private AcceptCancelPanel jPanelAcceptCancel = null;
+    private boolean isAccepted = false;
+
+    /**
+     * This is the default constructor
+     * 
+     * @param layout
+     *            Referencia al Layout.
+     * @param fframe
+     *            Referencia al fframe de imagen.
+     */
+    public ChangeName(String n) {
+        super();
+        if (n == null) {
+            name = PluginServices.getText(this, "agrupacion");
+        } else {
+            name = n;
+        }
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        setLayout(new GridBagLayout());
+        setBorder(BorderFactory.createEmptyBorder(4, 5, 4, 5));
+
+        GridBagConstraints c = new GridBagConstraints();
+        c.insets = new Insets(2, 5, 2, 5);
+        c.gridy = -1;
+
+        c.anchor = GridBagConstraints.WEST;
+        c.weightx = 0.0d;
+        c.gridx = 0;
+        c.gridy++;
+        add(getLblName(), c);
+
+        c.fill = GridBagConstraints.HORIZONTAL;
+        c.weightx = 1.0d;
+        c.gridx = 1;
+        add(getTxtName(), c);
+
+        c.anchor = GridBagConstraints.EAST;
+        c.gridx = 0;
+        c.gridwidth = 2;
+        c.gridy++;
+        c.weightx = 1.0d;
+        add(getJPanelAcceptCancel(), c);
+    }
+
+    /**
+     * This method initializes lFichero
+     * 
+     * @return javax.swing.JLabel
+     */
+    private JLabel getLblName() {
+        if (lblName == null) {
+            lblName = new JLabel(Messages.getText("nombre"));
+        }
+
+        return lblName;
+    }
+
+    /**
+     * This method initializes tFichero
+     * 
+     * @return javax.swing.JTextField
+     */
+    private JTextField getTxtName() {
+        if (txtName == null) {
+            txtName = new JTextField(name, 20);
+            txtName.addKeyListener(new KeyListener() {
+
+                public void keyPressed(KeyEvent e) {
+                    if (e.getKeyCode() == KeyEvent.VK_ENTER) {
+                        acceptAction();
+                    } else
+                        if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
+                            cancelAction();
+                        }
+                }
+
+                public void keyReleased(KeyEvent e) {
+                    // Nothing to do
+                }
+
+                public void keyTyped(KeyEvent e) {
+                    // Nothing to do
+                }
+
+            });
+        }
+        return txtName;
+    }
+
+    /**
+     * Inserta el path al TFichero.
+     * 
+     * @param val
+     *            path del fichero.
+     */
+    public void setText(String val) {
+        getTxtName().setText(val);
+    }
+
+    public WindowInfo getWindowInfo() {
+        WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
+        m_viewinfo.setTitle(Messages.getText("cambio_nombre"));
+        Dimension dim = getPreferredSize();
+        m_viewinfo.setWidth(dim.width);
+        m_viewinfo.setHeight(dim.height);
+        return m_viewinfo;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * This method initializes jPanel1
+     * 
+     * @return javax.swing.JPanel
+     */
+    private AcceptCancelPanel getJPanelAcceptCancel() {
+        if (jPanelAcceptCancel == null) {
+            ActionListener okActionListener, cancelActionListener;
+            okActionListener = new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    acceptAction();
+                }
+            };
+            cancelActionListener = new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    cancelAction();
+                }
+            };
+            jPanelAcceptCancel =
+                new AcceptCancelPanel(okActionListener, cancelActionListener);
+        }
+        return jPanelAcceptCancel;
+    }
+
+    public boolean isAccepted() {
+        return isAccepted;
+    }
+
+    protected void acceptAction() {
+        name = getTxtName().getText();
+        isAccepted = true;
+        PluginServices.getMDIManager().closeWindow(ChangeName.this);
+
+    }
+
+    protected void cancelAction() {
+        isAccepted = false;
+        PluginServices.getMDIManager().closeWindow(ChangeName.this);
+
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.DIALOG_PROFILE;
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toc/gui/ChangeName.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/SelectImageListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/SelectImageListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/SelectImageListener.java	(revision 38262)
@@ -0,0 +1,144 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+*
+* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+*
+* For more information, contact:
+*
+*  Generalitat Valenciana
+*   Conselleria d'Infraestructures i Transport
+*   Av. Blasco Ib��ez, 50
+*   46010 VALENCIA
+*   SPAIN
+*
+*      +34 963862235
+*   gvsig@gva.es
+*      www.gvsig.gva.es
+*
+*    or
+*
+*   IVER T.I. S.A
+*   Salamanca 50
+*   46005 Valencia
+*   Spain
+*
+*   +34 963163400
+*   dac@iver.es
+*/
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.geom.Point2D;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.FLayers;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.SelectImageListenerImpl;
+import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent;
+
+
+
+/**
+ * <p>Listener to select the upper layer with raster data that has information in the associated <code>MapControl</code> object, down
+ *  the position selected by a single click of any button of the mouse.</p>
+ *
+ * <p>The layer selected will be set as <i>active</i>, and the available controls for managing the data will be updated, enabling and
+ *  disabling the necessary.</p>
+ *
+ * <p>The status of the other layers will be changed to <i>not active</i>.</p>
+ *
+ * @deprecated
+ * @author Nacho Brodin <brodin_ign@gva.es>
+ * 
+ * FIXME: Si esta deprecated deberiamos indicar que hemos de usar en su lugar.
+ * 
+ */
+public class SelectImageListener extends SelectImageListenerImpl {
+
+	//FLyrRaster 			layer = null;
+
+	/**
+	 * Extent of the layer selected.
+	 */
+	Envelope extentLayer = null;
+
+	/**
+	 * <p>Creates a new <code>SelectImageListener</code> object.</p>
+	 *
+	 * @param mapCtrl the <code>MapControl</code> where are stored the layers
+	 */
+	public SelectImageListener(MapControl mapCtrl) {
+		super(mapCtrl);
+	}
+
+	/*
+	 *  (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void point(PointEvent event) {
+		super.point(event);
+
+		Point2D pointSelect = event.getPoint();
+
+		if (PluginServices.getMainFrame() != null) {
+			PluginServices.getMainFrame().enableControls();
+		}
+
+		ViewPort vp = mapCtrl.getMapContext().getViewPort();
+
+		wcPoint = vp.toMapPoint((int)pointSelect.getX(), (int)pointSelect.getY());
+
+		FLayers layers = mapCtrl.getMapContext().getLayers();
+		for(int i=0;i<layers.getLayersCount();i++) {
+			layers.getLayer(i).setActive(false);
+		}
+
+		for(int i=layers.getLayersCount()-1;i>=0;i--){
+			if (select(layers.getLayer(i))) {
+				break;
+			}
+		}
+	}
+
+	/**
+	 * Determines if the <code>layer</code> is selected at a position starting by the end.
+	 *
+	 * @param layer kind of layer
+	 * @param pos number of positions starting by the end
+	 *
+	 * @return <code>true</code> if the <code>layer</code> is selected at a position starting by the end, otherwise <code>false</code>
+	 */
+	private boolean select(FLayer layer){
+		if (layer instanceof FLayers){
+			FLayers laux=(FLayers)layer;
+			for (int j=laux.getLayersCount()-1;j>=0;j--){
+				if (select(laux.getLayer(j))){
+					return true;
+				}
+			}
+		}else{
+			try{
+				extentLayer = layer.getFullEnvelope();
+			}catch(ReadException exc){
+				exc.printStackTrace();
+			}
+		}
+		return false;
+	}
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/SelectImageListener.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/CircleMeasureListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/CircleMeasureListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/CircleMeasureListener.java	(revision 38262)
@@ -0,0 +1,145 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+
+import java.awt.Image;
+import java.awt.geom.Point2D;
+import java.text.NumberFormat;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.Events.MeasureEvent;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.CircleListener;
+
+
+
+/**
+ * <p>Listener for tools that measure using a circular area, displaying
+ *   its radius at the status bar of the application's main frame.</p>
+ *
+ * @see CircleListener
+ *
+ * @author Laura
+ */
+public class CircleMeasureListener implements CircleListener {
+	/**
+	 * The image to display when the cursor is active.
+	 */
+	private final Image img = PluginServices.getIconTheme().get("cursor-query-distance").getImage();
+
+	/**
+	 * The cursor used to work with this tool listener.
+	 *
+	 * @see #getCursor()
+	 */
+//	private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(img,
+//			new Point(16, 16), "");
+
+	/**
+	 * Reference to the <code>MapControl</code> object that uses.
+	 */
+	private MapControl mapCtrl;
+
+	/**
+	 * <p>Creates a new listener for measure circular areas.</p>
+	 *
+	 * @param mc the <code>MapControl</code> object where the measures are made
+	 */
+	public CircleMeasureListener(MapControl mc) {
+		this.mapCtrl = mc;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.CircleListener#circle(com.iver.cit.gvsig.fmap.tools.Events.MeasureEvent)
+	 */
+	public void circle(MeasureEvent event) throws BehaviorException {
+		double dist = 0;
+		double distAll = 0;
+
+		ViewPort vp = mapCtrl.getMapContext().getViewPort();
+
+		for (int i = 0; i < (event.getXs().length - 1); i++) {
+			dist = 0;
+
+			Point2D p = new Point2D.Double(event.getXs()[i].doubleValue(),
+					event.getYs()[i].doubleValue());
+			Point2D p2 = new Point2D.Double(event.getXs()[i + 1].doubleValue(),
+					event.getYs()[i + 1].doubleValue());
+
+			///dist = vp.toMapDistance((int) p.distance(p2));
+			dist = vp.distanceWorld(p, p2);
+			distAll += dist;
+		}
+		//System.out.println("Distancia = " + dist + " Distancia Total = " +
+		//	(distAll));
+		NumberFormat nf = NumberFormat.getInstance();
+        nf.setMaximumFractionDigits(2);
+        if (PluginServices.getMainFrame() != null)
+        {
+        	double[] trans2Meter=MapContext.getDistanceTrans2Meter();
+            PluginServices.getMainFrame().getStatusBar().setMessage("4",
+    			"Dist:" + nf.format(dist/trans2Meter[mapCtrl.getViewPort().getDistanceUnits()]) + "");
+    		PluginServices.getMainFrame().getStatusBar().setMessage("5",
+    			"Total:" + nf.format(distAll/trans2Meter[mapCtrl.getViewPort().getDistanceUnits()]) + "");
+        }
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getImageCursor()
+	 */
+	public Image getImageCursor() {
+		return img;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()
+	 */
+	public boolean cancelDrawing() {
+		return false;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/CircleMeasureListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PolygonSelectListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PolygonSelectListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PolygonSelectListener.java	(revision 38262)
@@ -0,0 +1,77 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.PolygonSelectionListener;
+import org.gvsig.fmap.mapcontrol.tools.Events.MeasureEvent;
+
+
+
+/**
+ * <p>Inherits {@link PolygonSelectionListener PolygonSelectionListener} enabling/disabling special
+ *  controls for managing the data selected.</p>
+ *
+ * @see PolygonSelectionListener
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class PolygonSelectListener extends PolygonSelectionListener {
+	/**
+ 	 * <p>Creates a new <code>PolygonSelectListener</code> object.</p>
+	 *
+	 * @param mapCtrl the <code>MapControl</code> where is drawn the polyline
+	 */
+	public PolygonSelectListener(MapControl mapCtrl) {
+		super(mapCtrl);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.PolygonSelectionListener#polylineFinished(com.iver.cit.gvsig.fmap.tools.Events.MeasureEvent)
+	 */
+	public void polylineFinished(MeasureEvent event) throws BehaviorException {
+		super.polylineFinished(event);
+		PluginServices.getMainFrame().enableControls();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PolygonSelectListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/Snapping.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/Snapping.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/Snapping.java	(revision 38262)
@@ -0,0 +1,47 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping;
+
+
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.CentralPointSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.FinalPointSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.IntersectionPointSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.MediumPointSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.NearestPointSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.PerpendicularPointSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.PixelSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.QuadrantPointSnapper;
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.TangentPointSnapper;
+import org.gvsig.fmap.mapcontrol.MapControlLocator;
+import org.gvsig.fmap.mapcontrol.MapControlManager;
+import org.gvsig.fmap.mapcontrol.impl.DefaultMapControlLibrary;
+import org.gvsig.fmap.mapcontrol.impl.DefaultMapControlManager;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.extensionpoint.ExtensionPoint;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class Snapping {
+    /**
+     * DOCUMENT ME!
+     */
+    public static void register() {    	//TODO delete when the system to load libraries is finished
+    	if (MapControlLocator.getMapControlManager() == null){
+    		MapControlLocator.registerMapControlManager(DefaultMapControlManager.class);
+    	}
+    	MapControlManager mapControlManager = MapControlLocator.getMapControlManager();
+    	    	
+    	mapControlManager.registerSnapper("FinalPointSnapper", FinalPointSnapper.class);
+    	mapControlManager.registerSnapper("NearestPointSnapper", NearestPointSnapper.class);
+    	mapControlManager.registerSnapper("PixelSnapper", PixelSnapper.class);
+    	mapControlManager.registerSnapper("CentralPointSnapper", CentralPointSnapper.class);
+    	mapControlManager.registerSnapper("QuadrantPointSnapper", QuadrantPointSnapper.class);
+//		mapControlManager.registerSnapper("InsertPointSnapper", new InsertPointSnapper.class);
+    	mapControlManager.registerSnapper("IntersectionPointSnapper", IntersectionPointSnapper.class);
+    	mapControlManager.registerSnapper("MediumPointSnapper", MediumPointSnapper.class);
+    	mapControlManager.registerSnapper("PerpendicularPointSnapper", PerpendicularPointSnapper.class);
+    	mapControlManager.registerSnapper("TangentPointSnapper", TangentPointSnapper.class);
+    }
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/testDialog.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/testDialog.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/testDialog.java	(revision 38262)
@@ -0,0 +1,108 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners.snapping.gui;
+
+import java.util.ArrayList;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+import org.gvsig.app.project.documents.view.toolListeners.snapping.snappers.FinalPointSnapper;
+import org.gvsig.fmap.mapcontrol.MapControl;
+
+
+public class testDialog {
+	public static void main(String[] args) {
+
+		try {
+			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+		} catch (ClassNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (InstantiationException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (UnsupportedLookAndFeelException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		JDialog dlg = new JDialog();
+
+		ArrayList list = new ArrayList();
+		for (int i=0; i < 20; i++)
+			list.add(new FinalPointSnapper());
+		SnapConfig panel = new SnapConfig(new MapControl());
+		panel.setSnappers();
+		Action act = new AbstractAction(){
+			public void actionPerformed(java.awt.event.ActionEvent arg0) {
+				System.out.println("HOla");
+//				HashPrintRequestAttributeSet att = new HashPrintRequestAttributeSet();
+//
+//				PrinterJob job = PrinterJob.getPrinterJob();
+//				PageFormat defaulFormat = job.defaultPage();
+//				// PageFormat selectedFormat = job.pageDialog(defaulFormat);
+//				Paper paper = new Paper();
+//				paper.setSize(MediaSize.ISO.A5.getX(MediaSize.INCH),MediaSize.ISO.A5.getY(MediaSize.INCH));
+//				defaulFormat.setPaper(paper);
+//				job.defaultPage(defaulFormat);
+//				if (job.printDialog()) {
+//					// System.out.println(job.)
+//				}
+			};
+		};
+		JButton btnPrint = new JButton(act);
+
+		dlg.getContentPane().add(panel);
+		// dlg.getContentPane().add(btnPrint);
+		// dlg.getContentPane().setSize(panel.getSize());
+		dlg.pack();
+		dlg.show(true);
+	}
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/DefaultConfigurePanel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/DefaultConfigurePanel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/DefaultConfigurePanel.java	(revision 38262)
@@ -0,0 +1,105 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.gui;
+
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper;
+import org.gvsig.gui.beans.AcceptCancelPanel;
+
+
+public class DefaultConfigurePanel extends JPanel implements IWindow {
+	private ISnapper snapper;
+	private JLabel lblColor = null;
+	private JButton bColor = null;
+	private WindowInfo wi=null;
+	private AcceptCancelPanel acceptCancelPanel;
+	/**
+	 * This is the default constructor
+	 */
+	public DefaultConfigurePanel() {
+		super();
+		initialize();
+	}
+
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private void initialize() {
+		lblColor = new JLabel();
+		lblColor.setText("color");
+		this.setSize(269, 91);
+		this.add(lblColor, null);
+		this.add(getBColor(), null);
+		this.add(getPAcceptCancel(),null);
+	}
+	public void setSnapper(ISnapper snapper) {
+		this.snapper=snapper;
+		//((AbstractSnapper)this.snapper).setColor(Color.blue);
+	}
+
+	/**
+	 * This method initializes bColor
+	 *
+	 * @return javax.swing.JButton
+	 */
+	private JButton getBColor() {
+		if (bColor == null) {
+			bColor = new JButton();
+			bColor.setText("...");
+		}
+		return bColor;
+	}
+
+	protected AcceptCancelPanel getPAcceptCancel() {
+		if (acceptCancelPanel==null) {
+			ActionListener okAction = new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+
+					if (PluginServices.getMainFrame() == null) {
+                        ((JDialog) (getParent().getParent().getParent()
+                                .getParent())).dispose();
+                    } else {
+                        PluginServices.getMDIManager().closeWindow(DefaultConfigurePanel.this);
+                    }
+				}
+			};
+			ActionListener cancelAction = new java.awt.event.ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+                    if (PluginServices.getMainFrame() != null) {
+                        PluginServices.getMDIManager().closeWindow(DefaultConfigurePanel.this);
+                    } else {
+                        ((JDialog) (getParent().getParent().getParent()
+                                        .getParent())).dispose();
+                    }
+				}
+			};
+			acceptCancelPanel=new AcceptCancelPanel(okAction,cancelAction);
+
+		}
+		return acceptCancelPanel;
+	}
+
+	public WindowInfo getWindowInfo() {
+		if (wi==null) {
+			wi=new WindowInfo(WindowInfo.MODALDIALOG|WindowInfo.RESIZABLE);
+			wi.setWidth(this.getWidth());
+			wi.setHeight(this.getHeight());
+			wi.setTitle(PluginServices.getText(this,"propiedades"));
+		}
+		return wi;
+	}
+
+	public Object getWindowProfile() {
+		return WindowInfo.DIALOG_PROFILE;
+	}
+
+}  //  @jve:decl-index=0:visual-constraint="10,10"
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/DrawSnapCellRenderer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/DrawSnapCellRenderer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/DrawSnapCellRenderer.java	(revision 38262)
@@ -0,0 +1,84 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners.snapping.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.geom.Point2D;
+
+import javax.swing.JPanel;
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+
+import org.gvsig.fmap.mapcontrol.MapControlLocator;
+import org.gvsig.fmap.mapcontrol.MapControlManager;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.impl.DefaultPrimitivesDrawer;
+
+/**
+ * Cell Renderer del s�mbolo de cada uno de los ISnapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class DrawSnapCellRenderer extends JPanel implements TableCellRenderer {
+	private static Point2D position = new Point2D.Double(7,7);
+	private static MapControlManager mapControlManager = MapControlLocator.getMapControlManager();
+	private PrimitivesDrawer primitivesDrawer = new DefaultPrimitivesDrawer();
+	
+	private int row;
+	public DrawSnapCellRenderer() {
+		this.setBackground(Color.white);
+	}
+	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+		this.row=row;
+		return this;
+	}
+	protected void paintComponent(Graphics g) {
+		super.paintComponent(g);
+		
+		primitivesDrawer.setGraphics(g);
+		
+		(mapControlManager.getSnapperAt(row)).draw(primitivesDrawer, position);
+	}
+
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/SnapConfig.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/SnapConfig.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/SnapConfig.java	(revision 38262)
@@ -0,0 +1,347 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners.snapping.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.util.ArrayList;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.ListCellRenderer;
+import javax.swing.border.EmptyBorder;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableModel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.MapControlLocator;
+import org.gvsig.fmap.mapcontrol.MapControlManager;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper;
+import java.util.TreeMap;
+
+/**
+ * @author fjp
+ *
+ * Necesitamos un sitio donde est�n registrados todos los snappers que
+ * se pueden usar. ExtensionPoints es el sitio adecuado.
+ * Este di�logo recuperar� esa lista para que el usuario marque los
+ * snappers con los que desea trabajar.
+ */
+public class SnapConfig extends JPanel {
+
+	private JCheckBox jChkBoxRefentActive = null;
+	private JTable jListSnappers = null;
+	private JPanel jPanel = null;
+	private JScrollPane jScrollPane = null;
+
+	//	private ArrayList snappers;
+	private MapControl mc;
+	private static MapControlManager mapControlManager = MapControlLocator.getMapControlManager();
+
+	/**
+	 * @author fjp
+	 * primera columna editable con un check box para habilitar/deshabilitar el snapper
+	 * segunda columna con el s�mbolo del snapper
+	 * tercera con el tooltip
+	 * cuarta con un bot�n para configurar el snapper si es necesario.
+	 */
+	class MyTableModel extends AbstractTableModel {
+
+		public MyTableModel()
+		{
+			
+		}
+
+		public int getColumnCount() {
+			return 5;
+		}
+
+		public int getRowCount() {
+			return mapControlManager.getSnapperCount();
+		}
+
+		public boolean isCellEditable(int rowIndex, int columnIndex) {
+			if (columnIndex == 0 || columnIndex == 3)
+				return true;
+			return false;
+		}
+
+		public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+			ISnapper snap = mapControlManager.getSnapperAt(rowIndex);
+			switch (columnIndex)
+			{
+			case 0://CheckBox
+				snap.setEnabled(((Boolean)aValue).booleanValue());
+				break;
+			case 3://Prioridad
+				snap.setPriority(((Integer)aValue).intValue());
+				break;
+			}
+		}
+
+		public Object getValueAt(int rowIndex, int columnIndex) {
+			ISnapper snap = mapControlManager.getSnapperAt(rowIndex);
+			switch (columnIndex)
+			{
+			case 0:
+				return new Boolean(snap.isEnabled());
+			case 1:
+				return snap.getClass().getName();
+			case 2:
+				return snap.getToolTipText();
+			case 3:
+				return new Integer(snap.getPriority());
+			case 4:
+				return new JButton();
+			}
+			return null;
+		}
+
+		public Class getColumnClass(int columnIndex) {
+			switch (columnIndex)
+			{
+			case 0:
+				return Boolean.class;
+			case 1:
+				return String.class;
+			case 2:
+				return String.class;
+			case 3:
+				return Integer.class;
+			case 4:
+				return JButton.class;
+			}
+			return null;
+		}
+
+		public String getColumnName(int columnIndex) {
+			switch (columnIndex){
+			case 0:
+				return PluginServices.getText(this,"aplicar");
+			case 1:
+				return PluginServices.getText(this,"simbolo");
+			case 2:
+				return PluginServices.getText(this,"tipo");
+			case 3:
+				return PluginServices.getText(this,"prioridad");
+			case 4:
+				return PluginServices.getText(this,"propiedades");
+			}
+			return null;
+		}
+
+	}
+
+	class MyCellRenderer extends JCheckBox implements ListCellRenderer {
+
+		// This is the only method defined by ListCellRenderer.
+		// We just reconfigure the JLabel each time we're called.
+
+		public Component getListCellRendererComponent(
+				JList list,
+				Object value,            // value to display
+				int index,               // cell index
+				boolean isSelected,      // is the cell selected
+				boolean cellHasFocus)    // the list and the cell have the focus
+		{
+			ISnapper snapper = (ISnapper) value;
+			String s = snapper.getToolTipText();
+			setText(s);
+
+			if (isSelected) {
+				setBackground(list.getSelectionBackground());
+				setForeground(list.getSelectionForeground());
+			}
+			else {
+				setBackground(list.getBackground());
+				setForeground(list.getForeground());
+			}
+			setEnabled(list.isEnabled());
+			setFont(list.getFont());
+			setOpaque(true);
+			return this;
+		}
+
+		public void doClick() {
+			super.doClick();
+			System.out.println("Click");
+		}
+
+
+	}
+
+
+	/**
+	 * This method initializes
+	 *
+	 */
+	public SnapConfig(MapControl mc) {
+		super();
+		this.mc=mc;
+		initialize();
+	}
+
+	/**
+	 * This method initializes this
+	 *
+	 */
+	private void initialize() {
+		this.setLayout(new BorderLayout());
+		this.setBorder(new EmptyBorder(10, 10, 10, 10));
+		this.setSize(new java.awt.Dimension(463,239));
+		this.setPreferredSize(new java.awt.Dimension(463,239));
+		this.add(getJChkBoxRefentActive(), BorderLayout.NORTH);
+		this.add(getJPanel(), BorderLayout.CENTER);
+
+	}
+
+	/**
+	 * This method initializes jChkBoxRefentActive
+	 *
+	 * @return javax.swing.JCheckBox
+	 */
+	private JCheckBox getJChkBoxRefentActive() {
+		if (jChkBoxRefentActive == null) {
+			jChkBoxRefentActive = new JCheckBox();
+			jChkBoxRefentActive.setText("Referencia a Objetos Activada:");
+			jChkBoxRefentActive.setBounds(new java.awt.Rectangle(26,10,418,23));
+		}
+		return jChkBoxRefentActive;
+	}
+
+	/**
+	 * This method initializes jListSnappers
+	 *
+	 * @return javax.swing.JList
+	 */
+	private JTable getJListSnappers() {
+		if (jListSnappers == null) {
+			jListSnappers = new JTable();
+			// jListSnappers.setCellRenderer(new MyCellRenderer());
+		}
+		return jListSnappers;
+	}
+
+	/**
+	 * This method initializes jPanel
+	 *
+	 * @return javax.swing.JPanel
+	 */
+	private JPanel getJPanel() {
+		if (jPanel == null) {
+			jPanel = new JPanel();
+			jPanel.setLayout(new BorderLayout());
+			jPanel.setBorder(new EmptyBorder(5, 0, 0, 0));
+			jPanel.setBounds(new java.awt.Rectangle(19,40,423,181));
+			jPanel.add(getJScrollPane(), BorderLayout.CENTER);
+		}
+		return jPanel;
+	}
+
+	/**
+	 * This method initializes jScrollPane
+	 *
+	 * @return javax.swing.JScrollPane
+	 */
+	private JScrollPane getJScrollPane() {
+		if (jScrollPane == null) {
+			jScrollPane = new JScrollPane();
+			jScrollPane.setBounds(new java.awt.Rectangle(9,9,402,163));
+			jScrollPane.setViewportView(getJListSnappers());
+		}
+		return jScrollPane;
+	}
+
+	//	public ArrayList getSnappers() {
+	//		return snappers;
+	//	}
+
+	public void setSnappers() {		
+		MyTableModel listModel = new MyTableModel();
+		getJListSnappers().setModel(listModel);
+		TableColumn tc=getJListSnappers().getColumnModel().getColumn(0);
+		setUpSymbolColumn(getJListSnappers().getColumnModel().getColumn(1));
+		setUpPropertyColumn(getJListSnappers().getColumnModel().getColumn(4));
+		getJListSnappers().setCellSelectionEnabled(false);
+		tc.setMaxWidth(40);
+		tc.setMinWidth(20);
+	}
+	public TableModel getTableModel() {
+		return getJListSnappers().getModel();
+	}
+	public boolean applySnappers() {
+		return getJChkBoxRefentActive().isSelected();
+	}
+
+
+	public void selectSnappers() {
+		for (int i=0;i<mapControlManager.getSnapperCount();i++) {
+			getTableModel().setValueAt(mapControlManager.getSnapperAt(i).isEnabled(),i,0);			
+		}
+
+	}
+
+	public void setApplySnappers(boolean applySnappers) {
+		getJChkBoxRefentActive().setSelected(applySnappers);
+	}
+
+	public void setUpSymbolColumn(TableColumn column) {
+		DrawSnapCellRenderer symbolCellRenderer = new DrawSnapCellRenderer();
+		column.setCellRenderer(symbolCellRenderer);
+	}
+	public void setUpPropertyColumn(TableColumn column) {
+
+		PropertySnapCellEditor propertyeditor = new PropertySnapCellEditor();
+		column.setCellEditor(propertyeditor);
+
+		PropertySnapCellRenderer renderer = new PropertySnapCellRenderer();
+		column.setCellRenderer(renderer);
+	}
+}  //  @jve:decl-index=0:visual-constraint="10,10"
+
+
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/PropertySnapCellEditor.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/PropertySnapCellEditor.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/PropertySnapCellEditor.java	(revision 38262)
@@ -0,0 +1,124 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.ArrayList;
+import java.util.EventObject;
+
+import javax.swing.JButton;
+import javax.swing.JTable;
+import javax.swing.event.CellEditorListener;
+import javax.swing.table.TableCellEditor;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.fmap.mapcontrol.MapControlLocator;
+import org.gvsig.fmap.mapcontrol.MapControlManager;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper;
+
+
+public class PropertySnapCellEditor extends JButton implements TableCellEditor{
+	private int row;
+	private IWindow panel;
+	private static MapControlManager mapControlManager = MapControlLocator.getMapControlManager();
+	
+	public PropertySnapCellEditor() {		
+		this.addMouseListener(new MouseListener() {
+
+			public void mouseClicked(MouseEvent e) {
+				if (e.getClickCount()==2) {
+					if (panel!=null)
+						openConfigurePanel();
+				}
+			}
+
+			public void mouseEntered(MouseEvent e) {
+				// TODO Auto-generated method stub
+
+			}
+
+			public void mouseExited(MouseEvent e) {
+				// TODO Auto-generated method stub
+
+			}
+
+			public void mousePressed(MouseEvent e) {
+				// TODO Auto-generated method stub
+
+			}
+
+			public void mouseReleased(MouseEvent e) {
+				// TODO Auto-generated method stub
+
+			}
+
+		});
+	}
+//	class WinConfigure extends JPanel implements IWindow {
+//
+//		private WindowInfo wi=null;
+//
+//		public WindowInfo getWindowInfo() {
+//			if (wi==null) {
+//				wi=new WindowInfo(WindowInfo.MODALDIALOG|WindowInfo.RESIZABLE);
+//				wi.setWidth(panel.getWidth());
+//				wi.setHeight(panel.getHeight());
+//				wi.setTitle(PluginServices.getText(this,"propiedades"));
+//			}
+//			return wi;
+//		}
+//	}
+	private void openConfigurePanel() {
+		//IWindow window=new WinConfigure();
+		((DefaultConfigurePanel)panel).setSnapper(mapControlManager.getSnapperAt(row));
+		PluginServices.getMDIManager().addWindow(panel);
+	}
+	public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+		this.row=row;
+		panel=(IWindow)(mapControlManager.getSnapperAt(row)).getConfigurator();
+		if (panel!=null) {
+			this.setEnabled(true);
+		}else {
+			this.setEnabled(false);
+			this.setBackground(Color.white);
+		}
+		return this;
+	}
+
+	public void cancelCellEditing() {
+		// TODO Auto-generated method stub
+
+	}
+
+	public boolean stopCellEditing() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public Object getCellEditorValue() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public boolean isCellEditable(EventObject anEvent) {
+		return true;
+	}
+
+	public boolean shouldSelectCell(EventObject anEvent) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public void addCellEditorListener(CellEditorListener l) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void removeCellEditorListener(CellEditorListener l) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/PropertySnapCellRenderer.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/PropertySnapCellRenderer.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/gui/PropertySnapCellRenderer.java	(revision 38262)
@@ -0,0 +1,35 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.util.ArrayList;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+
+import org.gvsig.fmap.mapcontrol.MapControlLocator;
+import org.gvsig.fmap.mapcontrol.MapControlManager;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper;
+
+
+public class PropertySnapCellRenderer extends JButton implements TableCellRenderer{
+	private JPanel panel;
+	private static MapControlManager mapControlManager = MapControlLocator.getMapControlManager();
+	
+	public PropertySnapCellRenderer() {
+		this.setText("...");
+	}
+	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+		panel=(JPanel)(mapControlManager.getSnapperAt(row)).getConfigurator();
+		if (panel!=null) {
+			this.setEnabled(true);
+		}else {
+			this.setEnabled(false);
+			this.setBackground(Color.white);
+		}
+		return this;
+	}
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/IntersectionPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/IntersectionPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/IntersectionPointSnapper.java	(revision 38262)
@@ -0,0 +1,101 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.Point2D;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperGeometriesVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+
+/**
+ * Intersection point snapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class IntersectionPointSnapper extends AbstractSnapper
+    implements ISnapperGeometriesVectorial {
+    private static final Logger LOG = LoggerFactory.getLogger(IntersectionPointSnapper.class);
+    
+	private static int maxPointsGeom = 1000;
+	private List<Geometry> geometries;
+
+    public Point2D getSnapPoint(Point2D point, Geometry geom,
+        double tolerance, Point2D lastPointEntered) {
+    	if (!(geom instanceof Curve)){
+    		return null;
+    	}
+    	Point2D result = null;
+
+        if (geometries == null) {
+            return null;
+        }
+
+        for (int i = 0; i < geometries.size(); i++) {
+        	Point2D r = intersects(geom, geometries.get(i), point, tolerance);
+
+            if (r != null) {
+                result = r;
+            }
+        }
+
+        return result;
+    }
+
+    private Point2D intersects(Geometry geometry1, Geometry geometry2, Point2D point,
+            double tolerance) {
+    	
+    	//If there is a topology error don't intersects
+    	if ((geometry1 == null) || (geometry2 == null)){
+    	    return null;
+    	}
+    	
+    	//The getNumCoords is not a getNumPoints but it is a good approximation...    	
+    	if (geometry1.getGeneralPath().getNumCoords() > maxPointsGeom || geometry2.getGeneralPath().getNumCoords() > maxPointsGeom){
+    		return null;
+    	}
+    	
+    	Geometry geometry;
+        try {
+            geometry = geometry1.intersection(geometry2);
+            if ((geometry != null) && (geometry.getType() == Geometry.TYPES.POINT)){
+                return geometry.getHandlers(Geometry.SELECTHANDLER)[0].getPoint();
+            }
+        } catch (GeometryOperationNotSupportedException e) {
+            LOG.error("Is not possible to intersect these geometries", e);
+        } catch (GeometryOperationException e) {
+            LOG.error("Is not possible to intersect these geometries", e);
+        }    
+    	
+    	return null;
+    }
+
+    public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+    	primitivesDrawer.setColor(getColor());
+
+        int half = getSizePixels() / 2;
+        int x1 = (int) (pPixels.getX() - half);
+        int x2 = (int) (pPixels.getX() + half);
+        int y1 = (int) (pPixels.getY() - half);
+        int y2 = (int) (pPixels.getY() + half);
+
+        primitivesDrawer.drawLine(x1, y1, x2, y2);
+        primitivesDrawer.drawLine(x1, y2, x2, y1);
+    }
+
+    public String getToolTipText() {
+        return Messages.getText("Intersection_point");
+    }
+
+	public void setGeometries(List geoms) {
+	    this.geometries = geoms;		
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/PixelSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/PixelSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/PixelSnapper.java	(revision 38262)
@@ -0,0 +1,147 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.Color;
+import java.awt.geom.Point2D;
+import java.awt.image.BufferedImage;
+import java.awt.image.ColorModel;
+
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperRaster;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+import com.vividsolutions.jts.geom.Coordinate;
+
+public class PixelSnapper extends AbstractSnapper implements ISnapperRaster {
+	private Color refColor = Color.BLACK;
+	private int tolColorR = 100;
+	private int tolColorG = 100;
+	private int tolColorB = 100;
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapperRaster#getSnapPoint(java.awt.image.BufferedImage, java.awt.geom.Point2D, double, java.awt.geom.Point2D)
+	 */
+	public Point2D getSnapPoint(MapControl mapControl, Point2D point,
+			double mapTolerance, Point2D lastPoint) {
+		// Miramos dentro del rect�ngulo que define la tolerancia
+		// y nos quedamos con el pixel que m�s se acerca al que buscamos
+		BufferedImage img = mapControl.getImage();
+		ViewPort vp = mapControl.getViewPort();
+		Point2D pPixel = vp.fromMapPoint(point);
+		int xPixel = (int) pPixel.getX();
+		int yPixel = (int) pPixel.getY();
+//		int centerRGB = img.getRGB(xPixel, yPixel);
+		int centerRGB = refColor.getRGB();
+		double x1 = ColorModel.getRGBdefault().getRed(centerRGB);
+		double y1 = ColorModel.getRGBdefault().getGreen(centerRGB);
+		double z1 = ColorModel.getRGBdefault().getBlue(centerRGB);
+		Coordinate c = new Coordinate(x1, y1, z1);
+
+		int half = vp.fromMapDistance(mapTolerance) / 2;
+		double minDistColor = Double.MAX_VALUE;
+		int xSnapped = -1;
+		int ySnapped = -1;
+		int fromX =xPixel -half;
+		if (fromX <0) fromX = 0;
+		int fromY =yPixel -half;
+		if (fromY <0) fromY = 0;
+
+		int toX =xPixel + half;
+		if (toX > vp.getImageWidth()) toX = vp.getImageWidth();
+		int toY =yPixel + half;
+		if (toY > vp.getImageHeight()) toY = vp.getImageHeight();
+
+		for (int testX= fromX; testX< toX; testX++)
+		{
+			for (int testY= fromY; testY< toY; testY++)
+			{
+				// System.out.println("Testing: " + testX + ", " + testY);
+				int testRGB = img.getRGB(testX, testY);
+				// TODO: Aqu� deber�amos trabajar con un ColorSpace y usar toCIEXYZ. Por ahora lo calculo con RGB.
+				int r = ColorModel.getRGBdefault().getRed(testRGB);
+				int g = ColorModel.getRGBdefault().getGreen(testRGB);
+				int b = ColorModel.getRGBdefault().getBlue(testRGB);
+				Coordinate cAux = new Coordinate(r, g, b);
+
+				if (Math.abs(r-x1) < tolColorR)
+					if (Math.abs(g-y1) < tolColorG)
+						if (Math.abs(b-z1) < tolColorB)
+						{
+							double dist = c.distance(cAux);
+							if (dist < minDistColor)
+							{
+								minDistColor = dist;
+								xSnapped = testX;
+								ySnapped = testY;
+							}
+						}
+			}
+		}
+		Point2D pResul = null;
+		if (xSnapped != -1)
+		{
+			pResul = vp.toMapPoint(xSnapped, ySnapped);
+		}
+		return pResul;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+	 */
+	public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+		primitivesDrawer.setColor(getColor());
+		int half = getSizePixels() / 2;
+		primitivesDrawer.drawOval((int) (pPixels.getX() - half),
+				(int) (pPixels.getY() - half),
+				getSizePixels(), getSizePixels());
+	}
+
+	public String getToolTipText() {
+		return Messages.getText("Pixel_point");
+	}
+
+}
+
+
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/CentralPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/CentralPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/CentralPointSnapper.java	(revision 38262)
@@ -0,0 +1,65 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.CenterHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+
+/**
+ * Central point snapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class CentralPointSnapper extends AbstractSnapper
+    implements ISnapperVectorial {
+	/* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
+     * IGeometry geom,double tolerance, Point2D lastPointEntered)
+     */
+	public Point2D getSnapPoint(Point2D point, Geometry geom,
+        double tolerance, Point2D lastPointEntered) {
+        Point2D resul = null;
+
+        Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER);
+
+        double minDist = tolerance;
+
+        for (int j = 0; j < handlers.length; j++) {
+            if (handlers[j] instanceof CenterHandler) {
+                Point2D handlerPoint = handlers[j].getPoint();
+                double dist = handlerPoint.distance(point);
+
+                if ((dist < minDist)) {
+                    resul = handlerPoint;
+                    minDist = dist;
+                }
+            }
+        }
+
+        return resul;
+    }
+	/* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
+     */
+    public String getToolTipText() {
+        return Messages.getText("Central_point");
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+     */
+    public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+    	primitivesDrawer.setColor(getColor());
+
+        int half = getSizePixels() / 2;
+        primitivesDrawer.drawOval((int) (pPixels.getX() - half),
+            (int) (pPixels.getY() - half), getSizePixels(), getSizePixels());
+    }
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/FinalPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/FinalPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/FinalPointSnapper.java	(revision 38262)
@@ -0,0 +1,62 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+
+public class FinalPointSnapper extends AbstractSnapper implements ISnapperVectorial {
+	public Point2D getSnapPoint(Point2D point, Geometry geom, double tolerance, Point2D lastPointEntered) {
+		Point2D resul = null;
+		Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER);
+		//		Point2D initPoint=handlers[0].getPoint();
+		//		Point2D endPoint=handlers[handlers.length-1].getPoint();
+		//		if (initPoint.equals(endPoint))
+		//			return resul;
+
+		double minDist = tolerance;
+		//		double dist = initPoint.distance(point);
+		//		if (dist < minDist) {
+		//			resul = initPoint;
+		//			minDist = dist;
+		//		}
+		//
+		//		dist = endPoint.distance(point);
+		//		if (dist < minDist) {
+		//			resul = endPoint;
+		//		}
+
+		for (int j = 0; j < handlers.length; j++) {
+			Point2D handlerPoint = handlers[j].getPoint();
+			double dist = handlerPoint.distance(point);
+			if ((dist < minDist)) {
+				resul = handlerPoint;
+				minDist = dist;
+			}
+		}
+
+		return resul;
+	}
+
+	public String getToolTipText() {
+	    return Messages.getText("Final_point");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+	 */
+	public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+		primitivesDrawer.setColor(getColor());
+
+		int half = getSizePixels() / 2;
+		primitivesDrawer.drawRect((int) (pPixels.getX() - half),
+				(int) (pPixels.getY() - half),
+				getSizePixels(), getSizePixels());
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/PerpendicularPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/PerpendicularPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/PerpendicularPointSnapper.java	(revision 38262)
@@ -0,0 +1,130 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.LineSegment;
+
+
+/**
+ * Perpendicular point snapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class PerpendicularPointSnapper extends AbstractSnapper
+    implements ISnapperVectorial {
+	/* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
+     * IGeometry geom,double tolerance, Point2D lastPointEntered)
+     */
+    public Point2D getSnapPoint(Point2D point, Geometry geom,
+        double tolerance, Point2D lastPointEntered) {
+        Point2D resul = null;
+        Coordinate c = new Coordinate(point.getX(), point.getY());
+
+        if (lastPointEntered == null) {
+            return null;
+        }
+
+        Coordinate cLastPoint = new Coordinate(lastPointEntered.getX(),
+                lastPointEntered.getY());
+        PathIterator theIterator = geom.getPathIterator(null,
+                geomManager.getFlatness()); //polyLine.getPathIterator(null, flatness);
+        double[] theData = new double[6];
+        double minDist = tolerance;
+        Coordinate from = null;
+        Coordinate first = null;
+
+        while (!theIterator.isDone()) {
+            //while not done
+            int theType = theIterator.currentSegment(theData);
+
+            switch (theType) {
+            case PathIterator.SEG_MOVETO:
+                from = new Coordinate(theData[0], theData[1]);
+                first = from;
+
+                break;
+
+            case PathIterator.SEG_LINETO:
+
+                // System.out.println("SEG_LINETO");
+                Coordinate to = new Coordinate(theData[0], theData[1]);
+                LineSegment line = new LineSegment(from, to);
+                Coordinate closestPoint = line.closestPoint(cLastPoint);
+                double dist = c.distance(closestPoint);
+
+                if (!(line.getCoordinate(0).equals2D(closestPoint) ||
+                        line.getCoordinate(1).equals2D(closestPoint))) {
+                    if ((dist < minDist)) {
+                        resul = new Point2D.Double(closestPoint.x,
+                                closestPoint.y);
+                        minDist = dist;
+                    }
+                }
+
+                from = to;
+
+                break;
+
+            case PathIterator.SEG_CLOSE:
+                line = new LineSegment(from, first);
+                closestPoint = line.closestPoint(cLastPoint);
+                dist = c.distance(closestPoint);
+
+                if (!(line.getCoordinate(0).equals2D(closestPoint) ||
+                        line.getCoordinate(1).equals2D(closestPoint))) {
+                    if ((dist < minDist)) {
+                        resul = new Point2D.Double(closestPoint.x,
+                                closestPoint.y);
+                        minDist = dist;
+                    }
+                }
+
+                from = first;
+
+                break;
+            } //end switch
+
+            theIterator.next();
+        }
+
+        return resul;
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
+     */
+    public String getToolTipText() {
+        return Messages.getText("Perpendicular_point");
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+     */
+    public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+    	primitivesDrawer.setColor(getColor());
+
+        int half = getSizePixels() / 2;
+        int x1 = (int) (pPixels.getX() - half);
+        int x2 = (int) (pPixels.getX() + half);
+        int x3 = (int) pPixels.getX();
+        int y1 = (int) (pPixels.getY() - half);
+        int y2 = (int) (pPixels.getY() + half);
+        int y3 = (int) pPixels.getY();
+
+        primitivesDrawer.drawLine(x1, y2, x2, y2);
+        primitivesDrawer.drawLine(x1, y2, x1, y1);
+        primitivesDrawer.drawLine(x1, y3, x3, y3);
+        primitivesDrawer.drawLine(x3, y3, x3, y2);
+    }
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/QuadrantPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/QuadrantPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/QuadrantPointSnapper.java	(revision 38262)
@@ -0,0 +1,74 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.handler.CuadrantHandler;
+import org.gvsig.fmap.geom.handler.Handler;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+
+/**
+ * Quadrant point snapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class QuadrantPointSnapper extends AbstractSnapper
+    implements ISnapperVectorial {
+	/* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
+     * IGeometry geom,double tolerance, Point2D lastPointEntered)
+     */
+    public Point2D getSnapPoint(Point2D point, Geometry geom,
+        double tolerance, Point2D lastPointEntered) {
+        Point2D resul = null;
+
+        Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER);
+
+        double minDist = tolerance;
+
+        for (int j = 0; j < handlers.length; j++) {
+            if (handlers[j] instanceof CuadrantHandler) {
+                Point2D handlerPoint = handlers[j].getPoint();
+                double dist = handlerPoint.distance(point);
+
+                if ((dist < minDist)) {
+                    resul = handlerPoint;
+                    minDist = dist;
+                }
+            }
+        }
+
+        return resul;
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
+     */
+    public String getToolTipText() {
+        return Messages.getText("Quadrant_point");
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#draw(java.awt.Graphics, java.awt.geom.Point2D)
+     */
+    public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+    	primitivesDrawer.setColor(getColor());
+
+        int half = getSizePixels() / 2;
+        int x1 = (int) (pPixels.getX() - half);
+        int x2 = (int) (pPixels.getX() + half);
+        int x3 = (int) pPixels.getX();
+        int y1 = (int) (pPixels.getY() - half);
+        int y2 = (int) (pPixels.getY() + half);
+        int y3 = (int) pPixels.getY();
+
+        primitivesDrawer.drawLine(x1, y3, x3, y1);
+        primitivesDrawer.drawLine(x1, y3, x3, y2);
+        primitivesDrawer.drawLine(x2, y3, x3, y1);
+        primitivesDrawer.drawLine(x2, y3, x3, y2);
+    }
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/MediumPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/MediumPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/MediumPointSnapper.java	(revision 38262)
@@ -0,0 +1,123 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Arc;
+import org.gvsig.fmap.geom.primitive.Circle;
+import org.gvsig.fmap.geom.primitive.Ellipse;
+import org.gvsig.fmap.geom.primitive.Spline;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+import com.vividsolutions.jts.geom.Coordinate;
+
+
+/**
+ * Medium point snapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class MediumPointSnapper extends AbstractSnapper
+    implements ISnapperVectorial {
+	/* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
+     * IGeometry geom,double tolerance, Point2D lastPointEntered)
+     */
+    public Point2D getSnapPoint(Point2D point, Geometry geom,
+        double tolerance, Point2D lastPointEntered) {
+        if (geom instanceof Circle ||
+                geom instanceof Arc ||
+                geom instanceof Ellipse ||
+                geom instanceof Spline) {
+            return null;
+        }
+
+        Point2D resul = null;
+        Coordinate c = new Coordinate(point.getX(), point.getY());
+
+        PathIterator theIterator = geom.getPathIterator(null,
+                geomManager.getFlatness()); //polyLine.getPathIterator(null, flatness);
+        double[] theData = new double[6];
+        double minDist = tolerance;
+        Coordinate from = null;
+        Coordinate first = null;
+
+        while (!theIterator.isDone()) {
+            //while not done
+            int theType = theIterator.currentSegment(theData);
+
+            switch (theType) {
+            case PathIterator.SEG_MOVETO:
+                from = new Coordinate(theData[0], theData[1]);
+                first = from;
+
+                break;
+
+            case PathIterator.SEG_LINETO:
+
+                Coordinate to = new Coordinate(theData[0], theData[1]);
+                Coordinate mediumPoint = new Coordinate((to.x + from.x) / 2,
+                        (to.y + from.y) / 2);
+                double dist = c.distance(mediumPoint);
+
+                if ((dist < minDist)) {
+                    resul = new Point2D.Double(mediumPoint.x, mediumPoint.y);
+                    minDist = dist;
+                }
+
+                from = to;
+
+                break;
+
+            case PathIterator.SEG_CLOSE:
+                mediumPoint = new Coordinate((first.x + from.x) / 2,
+                        (first.y + from.y) / 2);
+                dist = c.distance(mediumPoint);
+
+                if ((dist < minDist)) {
+                    resul = new Point2D.Double(mediumPoint.x, mediumPoint.y);
+                    minDist = dist;
+                }
+
+                from = first;
+
+                break;
+            } //end switch
+
+            theIterator.next();
+        }
+
+        return resul;
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
+     */
+    public String getToolTipText() {
+        return Messages.getText("Medium_point");
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+     */
+    public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+    	primitivesDrawer.setColor(getColor());
+
+        int half = getSizePixels() / 2;
+        int x1 = (int) (pPixels.getX() - half);
+        int x2 = (int) (pPixels.getX() + half);
+        int x3 = (int) pPixels.getX();
+        int y1 = (int) (pPixels.getY() - half);
+        int y2 = (int) (pPixels.getY() + half);
+
+        primitivesDrawer.drawLine(x1, y2, x2, y2);
+        primitivesDrawer.drawLine(x1, y2, x3, y1);
+        primitivesDrawer.drawLine(x2, y2, x3, y1);
+    }
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/TangentPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/TangentPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/TangentPointSnapper.java	(revision 38262)
@@ -0,0 +1,122 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Arc;
+import org.gvsig.fmap.geom.primitive.Circle;
+import org.gvsig.fmap.geom.primitive.Ellipse;
+import org.gvsig.fmap.geom.primitive.Spline;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.LineSegment;
+
+
+/**
+ * Tangent point snapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class TangentPointSnapper extends AbstractSnapper
+    implements ISnapperVectorial {
+	/* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
+     * IGeometry geom,double tolerance, Point2D lastPointEntered)
+     */
+    public Point2D getSnapPoint(Point2D point, Geometry geom,
+        double tolerance, Point2D lastPointEntered) {
+        if (!(geom instanceof Circle ||
+                geom instanceof Arc ||
+                geom instanceof Ellipse ||
+                geom instanceof Spline)) {
+            return null;
+        }
+
+        Point2D resul = null;
+        Coordinate c = new Coordinate(point.getX(), point.getY());
+
+        PathIterator theIterator = geom.getPathIterator(null,
+                geomManager.getFlatness());
+        double[] theData = new double[6];
+        double minDist = tolerance;
+        Coordinate from = null;
+        Coordinate first = null;
+
+        while (!theIterator.isDone()) {
+            //while not done
+            int theType = theIterator.currentSegment(theData);
+
+            switch (theType) {
+            case PathIterator.SEG_MOVETO:
+                from = new Coordinate(theData[0], theData[1]);
+                first = from;
+
+                break;
+
+            case PathIterator.SEG_LINETO:
+
+                // System.out.println("SEG_LINETO");
+                Coordinate to = new Coordinate(theData[0], theData[1]);
+                LineSegment line = new LineSegment(from, to);
+                Coordinate closestPoint = line.closestPoint(c);
+                double dist = c.distance(closestPoint);
+
+                if ((dist < minDist)) {
+                    resul = new Point2D.Double(closestPoint.x, closestPoint.y);
+                    minDist = dist;
+                }
+
+                from = to;
+
+                break;
+
+            case PathIterator.SEG_CLOSE:
+                line = new LineSegment(from, first);
+                closestPoint = line.closestPoint(c);
+                dist = c.distance(closestPoint);
+
+                if ((dist < minDist)) {
+                    resul = new Point2D.Double(closestPoint.x, closestPoint.y);
+                    minDist = dist;
+                }
+
+                from = first;
+
+                break;
+            } //end switch
+
+            theIterator.next();
+        }
+
+        return resul;
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
+     */
+    public String getToolTipText() {
+        return Messages.getText("Tangent_point");
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+     */
+    public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+    	primitivesDrawer.setColor(getColor());
+
+        int half = getSizePixels() / 2;
+        primitivesDrawer.drawLine((int) (pPixels.getX() - half),
+            (int) (pPixels.getY() - half), (int) (pPixels.getX() + half),
+            (int) (pPixels.getY() - half));
+        primitivesDrawer.drawOval((int) (pPixels.getX() - half),
+            (int) (pPixels.getY() - half), getSizePixels(), getSizePixels());
+    }
+
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/NearestPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/NearestPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/NearestPointSnapper.java	(revision 38262)
@@ -0,0 +1,90 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.LineSegment;
+
+public class NearestPointSnapper extends AbstractSnapper implements ISnapperVectorial {
+	public Point2D getSnapPoint(Point2D point, Geometry geom, double tolerance, Point2D lastPointEntered) {
+		Point2D resul = null;
+		Coordinate c = new Coordinate(point.getX(), point.getY());
+
+		PathIterator theIterator = geom.getPathIterator(null, geomManager.getFlatness()); //polyLine.getPathIterator(null, flatness);
+		double[] theData = new double[6];
+		double minDist = tolerance;
+		Coordinate from = null, first = null;
+		while (!theIterator.isDone()) {
+			//while not done
+			int theType = theIterator.currentSegment(theData);
+
+			switch (theType) {
+				case PathIterator.SEG_MOVETO:
+					from = new Coordinate(theData[0], theData[1]);
+					first = from;
+					break;
+
+				case PathIterator.SEG_LINETO:
+
+					// System.out.println("SEG_LINETO");
+					Coordinate to = new Coordinate(theData[0], theData[1]);
+					LineSegment line = new LineSegment(from, to);
+					Coordinate closestPoint = line.closestPoint(c);
+					double dist = c.distance(closestPoint);
+					if ((dist < minDist)) {
+						resul = new Point2D.Double(closestPoint.x, closestPoint.y);
+						minDist = dist;
+					}
+
+					from = to;
+					break;
+				case PathIterator.SEG_CLOSE:
+					line = new LineSegment(from, first);
+					closestPoint = line.closestPoint(c);
+					dist = c.distance(closestPoint);
+					if ((dist < minDist)) {
+						resul = new Point2D.Double(closestPoint.x, closestPoint.y);
+						minDist = dist;
+					}
+
+					from = first;
+					break;
+
+
+			} //end switch
+
+			theIterator.next();
+		}
+
+		return resul;
+	}
+
+	public String getToolTipText() {
+		return Messages.getText("Nearest_point");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+	 */
+	public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+		primitivesDrawer.setColor(getColor());
+		int half = getSizePixels() / 2;
+		int x1 = (int) (pPixels.getX() - half);
+		int x2 = (int) (pPixels.getX() + half);
+		int y1 = (int) (pPixels.getY() - half);
+		int y2 = (int) (pPixels.getY() + half);
+
+		primitivesDrawer.drawLine(x1, y1, x2, y1); // abajo
+		primitivesDrawer.drawLine(x1, y2, x2, y2); // arriba
+		primitivesDrawer.drawLine(x1, y1, x2, y2); // abajo - arriba
+		primitivesDrawer.drawLine(x1, y2, x2, y1); // arriba - abajo
+	}
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/InsertPointSnapper.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/InsertPointSnapper.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/snapping/snappers/InsertPointSnapper.java	(revision 38262)
@@ -0,0 +1,63 @@
+package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
+
+import java.awt.geom.Point2D;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
+import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
+import org.gvsig.i18n.Messages;
+
+
+
+/**
+ * Insert point snapper.
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class InsertPointSnapper extends AbstractSnapper
+    implements ISnapperVectorial {
+	/* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
+     * IGeometry geom,double tolerance, Point2D lastPointEntered)
+     */
+    public Point2D getSnapPoint(Point2D point, Geometry geom,
+        double tolerance, Point2D lastPointEntered) {
+        Point2D resul = null;
+
+        return resul;
+    }
+
+    /* (non-Javadoc)
+     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
+     */
+    public String getToolTipText() {
+        return Messages.getText("Insert_point");
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
+     */
+    public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
+    	primitivesDrawer.setColor(getColor());
+
+        int half = getSizePixels() / 2;
+        int x1 = (int) (pPixels.getX() - half);
+        int x2 = (int) (pPixels.getX() + half);
+        int x3 = (int) pPixels.getX();
+        int y1 = (int) (pPixels.getY() - half);
+        int y2 = (int) (pPixels.getY() + half);
+        int y3 = (int) pPixels.getY();
+
+        primitivesDrawer.drawLine(x1, y1, x3, y1);
+        primitivesDrawer.drawLine(x1, y1, x1, y3);
+        primitivesDrawer.drawLine(x1, y3, x3, y3);
+        primitivesDrawer.drawLine(x3, y1, x3, y3);
+
+        primitivesDrawer.drawLine(x3, y3, x2, y3);
+        primitivesDrawer.drawLine(x3, y3, x3, y2);
+        primitivesDrawer.drawLine(x3, y2, x2, y2);
+        primitivesDrawer.drawLine(x2, y3, x2, y2);
+    }
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PointSelectListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PointSelectListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PointSelectListener.java	(revision 38262)
@@ -0,0 +1,115 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.PointSelectionListener;
+import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent;
+
+
+
+/**
+ * <p>Inherits {@link PointSelectListener PointSelectListener} enabling/disabling special
+ *  controls for managing the data selected.</p>
+ *
+ * @see PointSelectionListener
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class PointSelectListener extends PointSelectionListener {
+	/**
+	 * <p>Creates a new <code>PointSelectListener</code> object.</p>
+	 * 
+	 * @param mapCtrl the <code>MapControl</code> where will be applied the changes
+	 */
+	public PointSelectListener(MapControl mapCtrl) {
+		super(mapCtrl);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.PointSelectionListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void point(PointEvent event) throws BehaviorException {
+		super.point(event);
+		PluginServices.getMainFrame().enableControls();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.PointSelectionListener#pointDoubleClick(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void pointDoubleClick(PointEvent event) throws BehaviorException {
+	/*	try {
+			FLayer[] actives = mapCtrl.getMapContext()
+            .getLayers().getActives();
+            for (int i=0; i < actives.length; i++){
+                if (actives[i] instanceof FLyrAnnotation && actives[i].isEditing()) {
+                    FLyrAnnotation lyrAnnotation = (FLyrAnnotation) actives[i];
+
+                    	lyrAnnotation.setSelectedEditing();
+                    	lyrAnnotation.setInEdition(lyrAnnotation.getRecordset().getSelection().nextSetBit(0));
+                    	FLabel fl=lyrAnnotation.getLabel(lyrAnnotation.getInEdition());
+        				if (fl!=null){
+
+        					View vista=(View)PluginServices.getMDIManager().getActiveView();
+        					TextFieldEdit tfe=new TextFieldEdit(lyrAnnotation);
+
+        					tfe.show(vista.getMapControl().getViewPort().fromMapPoint(fl.getOrig()),vista.getMapControl());
+        				}
+
+
+                }
+            }
+
+		} catch (DriverLoadException e) {
+			e.printStackTrace();
+			throw new BehaviorException("Fallo con el recordset");
+		} catch (com.iver.cit.gvsig.fmap.DriverException e) {
+			e.printStackTrace();
+			throw new BehaviorException("Fallo con el recordset");
+		}
+*/
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PointSelectListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/InfoListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/InfoListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/InfoListener.java	(revision 38262)
@@ -0,0 +1,205 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.Image;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.project.documents.view.info.gui.FInfoDialog;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.operations.InfoByPoint;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.MapControlLocator;
+import org.gvsig.fmap.mapcontrol.swing.dynobject.LayersDynObjectSetComponent;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.PointListener;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynObjectSet;
+import org.gvsig.tools.extensionpoint.ExtensionPoint;
+import org.gvsig.tools.extensionpoint.ExtensionPointManager;
+import org.gvsig.tools.extensionpoint.ExtensionSingleton;
+
+/**
+ * Listener that looks for information at the point selected by one
+ * click of any mouse's button, in the active layers of the associated
+ * <code>MapControl</code>, and displays that data on a {@link FInfoDialog
+ * FInfoDialog} dialog.
+ * 
+ * @author -2009 Vicente Caballero Navarro
+ * @author 2009- gvSIG Team
+ */
+public class InfoListener implements PointListener {
+
+    /**
+     * Object used to log messages for this listener.
+     */
+//    private static final Logger logger = LoggerFactory.getLogger(InfoListener.class);
+
+    private static final String EP_INFOTOOL_NAME = "org.gvsig.app.infotool"; 
+    private static final String EP_INFOTOOL_RENDERER = "renderer"; 
+
+    public static void initializeExtensionPoint() {
+        ExtensionPointManager manager = ToolsLocator.getExtensionPointManager();
+        ExtensionPoint point = manager.add(EP_INFOTOOL_NAME, "Register of data relative to infotool");
+        point.append(
+            EP_INFOTOOL_RENDERER, 
+            "Renderer used to show in a panel the info by point tool.", 
+            new DefaultInfoByPointRenderer()
+        );
+    }
+    
+    /**
+     * The image to display when the cursor is active.
+     */
+    private final Image img = PluginServices.getIconTheme()
+        .get("cursor-query-information").getImage();
+
+    /**
+     * Reference to the <code>MapControl</code> object that uses.
+     */
+    private MapControl mapCtrl;
+
+    /**
+     * Radius as tolerance around the selected point, the area will be used to
+     * look for information.
+     */
+    private static int TOL = 7;
+
+    /**
+     * <p>
+     * Creates a new <code>InfoListener</code> object.
+     * </p>
+     * 
+     * @param mc
+     *            the <code>MapControl</code> where will be applied the changes
+     */
+    public InfoListener(MapControl mc) {
+        this.mapCtrl = mc;
+    }
+
+    public void point(PointEvent event) throws BehaviorException {
+        try {
+            ApplicationManager application = ApplicationLocator.getManager();
+            int numLayersInfoable = 0;
+            Point point = event.getMapPoint();
+            double tolerance = mapCtrl.getViewPort().toMapDistance(TOL);
+
+            FLayer[] sel = mapCtrl.getMapContext().getLayers().getActives();
+            Map<String, DynObjectSet> layer2info =
+                new HashMap<String, DynObjectSet>(sel.length);
+
+            for (int i = 0; i < sel.length; i++) {
+                FLayer laCapa = sel[i];
+                if (laCapa instanceof InfoByPoint) {
+                    InfoByPoint layer = (InfoByPoint) laCapa;
+                    DynObjectSet info = layer.getInfo(point, tolerance);
+                    layer2info.put(laCapa.getName(), info);
+                    numLayersInfoable++;
+                }
+            }
+
+            ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
+            InfoByPointRenderer renderer = (InfoByPointRenderer)extensionPoints.get(EP_INFOTOOL_NAME).create(EP_INFOTOOL_RENDERER);
+            IWindow window = renderer.getPanel(layer2info); 
+            
+            if (numLayersInfoable > 0) {
+                if (PluginServices.getMainFrame() == null) {  // ���������????????????
+                    JPanel panel = (JPanel) window;
+                    JDialog dialog = new JDialog();
+                    panel.setPreferredSize(panel.getSize());
+                    dialog.getContentPane().add(panel);
+                    dialog.setModal(false);
+                    dialog.pack();
+                    dialog.setVisible(true);
+
+                } else {
+                    application.getUIManager().addWindow(window);
+                }
+
+            }
+        } catch (Exception e) {
+            NotificationManager.addError("Info by Point", e);
+            e.printStackTrace();
+        }
+    }
+
+    public Image getImageCursor() {
+        return img;
+    }
+
+    public boolean cancelDrawing() {
+        return false;
+    }
+
+    public void pointDoubleClick(PointEvent event) throws BehaviorException {
+        // Nothing to do
+    }
+    
+    public interface InfoByPointRenderer {
+       public IWindow getPanel( Map<String, DynObjectSet> layersInfo);
+    }
+    
+    public static class DefaultInfoByPointRenderer implements InfoByPointRenderer, ExtensionSingleton {
+        public IWindow getPanel(Map<String, DynObjectSet> layersInfo) {
+            // TODO: set the writable parameter to true to activate
+            // edition of the info by point information.
+            LayersDynObjectSetComponent infoComponent =
+                MapControlLocator.getMapControlManager()
+                    .createLayersDynObjectSetComponent(layersInfo, false);
+            FInfoDialog dlgInfo = new FInfoDialog(infoComponent);
+            return dlgInfo;
+        }
+       
+    }
+    
+    
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/InfoListener.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/LinkListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/LinkListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/LinkListener.java	(revision 38262)
@@ -0,0 +1,180 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.Component;
+import java.awt.Image;
+import java.awt.geom.Point2D;
+import java.net.URI;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.gui.panels.LinkPanel;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.PointListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+/**
+ * <p>Listener that gets, if exists, the associated link at the feature that's at the position selection of an active, selected
+ *  and vector layer of the associated <code>MapControl</code>; and displays
+ *  that linked data (image, text, ...) on a dialog.</p>
+ *
+ * <p>Listens a single click of any mouse's button.</p>
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class LinkListener implements PointListener {
+	/**
+	 * Object used to log messages for this listener.
+	 */
+	private static final Logger logger = LoggerFactory
+            .getLogger(InfoListener.class);
+
+	/**
+	 * The image to display when the cursor is active.
+	 */
+	private final Image img = PluginServices.getIconTheme()
+		.get("cursor-hiperlink").getImage();
+
+	/**
+	 * The cursor used to work with this tool listener.
+	 *
+	 * @see #getCursor()
+	 */
+//	private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(img,
+//			new Point(16, 16), "");
+
+	/**
+	 * Reference to the <code>MapControl</code> object that uses.
+	 */
+	private MapControl mapCtrl;
+
+	/**
+	 * Identifies the link as an image.
+	 */
+	public static final int TYPELINKIMAGE=0;
+
+	/**
+	 * Identifies the link as text.
+	 */
+	public static final int TYPELINKTEXT=1;
+
+	/**
+	 * <p>Creates a new <code>LinkListener</code> object.</p>
+	 *
+	 * @param mc the <code>MapControl</code> where will be applied the changes
+	 */
+	public LinkListener(MapControl mc) {
+		this.mapCtrl = mc;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void point(PointEvent event) throws BehaviorException {
+		Point2D pReal = mapCtrl.getMapContext().getViewPort().toMapPoint(event.getPoint());
+		DefaultViewPanel view=(DefaultViewPanel)PluginServices.getMDIManager().getActiveWindow();
+		FLayer[] sel = mapCtrl.getMapContext().getLayers().getActives();
+
+		URI[] uri=null;
+
+		for (int i = 0; i < sel.length; i++) {
+			FLayer laCapa = sel[i];
+            if (laCapa.allowLinks())
+            {
+            	FLyrVect lyrVect = (FLyrVect) laCapa;
+            	double tol = mapCtrl.getViewPort().toMapDistance(3);
+            	try {
+					uri=lyrVect.getLink(pReal,tol);
+				} catch (ReadException e) {
+					JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),"Error" +
+    				" Error accediendo a la fuente de datos.");
+    		return;
+				}
+            	if (uri == null){
+            		JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),"Error" +
+            				" no has seleccionado una geometr�a para realizar HyperLink.");
+            		return;
+            	}
+            	for(int j=0; j<uri.length;j++){
+            		if(uri[j]!=null){
+            			LinkPanel lpanel = new LinkPanel (uri[j], lyrVect.getLinkProperties().getType());
+            			PluginServices.getMDIManager().addWindow(lpanel);
+            		}
+            	}
+            }
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getImageCursor()
+	 */
+	public Image getImageCursor() {
+		return img;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()
+	 */
+	public boolean cancelDrawing() {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#pointDoubleClick(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void pointDoubleClick(PointEvent event) throws BehaviorException {
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/LinkListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MeasureListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MeasureListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MeasureListener.java	(revision 38262)
@@ -0,0 +1,111 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.geom.Point2D;
+import java.text.NumberFormat;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.MeasureListenerImpl;
+import org.gvsig.fmap.mapcontrol.tools.Events.MeasureEvent;
+
+
+
+/**
+ * <p>Listener for calculating distances using vertexes of a polyline, defined in the associated {@link MapControl MapControl}
+ *  object, and displaying that information at the status bar of the application's main frame.</p>
+ *
+ * <p>Calculates and displays:
+ *  <ul>
+ *   <li>Distance of the last segment of the polyline.</li>
+ *   <li>Accumulated distance of all segments of the polyline.</li>
+ *  </ul>
+ * </p>
+ *
+ * @see MeasureListenerImpl
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class MeasureListener extends MeasureListenerImpl {
+	/**
+	 * <p>Creates a new listener for calculating distances using points of a polyline.</p>
+	 *
+	 * @param mc the <code>MapControl</code> where is calculated the length
+	 */
+	public MeasureListener(MapControl mc) {
+		super(mc);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.MeasureListenerImpl#points(com.iver.cit.gvsig.fmap.tools.Events.MeasureEvent)
+	 */
+	public void points(MeasureEvent event) {
+		double dist = 0;
+		double distAll = 0;
+
+		ViewPort vp = mapCtrl.getMapContext().getViewPort();
+
+		Point2D p = new Point2D.Double(event.getXs()[0].doubleValue(),event.getYs()[0].doubleValue());//vp.toMapPoint(new Point(event.getXs()[0].intValue(),event.getYs()[0].intValue()));
+		for (int i = 1; i < (event.getXs().length); i++) {
+			Point2D p2 = new Point2D.Double(event.getXs()[i].doubleValue(),	event.getYs()[i].doubleValue());// vp.toMapPoint(new Point(event.getXs()[i].intValue(),event.getYs()[i].intValue()));
+			dist = vp.distanceWorld(p, p2);
+			distAll += dist;
+			p = p2;
+		}
+
+		//System.out.println("Distancia = " + dist + " Distancia Total = " +
+		//	(distAll));
+		NumberFormat nf = NumberFormat.getInstance();
+        nf.setMaximumFractionDigits(2);
+        if (PluginServices.getMainFrame() != null)
+        {
+        	double[] trans2Meter=MapContext.getDistanceTrans2Meter();
+            PluginServices.getMainFrame().getStatusBar().setMessage("4",
+    			"Dist:" + nf.format(dist/trans2Meter[mapCtrl.getViewPort().getDistanceUnits()]) + "");
+    		PluginServices.getMainFrame().getStatusBar().setMessage("5",
+    			"Total:" + nf.format(distAll/trans2Meter[mapCtrl.getViewPort().getDistanceUnits()]) + "");
+        }
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MeasureListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewPanListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewPanListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewPanListener.java	(revision 38262)
@@ -0,0 +1,236 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.Image;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.geom.Point2D;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.gui.styling.SymbolSelector;
+import org.gvsig.app.project.documents.view.MapOverview;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.Events.MoveEvent;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.PanListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+
+/**
+ * <p>Listener for moving the extent of the associated {@link MapOverview MapOverview} object
+ *  according the movement between the initial and final points of line determined by the movement
+ *  dragging with the third button of the mouse.</p>
+ *
+ * <p>Updates the extent of its <code>ViewPort</code> with the new position.</p>
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class MapOverviewPanListener implements PanListener {
+	private static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
+	private static final Logger logger = LoggerFactory.getLogger(MapOverviewPanListener.class);
+	
+	/**
+	 * The image to display when the cursor is active.
+	 */
+	private final Image icursor = PluginServices
+		.getIconTheme().get("crux-cursor").getImage();
+
+	/**
+	 * The cursor used to work with this tool listener.
+	 *
+	 * @see #getCursor()
+	 */
+//	private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(icursor,
+//			new Point(16, 16), "");
+
+	/**
+	 * Reference to the <code>MapControl</code> object that uses.
+	 */
+	protected MapControl mapControl;
+
+	/**
+ 	 * <p>Creates a new listener for changing the position of the extent of the associated {@link MapOverview MapOverview} object.</p>
+	 *
+	 * @param mapControl the <code>MapControl</code> object which represents the <code>MapOverview</code>
+	 */
+	public MapOverviewPanListener(MapControl mapControl) {
+		this.mapControl = mapControl;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getImageCursor()
+	 */
+	public Image getImageCursor() {
+		return icursor;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()
+	 */
+	public boolean cancelDrawing() {
+		return true;
+	}
+
+	/*
+	public void move(MoveEvent event) throws BehaviorException {
+		if (!checkModifiers(event.getEvent().getModifiers())){
+			return;
+		}
+
+		ViewPort vp = mapControl.getMapContext().getViewPort();
+		MapOverview mov=(MapOverview) this.mapControl;
+		ViewPort vpView=mov.getAssociatedMapContext().getViewPort();
+		if (vp.getExtent() != null) {
+			Point2D p = vp.toMapPoint(event.getTo());
+			Rectangle2D r = (Rectangle2D) vpView.getExtent().clone();
+			r.setRect(p.getX() - (r.getWidth() / 2),
+				p.getY() - (r.getHeight() / 2), r.getWidth(), r.getHeight());
+			//vpView.setExtent(r);
+			double scale;
+			double escalaX;
+			double escalaY;
+			double newHeight;
+			double newWidth;
+			double xCenter = r.getCenterX();
+			double yCenter = r.getCenterY();
+
+			escalaX = mapControl.getWidth() / r.getWidth();
+			escalaY = mapControl.getHeight() / r.getHeight();
+			Rectangle2D adjustedExtent = new Rectangle2D.Double();
+
+			if (escalaX < escalaY) {
+				scale = escalaX;
+				newHeight = mapControl.getHeight() / scale;
+				adjustedExtent.setRect(xCenter - (r.getWidth() / 2.0),
+					yCenter - (newHeight / 2.0), r.getWidth(), newHeight);
+			} else {
+				scale = escalaY;
+				newWidth = mapControl.getWidth() / scale;
+				adjustedExtent.setRect(xCenter - (newWidth / 2.0),
+					yCenter - (r.getHeight() / 2.0), newWidth,
+					r.getHeight());
+			}
+			mov.refreshOverView(adjustedExtent);
+		}
+
+	}
+	*/
+
+	/*
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PanListener#move(MoveEvent)
+	 */
+	public void move(MoveEvent event) throws BehaviorException {
+
+
+		if (!checkModifiers(event.getEvent())){
+			return;
+		}
+		System.out.println("mapOvervierPan");
+		MapOverview mov=(MapOverview) this.mapControl;
+		ViewPort vp = mov.getViewPort();
+		ViewPort vpView=mov.getAssociatedMapContext().getViewPort();
+
+		if (vp.getExtent() != null && vpView.getExtent() != null) {
+
+			// recogemos la forma de la vista actual
+			Envelope curEnvelope = vpView.getAdjustedExtent();
+			// traducimos las coordenadas en px de la ultima posicion del raton
+			// a coordenadas de la vista
+			Point2D thePoint= vp.toMapPoint( event.getTo());
+
+			double diffx =
+				(curEnvelope.getMaximum(0) - curEnvelope.getMinimum(0)) / 2;
+			double diffy =
+				(curEnvelope.getMaximum(1) - curEnvelope.getMinimum(1)) / 2;
+			// Creamos un envelope del mismo tama�o
+			// con la coordenadas del punto del raton,
+			// teniendo en cuenta que estas sera el
+			// centro del recuadro
+
+			Envelope envelope;
+			try {
+				envelope = geomManager.createEnvelope(
+						thePoint.getX() - diffx,
+						thePoint.getY() - diffy,
+						thePoint.getX() + diffx,
+						thePoint.getY()	+ diffy,
+						SUBTYPES.GEOM2D
+				);
+				// cambiamos la posicion
+				mov.refreshOverView(envelope);
+				vpView.setEnvelope(envelope);
+			} catch (CreateEnvelopeException e) {
+				logger.error("Error creating the envelope", e);
+			}			
+			mov.getAssociatedMapContext().invalidate();
+		}
+	}
+
+	/**
+	 * Determines if has pressed the button 3 of the mouse.
+	 */
+	private boolean checkModifiers(MouseEvent event) {
+
+		int modifiers = event.getModifiers();
+		/*
+		int keyPressedMask = InputEvent.BUTTON2_MASK;
+
+		*** No se porque el boton derecho del raton devuelve
+		*** un modificador 'Meta + BUTTON3'. Pensaba que deberia
+		*** devolver 'BUTTON2' ????
+		*/
+		int keyPressedMask = InputEvent.BUTTON3_MASK;
+		return ((modifiers & keyPressedMask) == keyPressedMask);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewPanListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewListener.java	(revision 38262)
@@ -0,0 +1,158 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.Image;
+import java.awt.event.MouseEvent;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.gui.styling.SymbolSelector;
+import org.gvsig.app.project.documents.view.MapOverview;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.PointListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+
+/**
+ * <p>Listener for changes of the zoom caused by selecting a point on the associated {@link MapOverview MapOverview} object
+ *  by a single click of the button 1 of the mouse.</p>
+ *
+ * <p>Updates the extent of its <code>ViewPort</code> with a <i>zoom out</i> operation, and enables/disables controls for
+ *  managing the data.</p>
+ *
+ * @see ViewPort
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class MapOverviewListener implements PointListener {
+	private static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
+	private static final Logger logger = LoggerFactory.getLogger(MapOverviewListener.class);
+	/**
+	 * The image to display when the cursor is active.
+	 */
+	private final Image izoomout = PluginServices.getIconTheme().get("crux-cursor").getImage();
+
+	/**
+	 * The cursor used to work with this tool listener.
+	 *
+	 * @see #getCursor()
+	 */
+//	private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(izoomout,
+//			new Point(16, 16), "");
+
+	/**
+	 * Reference to the <code>MapControl</code> object that uses.
+	 */
+	protected MapOverview mapControl;
+
+	/**
+ 	 * <p>Creates a new listener for zooming out the extent of the associated {@link MapOverview MapOverview} object.</p>
+	 *
+	 * @param mapControl the <code>MapControl</code> object which represents the <code>MapOverview</code>
+	 */
+	public MapOverviewListener(MapOverview mapControl) {
+		this.mapControl = mapControl;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void point(PointEvent event) {
+		ViewPort vp = mapControl.getMapContext().getViewPort();
+
+		if (vp.getExtent() != null &&
+				mapControl.getAssociatedMapContext().getViewPort().getExtent()!=null) {
+			Point2D p = vp.toMapPoint(event.getPoint());
+			Rectangle2D r = (Rectangle2D) mapControl.getAssociatedMapContext()
+										   .getViewPort().getExtent().clone();
+
+			r.setRect(p.getX() - (r.getWidth() / 2),
+				p.getY() - (r.getHeight() / 2), r.getWidth(), r.getHeight());
+
+			if (event.getEvent().getButton()!=MouseEvent.BUTTON1) {
+				try {
+					(this.mapControl).getAssociatedMapContext()
+						.getViewPort().setEnvelope(geomManager.createEnvelope(r.getX(),r.getY(),r.getMaxX(),r.getMaxY(), SUBTYPES.GEOM2D));
+				} catch (CreateEnvelopeException e) {
+					logger.error("Error creating the envelope", e);
+				}
+				PluginServices.getMainFrame().enableControls();
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getImageCursor()
+	 */
+	public Image getImageCursor() {
+		return izoomout;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()
+	 */
+	public boolean cancelDrawing() {
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#pointDoubleClick(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void pointDoubleClick(PointEvent event) throws BehaviorException {
+		// TODO Auto-generated method stub
+
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewListener.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/RectangleSelectListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/RectangleSelectListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/RectangleSelectListener.java	(revision 38262)
@@ -0,0 +1,77 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.RectangleSelectionListener;
+import org.gvsig.fmap.mapcontrol.tools.Events.EnvelopeEvent;
+
+
+
+/**
+ * <p>Inherits {@link RectangleSelectionListener RectangleSelectionListener} enabling/disabling special
+ *  controls for managing the data selected.</p>
+ *
+ * @see RectangleSelectionListener
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class RectangleSelectListener extends RectangleSelectionListener {
+	/**
+ 	 * <p>Creates a new <code>RectangleSelectListener</code> object.</p>
+ 	 *
+	 * @param mapCtrl the <code>MapControl</code> where is defined the rectangle
+	 */
+	public RectangleSelectListener(MapControl mapCtrl) {
+		super(mapCtrl);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.RectangleSelectionListener#rectangle(com.iver.cit.gvsig.fmap.tools.Events.RectangleEvent)
+	 */
+	public void rectangle(EnvelopeEvent event) throws BehaviorException {
+		super.rectangle(event);
+		PluginServices.getMainFrame().enableControls();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/RectangleSelectListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/AreaListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/AreaListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/AreaListener.java	(revision 38262)
@@ -0,0 +1,128 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.geom.Point2D;
+import java.text.NumberFormat;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiFrame.MainFrame;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.AreaListenerImpl;
+import org.gvsig.fmap.mapcontrol.tools.Events.MeasureEvent;
+
+
+
+/**
+ * <p>Listener for calculating the area of a polygon, defined in the associated {@link MapControl MapControl}
+ *  object.</p>
+ * <p>Moves the extent of the associated {@link MapControl MapControl} object
+ *  according the movement between the initial and final points of the line determined by the movement
+ *  dragged with the third button of the mouse.</p>
+ *
+ * <p>Updates the status bar of the main frame of the application with the current area.</p>
+ *
+ * @see AreaListenerImpl
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class AreaListener extends AreaListenerImpl {
+	/**
+ 	 * <p>Creates a new listener for calculating the area of a polygon and displaying it at the status bar
+ 	 *  of the main frame of the application.</p>
+	 *
+	 * @param mc the <code>MapControl</code> where is calculated the area
+	 */
+    public AreaListener(MapControl mc) {
+    	super(mc);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see com.iver.cit.gvsig.fmap.tools.AreaListenerImpl#points(com.iver.cit.gvsig.fmap.tools.Events.MeasureEvent)
+     */
+    public void points(MeasureEvent event) {
+        this.event = event;
+
+        double dist = 0;
+        double distAll = 0;
+
+        ViewPort vp = mapCtrl.getMapContext().getViewPort();
+        for (int i = 0; i < (event.getXs().length - 1); i++) {
+            dist = 0;
+
+            Point2D p = new Point2D.Double(event.getXs()[i].doubleValue(), event.getYs()[i].doubleValue());//vp.toMapPoint(new Point(event.getXs()[i].intValue(), event.getYs()[i].intValue()));
+            Point2D p2 = new Point2D.Double(event.getXs()[i + 1].doubleValue(), event.getYs()[i + 1].doubleValue());//vp.toMapPoint(new Point(event.getXs()[i + 1].intValue(), event.getYs()[i + 1].intValue()));
+            ///dist = vp.toMapDistance((int) p.distance(p2));
+            dist = vp.distanceWorld(p,p2);
+//            System.out.println("distancia parcial = "+dist);
+            distAll += dist;
+        }
+
+       // System.out.println("Per�metro = " + distAll + " �rea = " +
+       //     (returnArea(vp.toMapPoint(
+       //             new Point2D.Double(
+       //                 event.getXs()[event.getXs().length - 2].doubleValue(),
+       //                 event.getYs()[event.getYs().length - 2].doubleValue())))));
+        NumberFormat nf = NumberFormat.getInstance();
+        nf.setMaximumFractionDigits(2);
+        MainFrame mF = PluginServices.getMainFrame();
+        if (mF != null)
+        {
+        	int distanceUnits=mapCtrl.getViewPort().getDistanceUnits();
+        	int distanceArea=mapCtrl.getViewPort().getDistanceArea();
+            mF.getStatusBar().setMessage("4",
+        			"P:" + nf.format(distAll/MapContext.getDistanceTrans2Meter()[distanceUnits]) + "");
+        		mF.getStatusBar().setMessage("5",
+        			///"A:" + nf.format(returnArea(vp.toMapPoint(
+                    ///        new Point2D.Double(
+                    ///                event.getXs()[event.getXs().length - 2].doubleValue(),
+                    ///                event.getYs()[event.getYs().length - 2].doubleValue())))/FMap.CHANGEM[mapCtrl.getViewPort().getDistanceUnits()]) + "");
+        				"A:" + nf.format(returnArea(
+                                new Point2D.Double(
+                                        event.getXs()[event.getXs().length - 2].doubleValue(),
+                                        event.getYs()[event.getYs().length - 2].doubleValue()))/Math.pow(MapContext.getAreaTrans2Meter()[distanceArea],2)) + "");
+        		mF.getStatusBar().setMessage("distancearea",MapContext.getAreaAbbr()[distanceArea]);
+        }
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/AreaListener.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/StatusBarListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/StatusBarListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/StatusBarListener.java	(revision 38262)
@@ -0,0 +1,327 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.Image;
+import java.awt.geom.Point2D;
+import java.text.NumberFormat;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiFrame.MainFrame;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.PointListener;
+
+
+
+/**
+ * <p>Listener that displays at the status bar of the application's main frame, the value of the point coordinates of the mouse's
+ *  cursor on the associated <code>MapControl</code>, just as is received a <code>PointEvent</code> event.</p>
+ *
+ * <p>Calculates the coordinates equivalent to the point according this rules:
+ *  <ul>
+ *   <li>uses <i><code>formatDegrees(p.get{X or Y}()</code></i> if the associated <code>MapControl</code> object isn't projected.</li>
+ *   <li>uses <i><code>formatDegrees({MapControl's projection}.toGeo(p.get{X or Y}())</code></i> if the associated
+ *    <code>MapControl</code> object is projected and its <code>ViewPort</code>'s distance units are in degrees.</li>
+ *   <li>uses <i><code>{NumberFormat according to {@link #setFractionDigits(Point2D) #setFractionDigits(Point2D)}}.format((p.get{X or Y}()/MapContext.CHANGEM[mapControl.getViewPort().getDistanceUnits()])*MapContext.CHANGEM[mapControl.getViewPort().getMapUnits()])</code></i>
+ *    otherwise.</li>
+ *  </ul>
+ * </p>
+ *
+ * <p>The <u>prefix</u> of the coordinate expressions will be:
+ *  <ul>
+ *   <li>Longitude "<i>Long =</i>" and latitude "<i>Lat =</i>", if the associated <i>MapControl</i> object isn't projected, or the current distance unit
+ *    of the <code>MapControl</code>'s view port is in degrees.</li>
+ *   <li>X "<i>X =</i>" and Y "<i>Y =</i>", otherwise.</li>
+ *  </ul>
+ * </p>
+ *
+ * <p>And the <u>sufix</u> value:
+ *  <ul>
+ *   <li>If the associated <i>MapControl</i> object isn't projected, or the current distance unit
+ *    of the <code>MapControl</code>'s view port is in degrees(expected latitude or longitude), according this pattern:<br>
+ *    <code><b><i>S?G� M' S''</i></b></code>, having:<br>
+ *    <ul>
+ *     <li><i>S?</i> : optionally, if the value is negative, sets a "-" symbol.</li>
+ *     <li><i>G</i> : equivalent grades.</li>
+ *     <li><i>M</i> : equivalent minutes.</li>
+ *     <li><i>S</i> : equivalent seconds.</li>
+ *    </ul>
+ *   </li>
+ *   <li>Otherwise a decimal number according this rules:
+ *    <ul>
+ *     <li><i>8 decimals</i>, if is using any of the following geographic coordinate systems:
+ *      <ul>
+ *       <li><i>EPSG:4230 (known as <a href="http://en.wikipedia.org/wiki/ED50">ED50</a>)</i>.</li>
+ *       <li><i>EPSG:4326 (known as <a href="http://en.wikipedia.org/wiki/WGS84">WGS84</a>)</i>.</li>
+ *      </ul>
+ *     <li><i>2 decimals</i>, otherwise.</li>
+ *    </ul>
+ *   </li>
+ *  </ul>
+ * </p>
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class StatusBarListener implements PointListener {
+	/**
+	 * Reference to the <code>MapControl</code> object that uses.
+	 */
+	private MapControl mapControl = null;
+
+	/**
+	 * Format of the coordinates. Is used to set the number of decimals.
+	 */
+	private NumberFormat nf = null;
+
+	/**
+	 * <p>Creates a new <code>StatusBarListener</code> object.</p>
+	 *
+	 * @param mc the <code>MapControl</code> where will be applied the changes
+	 */
+	public StatusBarListener(MapControl mc) {
+		mapControl = mc;
+		nf = NumberFormat.getInstance();
+		nf.setMaximumFractionDigits(2);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getImageCursor()
+	 */
+	public Image getImageCursor() {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()
+	 */
+	public boolean cancelDrawing() {
+		return false;
+	}
+
+	/*
+	 * 050211, jmorell: M�todo modificado para mejorar la manera de mostrar las
+	 * coordenadas geod�sicas en la barra de estado. Muestra Lat y Lon y aumenta
+	 * el n�mero de decimales para cuando trabajemos en coordenadas geod�sicas.
+	 *
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void point(PointEvent event) throws BehaviorException {
+		String[] axisText = new String[2];
+		axisText[0] = "X = ";
+		axisText[1] = "Y = ";
+		Point2D p = mapControl.getMapContext().getViewPort().toMapPoint(event.getPoint());
+		setFractionDigits(p);
+		axisText = setCoorDisplayText(axisText);
+		MainFrame mF = PluginServices.getMainFrame();
+
+		if (mF != null){
+
+			mF.getStatusBar().setMessage("units",
+            		PluginServices.getText(this, MapContext.getDistanceNames()[mapControl.getMapContext().getViewPort().getDistanceUnits()]));
+
+			// FJP: No se debe llamar a setControlValue desde aqu�, porque
+            // cambia la escala, y con ella el viewPort (adem�s, de
+            // la vista que no es).
+            // mF.getStatusBar().setControlValue("scale",String.valueOf(mapControl.getMapContext().getScaleView()));
+            // Fin
+			mF.getStatusBar().setMessage("projection", mapControl.getViewPort().getProjection().getAbrev());
+
+			String[] coords=getCoords(p);
+			mF.getStatusBar().setMessage("x", axisText[0] + coords[0]);
+			mF.getStatusBar().setMessage("y", axisText[1] + coords[1]);
+		}
+	}
+
+	/**
+	 * <p>Sets the number of decimals of the coordinates that will be displayed, according the current projection
+	 *  of the associated <code>MapControl</code>:
+	 *  <ul>
+	 *   <li><i>8 decimals</i>, if is using geographical coordinates:
+	 *    <ul>
+	 *     <li><i>EPSG:4230 (known as <a href="http://en.wikipedia.org/wiki/ED50">ED50</a>)</i>.</li>
+	 *     <li><i>EPSG:4326 (known as <a href="http://en.wikipedia.org/wiki/WGS84">WGS84</a>)</i>.</li>
+	 *    </ul>
+	 *   <li><i>2 decimals</i>, otherwise.</li>
+	 *  </ul>
+	 * </p>
+	 *
+	 * @param p unused parameter
+	 *
+	 * @version 050211
+	 * @author jmorell.
+	 */
+	public void setFractionDigits(Point2D p) {
+		IProjection iProj = mapControl.getMapContext().getProjection();
+		if (!iProj.isProjected()) {
+			nf.setMaximumFractionDigits(8);
+		} else {
+			nf.setMaximumFractionDigits(2);
+		}
+	}
+
+	/**
+	 * <p>Gets the name of the coordinates:
+	 *  <ul>
+	 *   <li><i>Longitude</i> and <i>Latitude</i>, if the associated <i>MapControl</i> object isn't projected, or the current distance unit
+	 *    of the <code>MapControl</code>'s view port is in degrees.</li>
+	 *   <li><i>X</i> and <i>Y</i>, otherwise.</li>
+	 *  </ul>
+	 * </p>
+	 *
+	 * @param p array of at least two <code>String</code>, where text will be stored and returned
+	 *
+	 * @return text describing the coordinate value:
+	 *  <ul>
+	 *   <li>If isn't projected:
+	 *    <ul>
+	 *     <li><code>String[0]</code> : "Long = "</li>
+	 *     <li><code>String[1]</code> : "Lat = "</li>
+	 *    </ul>
+	 *   </li>
+	 *   <li>Otherwise:
+	 *    <ul>
+	 *     <li><code>String[0]</code> : "X = "</li>
+	 *     <li><code>String[1]</code> : "Y = "</li>
+	 *    </ul>
+	 *   </li>
+	 *  </ul>
+	 *
+	 * @version 050211
+	 * @author jmorell
+	 */
+	public String[] setCoorDisplayText(String[] axisText) {
+		IProjection iProj = mapControl.getMapContext().getProjection();
+		if (!iProj.isProjected() || MapContext.getDistanceNames()[mapControl.getMapContext().getViewPort().getDistanceUnits()].equals("Grados")) {
+			axisText[0] = "Lon = ";
+			axisText[1] = "Lat = ";
+		} else {
+			axisText[0] = "X = ";
+			axisText[1] = "Y = ";
+		}
+		return axisText;
+	}
+
+	/**
+	 * <p>Converts a decimal value (expected latitude or longitude) in degrees, and formats it according this pattern:<br>
+	 *  <code><b><i>S?G� M' S''</i></b></code>, having:<br>
+	 *  <ul>
+	 *   <li><i>S?</i> : optionally, if the value is negative, sets a "-" symbol.</li>
+	 *   <li><i>G</i> : equivalent grades.</li>
+	 *   <li><i>M</i> : equivalent minutes.</li>
+	 *   <li><i>S</i> : equivalent seconds.</li>
+	 *  </ul>
+	 * </p>
+	 *
+	 * @param d the latitude or longitude value to convert
+	 *
+	 * @return value formatted in degrees
+	 */
+	private String formatDegrees(double d) {
+		String signo = d<0 ? "-" : "";
+		d = Math.abs(d);
+		long grado = 0;
+		double minuto = 0;
+		double segundo = 0;
+
+		grado = (long)(d);
+		minuto = (d - grado) * 60;
+		segundo = (minuto - (long) minuto)*60;
+//		System.out.println("Grados: " + grado);
+//		System.out.println("Minutos: " + minuto);
+//		System.out.println("Segundos: " + segundo);
+		return signo+grado+"� "+(long) minuto+"' "+(long)segundo+"''";
+	}
+
+	/**
+	 * <p>Returns the coordinates equivalent to <code>p</code>:
+	 *  <ul>
+	 *   <li>Uses <i><code>formatDegrees(p.get{X or Y}()</code></i> if the associated <code>MapControl</code> object isn't projected.</li>
+	 *   <li>Uses <i><code>formatDegrees({MapControl's projection}.toGeo(p.get{X or Y}())</code></i> if the associated
+	 *    <code>MapControl</code> object is projected and its <code>ViewPort</code>'s distance units are in degrees.</li>
+	 *   <li>Uses <i><code>{NumberFormat according to {@link #setFractionDigits(Point2D) #setFractionDigits(Point2D)}}.format((p.get{X or Y}()/MapContext.CHANGEM[mapControl.getViewPort().getDistanceUnits()])*MapContext.CHANGEM[mapControl.getViewPort().getMapUnits()])</code></i>
+	 *    otherwise.</li>
+	 *  </ul>
+	 * </p>
+	 *
+	 * @param p point 2D to convert in text coordinates according the projection of the associated <code>MapControl</code> and the
+	 *  distance units of its <code>ViewPort</code>.
+	 *
+	 * @return coordinates equivalent to <code>p</code>, according to the algorithm explained up
+	 */
+	public String[] getCoords(Point2D p) {
+		String[] coords=new String[2];
+		IProjection iProj = mapControl.getMapContext().getProjection();
+		if (!iProj.isProjected()) {
+			coords[0]=String.valueOf(formatDegrees(p.getX()));
+			coords[1]=String.valueOf(formatDegrees(p.getY()));
+		} else {
+			double[] trans2Meter=MapContext.getDistanceTrans2Meter();
+			if (PluginServices.getText(this,MapContext.getDistanceNames()[mapControl.getViewPort().getDistanceUnits()]).equals(PluginServices.getText(this,"Grados"))) {
+				Point2D pgeo=iProj.toGeo(p);
+				coords[0]=String.valueOf(formatDegrees(pgeo.getX()));
+				coords[1]=String.valueOf(formatDegrees(pgeo.getY()));
+			}else {
+				if (PluginServices.getText(this,MapContext.getDistanceNames()[mapControl.getViewPort().getMapUnits()]).equals(PluginServices.getText(this,"Grados"))) {
+					mapControl.getViewPort().setMapUnits(1);
+				}
+
+				coords[0]=String.valueOf(nf.format((p.getX()/trans2Meter[mapControl.getViewPort().getDistanceUnits()])*trans2Meter[mapControl.getViewPort().getMapUnits()]));
+				coords[1]=String.valueOf(nf.format((p.getY()/trans2Meter[mapControl.getViewPort().getDistanceUnits()])*trans2Meter[mapControl.getViewPort().getMapUnits()]));
+			}
+		}
+		return coords;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#pointDoubleClick(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void pointDoubleClick(PointEvent event) throws BehaviorException {
+		// TODO Auto-generated method stub
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/StatusBarListener.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomInListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomInListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomInListener.java	(revision 38262)
@@ -0,0 +1,77 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.ZoomInListenerImpl;
+import org.gvsig.fmap.mapcontrol.tools.Events.EnvelopeEvent;
+
+
+
+/**
+ * <p>Inherits {@link ZoomInListenerImpl ZoomInListenerImpl} enabling/disabling special
+ *  controls for managing the data selected.</p>
+ *
+ * @see ZoomInListenerImpl
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ZoomInListener extends ZoomInListenerImpl {
+	/**
+	 * <p>Creates a new <code>ZoomInListener</code> object.</p>
+	 * 
+	 * @param mapCtrl the <code>MapControl</code> where be applied the changes
+	 */
+	public ZoomInListener(MapControl mapCtrl) {
+		super(mapCtrl);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.ZoomInListenerImpl#rectangle(com.iver.cit.gvsig.fmap.tools.Events.RectangleEvent)
+	 */
+	public void rectangle(EnvelopeEvent event) {
+		super.rectangle(event);
+		if (PluginServices.getMainFrame() != null)
+		    PluginServices.getMainFrame().enableControls();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomInListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomOutListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomOutListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomOutListener.java	(revision 38262)
@@ -0,0 +1,76 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.ZoomOutListenerImpl;
+import org.gvsig.fmap.mapcontrol.tools.Events.PointEvent;
+
+
+
+/**
+ * <p>Inherits {@link ZoomOutListenerImpl ZoomOutListenerImpl} enabling/disabling special
+ *  controls for managing the data selected.</p>
+ *
+ * @see ZoomOutListenerImpl
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class ZoomOutListener extends ZoomOutListenerImpl {
+	/**
+	 * <p>Creates a new <code>ZoomOutListener</code> object.</p>
+	 * 
+	 * @param mapCtrl the <code>MapControl</code> where be applied the changes
+	 */
+	public ZoomOutListener(MapControl mapCtrl) {
+		super(mapCtrl);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.ZoomOutListenerImpl#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
+	 */
+	public void point(PointEvent event) {
+		super.point(event);
+		PluginServices.getMainFrame().enableControls();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/ZoomOutListener.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PanListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PanListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PanListener.java	(revision 38262)
@@ -0,0 +1,76 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.PanListenerImpl;
+import org.gvsig.fmap.mapcontrol.tools.Events.MoveEvent;
+
+
+
+/**
+ * <p>Inherits {@link PanListener PanListener} enabling/disabling special
+ *  controls for managing the data.</p>
+ *
+ * @see PanListenerImpl
+ *
+ * @author Vicente Caballero Navarro
+ */
+public class PanListener extends PanListenerImpl {
+	/**
+	 * <p>Creates a new <code>PanListener</code> object.</p>
+	 * 
+	 * @param mapCtrl the <code>MapControl</code> where will be applied the changes
+	 */
+	public PanListener(MapControl mapCtrl) {
+		super(mapCtrl);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.PanListenerImpl#move(com.iver.cit.gvsig.fmap.tools.Events.MoveEvent)
+	 */
+	public void move(MoveEvent event) {
+		super.move(event);
+		PluginServices.getMainFrame().enableControls();
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/PanListener.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewChangeZoomListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewChangeZoomListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewChangeZoomListener.java	(revision 38262)
@@ -0,0 +1,191 @@
+/**
+ *
+ */
+package org.gvsig.app.project.documents.view.toolListeners;
+
+import java.awt.Image;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.gui.styling.SymbolSelector;
+import org.gvsig.app.project.documents.view.MapOverview;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.util.UtilFunctions;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
+import org.gvsig.fmap.mapcontrol.tools.Events.EnvelopeEvent;
+import org.gvsig.fmap.mapcontrol.tools.Events.MoveEvent;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.PanListener;
+import org.gvsig.fmap.mapcontrol.tools.Listeners.RectangleListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * <p>Listener for changes of the zoom caused by selecting a rectangular area on the associated
+ *  {@link MapOverview MapOverview} object with the first button of the mouse.</p>
+ *
+ * <p>If the kind of action was a movement on the associated object,
+ *  updates the <i>extent</i> of its rectangular area.</p>
+ *
+ * <p>If the kind of action is the selection of a rectangular area, and is bigger than 3x3 pixels,
+ *  applies a <i>zoom in</i> operation centering its <code>ViewPort</code> according the equivalent <i>extent</i>
+ *  in map coordinates.</p>
+ *
+ * @see ViewPort
+ *
+ * @author jmvivo
+ */
+public class MapOverviewChangeZoomListener implements RectangleListener, PanListener {
+	private static final GeometryManager geomManager = GeometryLocator.getGeometryManager();
+	private static final Logger logger = LoggerFactory.getLogger(MapOverviewChangeZoomListener.class);
+	/**
+	 * The image to display when the cursor is active.
+	 */
+	private final Image izoomin = PluginServices.getIconTheme()
+		.get("cursor-zoom-in").getImage();
+
+	/**
+	 * The cursor used to work with this tool listener.
+	 *
+	 * @see #getCursor()
+	 */
+//	private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(izoomin,new Point(16, 16), "");
+
+	/**
+	 * Reference to the <code>MapControl</code> object that uses.
+	 */
+	protected MapControl mapControl;
+
+	/**
+	 * <p>Creates a new listener for changes of zoom at the associated {@link MapOverview MapOverview} object.</p>
+	 *
+	 * @param mapControl the <code>MapControl</code> object which represents the <code>MapOverview</code>
+	 */
+	public MapOverviewChangeZoomListener(MapControl mapControl) {
+		this.mapControl=mapControl;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.RectangleListener#rectangle(com.iver.cit.gvsig.fmap.tools.Events.RectangleEvent)
+	 */
+	public void rectangle(EnvelopeEvent event) throws BehaviorException {
+
+		if (!checkModifiers(event.getEvent())){
+			return;
+		}
+		MapOverview mov=(MapOverview) this.mapControl;
+		ViewPort vpView=mov.getAssociatedMapContext().getViewPort();
+		ViewPort vp = mov.getViewPort();
+
+		if (vp.getExtent() != null && vpView.getExtent() != null) {
+
+			// Recuperamos las coordenadas del evento en px
+			Rectangle2D pxRectangle = event.getPixelCoordRect();
+			// Recuperamos las coordenadas del evento en coordenadas de la vista de localizador
+			Envelope realRectangle = event.getWorldCoordRect();
+
+			if ((pxRectangle.getWidth() < 3) && (pxRectangle.getHeight() < 3))
+			{
+				// rectangulo < 3 px no hacemos nada
+				return;
+
+			} else {
+				// Cambiamos la extension de la vista asociada al localizador
+				vpView.setEnvelope(realRectangle);
+				mov.getAssociatedMapContext().invalidate();
+				vpView.setEnvelope(realRectangle);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getCursor()
+	 */
+	public Image getImageCursor() {
+		return izoomin;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()
+	 */
+	public boolean cancelDrawing() {
+		return true; //???
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see com.iver.cit.gvsig.fmap.tools.Listeners.PanListener#move(com.iver.cit.gvsig.fmap.tools.Events.MoveEvent)
+	 */
+	public void move(MoveEvent event) throws BehaviorException {
+
+
+		if (!checkModifiers(event.getEvent())){
+			return;
+		}
+		System.out.println("mapOvervierChangeZoom");
+		MapOverview mov=(MapOverview) this.mapControl;
+		ViewPort vpView=mov.getAssociatedMapContext().getViewPort();
+		ViewPort vp = mov.getViewPort();
+
+		if (vp.getExtent() != null && vpView.getExtent() != null) {
+
+			// Creamos un recuadro con las coordenadas del raton
+			// traducidas a la del mapa
+//			Rectangle2D realRectangle = new Rectangle2D.Double();
+			Point2D p1=vp.toMapPoint(event.getFrom());
+			Point2D p2=vp.toMapPoint(event.getTo());
+			Envelope realRectangle = null;
+			double x=0;
+			double y=0;
+			double xMax=0;
+			double yMax=0;
+			if (p1.getX()<p2.getX()){
+				x=p1.getX();
+				xMax=p2.getX();
+			}else{
+				x=p2.getX();
+				xMax=p1.getX();
+			}
+			if (p1.getY()<p2.getY()){
+				y=p1.getY();
+				yMax=p2.getY();
+			}else{
+				y=p2.getY();
+				yMax=p1.getY();
+			}
+				try {
+					realRectangle = geomManager.createEnvelope(x,y,xMax,yMax, SUBTYPES.GEOM2D);
+				} catch (CreateEnvelopeException e) {
+					logger.error("Error creating the envelope", e);
+				}
+
+			//			realRectangle.setFrameFromDiagonal(vp.toMapPoint(event.getFrom()),vp.toMapPoint(event.getTo()));
+
+			// Establecemos la forma
+			mov.refreshOverView(realRectangle);
+		}
+
+
+
+	}
+
+	/**
+	 * Determines if has pressed the button 1 of the mouse.
+	 */
+	private boolean checkModifiers(MouseEvent event) {
+		int modifiers = event.getModifiers();
+		int keyPressedMask = InputEvent.BUTTON1_MASK;
+		return ((modifiers & keyPressedMask) == keyPressedMask);
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/toolListeners/MapOverviewChangeZoomListener.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/Encuadrator.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/Encuadrator.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/Encuadrator.java	(revision 38262)
@@ -0,0 +1,89 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.view;
+
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectExtent;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
+import org.gvsig.fmap.mapcontext.MapContext;
+
+
+
+public class Encuadrator implements ListSelectorListener {
+
+	private Project project;
+//	private View vista;
+	private MapContext mapa;
+
+	public Encuadrator(Project project, MapContext map, DefaultViewPanel vista){
+		this.project = project;
+//		this.vista = vista;
+		mapa = map;
+	}
+
+	/**
+	 * @see com.iver.utiles.ListSelectorListener#indexesSelected(int[])
+	 */
+	public void indexesSelected(int[] indices) {
+		mapa.getViewPort().setEnvelope(project.getExtents()[indices[0]].getExtent());
+	}
+
+	/**
+	 * @see com.iver.utiles.ListSelectorListener#indexesRemoved(int[])
+	 */
+	public void indexesRemoved(int[] indices) {
+		for (int i = 0; i < indices.length; i++){
+			project.removeExtent(indices[i]);		
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see com.iver.utiles.ListSelectorListener#newElement(java.lang.String)
+	 */
+	public void newElement(String name) {
+		ProjectExtent extent = ProjectManager.getInstance().createExtent();
+		extent.setDescription(name);
+		extent.setExtent(mapa.getViewPort().getEnvelope());
+		project.addExtent(extent);
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/view/Encuadrator.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/ProjectDocumentListener.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/ProjectDocumentListener.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/ProjectDocumentListener.java	(revision 38262)
@@ -0,0 +1,60 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents;
+
+import org.gvsig.andami.ui.mdiManager.IWindow;
+
+/**
+ * Listener para notificaci�n en los cambios de las vistas de un proyecto.
+ * 
+ * @author Nacho Brodin (nachobrodin@gmail.com)
+ *
+ */
+public interface ProjectDocumentListener {
+
+	/**
+	 * Evento lanzado cuando se crea una ventana de proyecto
+	 * @param  view
+	 *         Ventana creada
+	 */
+	public void windowCreated(IWindow window);
+
+}
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentAction.java	(revision 38262)
@@ -0,0 +1,67 @@
+package org.gvsig.app.project.documents;
+
+import java.util.List;
+
+import org.gvsig.tools.extensionpoint.ExtensionSingleton;
+
+
+/**
+ * Interface que deben den cumplir las  acciones asociadas
+ * a un documento
+ * <br>
+ *  Las acciones de un documento se registraran  a traves
+ *  del metodo registerDocumentAction del ProjectFactory
+ *  <br><br>
+ * Por lo general extender de la clase AbstractDocumentAction
+ * 
+ *  
+ * 
+ */
+
+public interface DocumentAction extends ExtensionSingleton {
+
+	/**
+	 * Gets the unique identifier for this action.
+	 * 
+	 * @return id as String
+	 */
+	public String getId();
+
+	public boolean isVisible(Document document, List<Document> documents);
+	
+	public boolean isAvailable(Document document, List<Document> documents);
+	
+	public void execute(Document document, List<Document> documents);
+	
+	/**
+	 * Gets the group name for this action.
+	 * 
+	 * @return group name as String
+	 */
+	public DocumentActionGroup getGroup();
+	
+	/**
+	 * Representa el orden en el que se presentara la accion entre
+	 * elresto de acciones de este tipo documento alla donde estas se
+	 * presenten.
+	 * 
+	 * @return title as String 
+	 */
+	public int getOrder();
+	
+	/**
+	 * Returns a  phrase with the action title for this document.type.
+	 * 
+	 * @return description as String 
+	 */
+	public String getTitle();
+	
+	/**
+	 * Returns a  paragraph with the action description for this document 
+	 * type.
+	 * 
+	 * @return description as String 
+	 */
+	public String getDescription();	
+	
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentAction.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentManager.java	(revision 38262)
@@ -0,0 +1,265 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2009 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2004-2009 IVER TI
+*   
+*/
+
+package org.gvsig.app.project.documents;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.swing.ImageIcon;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.gui.IDocumentWindow;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.extensionpoint.ExtensionBuilder;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+
+
+/**
+ * Factory of ProjectDocument.
+ *
+ * @author 2005-         Vicente Caballero
+ * @author 2009-         Joaquin del Cerro
+ * 
+ */
+
+public abstract class AbstractDocumentManager implements DocumentManager {
+
+    private static final Logger logger = LoggerFactory.getLogger(AbstractDocumentManager.class);
+
+    /**
+     * Returns the type of document priority.
+     *
+     * This priority is used when order document factories in UI.
+     * 
+     * @return Priority.
+     */
+    public int getPriority() {
+        return 10;
+    }
+
+    /**
+     * Returns the icon for the type of document.
+     *
+     * @return Image.
+     */
+    public ImageIcon getIcon() {
+        return PluginServices.getIconTheme().get("document-icon-sel");
+    }
+
+    /**
+     * Returns the icon for the type of document when is selected
+     *
+     * @return Image.
+     */
+    public ImageIcon getIconSelected() {
+        return PluginServices.getIconTheme().get("document-icon");
+    }
+
+    /**
+     * Returns the title of type of document.
+     *
+     * @return String title for type of document
+     */
+    public String getTitle() {
+        return PluginServices.getText(this, "documento");
+    }
+
+    public AbstractDocument createDocumentByUser() {
+        return createDocument();
+    }
+
+    public Iterator<? extends Document> createDocumentsByUser() {
+        Set<AbstractDocument> doc = new HashSet<AbstractDocument>(1);
+        doc.add(createDocumentByUser());
+        return doc.iterator();
+    }
+
+    /**
+     * @see ExtensionBuilder
+     */
+    public Object create() {
+        return this;
+    }
+
+    /**
+     * @see ExtensionBuilder
+     */
+    public Object create(Object[] args) {
+        return this;
+    }
+
+    /**
+     * @see ExtensionBuilder
+     */
+    @SuppressWarnings("rawtypes")
+    public Object create(Map args) {
+        return this;
+    }
+
+    public IWindow getMainWindow(Document doc) {
+        return getMainWindow(doc, null);
+    }
+
+
+    /**
+     * Return true if the name exists to another document.
+     *
+     * @param project
+     * @param documentName
+     *
+     * @return True if the name exists.
+     * @deprecated use instead  project.getProjectDocument
+     */
+    public boolean existName(Project project, String documentName) {
+        return project.getDocument(documentName, getTypeName())!=null;
+    }
+
+    /**
+     * Return the class or interface for the documents managed by this factory.
+     * @return The document class;
+     */
+    @SuppressWarnings("rawtypes")
+    abstract protected Class getDocumentClass();
+
+    public Object createFromState(PersistentState state) throws PersistenceException {
+        Document doc = this.createDocument();
+        return doc;
+    }
+
+    public void loadFromState(PersistentState state, Object object) throws PersistenceException {
+        Document doc = (Document) object;
+        doc.loadFromState(state);
+    }
+
+    public void saveToState(PersistentState state, Object obj) throws PersistenceException {
+        Document doc = (Document) obj;
+        doc.saveToState(state);
+
+    }
+
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    public boolean manages(Class theClass) {
+        return this.getDocumentClass().isAssignableFrom(theClass);
+    }
+
+    @SuppressWarnings("rawtypes")
+    public boolean manages(PersistentState state) {
+        try {
+            Class theClass;
+            theClass = (Class) Class.forName(state.getTheClassName());
+            return manages(theClass);
+        } catch (ClassNotFoundException e) {
+            return false;
+        }
+    }
+
+    public List<DynStruct> getDefinitions() {
+        DynStruct definition = this.getDefinition(this.getDocumentClass().getName());
+        List<DynStruct> definitions = new ArrayList<DynStruct>();
+        definitions.add(definition);
+        return definitions;
+    }
+
+    public String getDomainName() {
+        return PersistenceManager.DEFAULT_DOMAIN_NAME;
+    }
+
+    public String getDomainURL() {
+        return PersistenceManager.DEFAULT_DOMAIN_URL;
+    }
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    public List getManagedClasses() {
+        List classes = new ArrayList();
+        classes.add(this.getDocumentClass());
+        return classes;
+    }
+
+    @SuppressWarnings("rawtypes")
+    public Class getManagedClass(Object object) {
+        return this.getDocumentClass();
+    }
+
+    @SuppressWarnings("rawtypes")
+    public Class getManagedClass(PersistentState state) {
+        return this.getDocumentClass();
+    }
+
+    @SuppressWarnings("rawtypes")
+    public Class getManagedClass(String name) {
+        return this.getDocumentClass();
+    }
+
+    @SuppressWarnings("rawtypes")
+    public String getManagedClassName(Object object) {
+        Class clazz = this.getManagedClass(object);
+        if (clazz != null){
+            return clazz.getName();
+        }
+        return null;
+    }
+
+    @SuppressWarnings("rawtypes")
+    protected IDocumentWindow createDocumentWindow(Document document) {
+        IDocumentWindow documentWindow = null;
+        Class windowClass = getMainWindowClass();
+
+        try {
+
+            try {
+                Constructor constructor;
+                constructor =
+                    windowClass.getConstructor(new Class[] { Document.class });
+                documentWindow =
+                    (IDocumentWindow) constructor
+                        .newInstance(new Object[] { document });
+            } catch (NoSuchMethodException e1) {
+                documentWindow = (IDocumentWindow) windowClass.newInstance();
+                documentWindow.setDocument(document);
+            }
+        } catch (Exception e) {
+            logger.warn("Can't create the document window.", e);
+            return null;
+        }
+        return documentWindow;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentManager.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DefaultDocumentActionGroup.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DefaultDocumentActionGroup.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DefaultDocumentActionGroup.java	(revision 38262)
@@ -0,0 +1,33 @@
+package org.gvsig.app.project.documents;
+
+public class DefaultDocumentActionGroup implements DocumentActionGroup  {
+
+	private String title;
+	private String description;
+	private int order;
+	private String id;
+
+	public DefaultDocumentActionGroup(String id, String title, String description, int order) {
+		this.id = id;
+		this.title = title;
+		this.description = description;
+		this.order= order;
+	}
+	
+	public String getDescription() {
+		return this.description;
+	}
+
+	public int getOrder() {
+		return this.order;
+	}
+
+	public String getTitle() {
+		return this.title;
+	}
+
+	public String getId() {
+		return this.id;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DefaultDocumentActionGroup.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/Document.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/Document.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/Document.java	(revision 38262)
@@ -0,0 +1,127 @@
+package org.gvsig.app.project.documents;
+
+import java.beans.PropertyChangeListener;
+
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.gui.WindowLayout;
+import org.gvsig.tools.persistence.Persistent;
+
+public interface Document extends Persistent {
+
+	/**
+	 * Obtiene el nombre del elemento
+	 *
+	 * @return
+	 */
+	public String getName();
+
+	/**
+	 * Establece el nombre del elemento
+	 *
+	 * @param string
+	 */
+	public void setName(String string);
+
+	/**
+	 * Obtiene la fecha de creaci�n del elemento
+	 *
+	 * @return
+	 */
+	public String getCreationDate();
+
+	/**
+	 * Obtiene el propietario del elemento
+	 *
+	 * @return
+	 */
+	public String getOwner();
+
+	public String getTypeName();
+	
+	/**
+	 * Establece la fecha de creaci�n del elemento.
+	 *
+	 * @param string
+	 */
+	public void setCreationDate(String string);
+
+	/**
+	 * Establece el propietario del elemento
+	 *
+	 * @param string
+	 */
+	public void setOwner(String string);
+
+	/**
+	 * Obtiene los comentarios del proyecto
+	 *
+	 * @return
+	 */
+	public String getComment();
+
+	/**
+	 * Establece los comentarios del proyecto
+	 *
+	 * @param string
+	 */
+	public void setComment(String string);
+
+	public Project getProject();
+
+	public void setProject(Project project);
+	
+	/**
+	 * Locks this project element protecting it from deleting from the project.
+	 */
+	public abstract void lock();
+
+	/**
+	 * Unlocks this element. So, from now on, it can be removed from the project.
+	 */
+	public abstract void unlock();
+
+	/**
+	 * Tells whether if this project's element is locked/protected or not. A protected
+	 * element cannot be removed from the current project.
+	 *
+	 * @see <b>lock()</b> and <b>unlock()</b> methods.
+	 *
+	 * @return true if it is locked, false otherwise
+	 */
+	public abstract boolean isLocked();
+
+	public DocumentManager getFactory();
+
+	public boolean isModified();
+
+	public void setModified(boolean modified);
+
+	/**
+	 * Register a  ProjectDocumentListener.
+	 * @param  listener  ProjectDocumentListener
+	 */
+	public void addListener(ProjectDocumentListener listener);
+
+	/**
+	 * A�ade un listener para los cambios en las bounded properties
+	 *
+	 * @param listener
+	 */
+	public void addPropertyChangeListener(
+			PropertyChangeListener listener);
+
+	public void afterRemove();
+
+	public void afterAdd();
+
+	public WindowLayout getWindowLayout();
+	
+	public void setWindowLayout(WindowLayout layout) ;
+	
+	public IWindow getPropertiesWindow();
+	
+	public IWindow getMainWindow();
+	
+	
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/Document.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentAction.java	(revision 38262)
@@ -0,0 +1,54 @@
+package org.gvsig.app.project.documents;
+
+import java.util.Arrays;
+
+import org.gvsig.app.project.ProjectManager;
+
+
+public abstract class AbstractDocumentAction implements DocumentAction {
+
+	private String id;
+	protected DocumentActionGroup group;
+	protected String title; 
+	protected String description;
+	protected int order;
+	
+	public AbstractDocumentAction(String id) {
+		this.group = ProjectManager.getInstance().addDocumentActionGroup("default","Default action group", null, 1000);
+		this.id = id;
+		this.title= id;
+		this.description = null;
+		this.order = 1000;
+	}
+
+	public AbstractDocumentAction(DocumentActionGroup group, String id, String title, String description, int order) {
+		this(id);
+		if( group!= null ) {
+			this.group = group;
+		}
+		this.title= title;
+		this.description = description;
+		this.order = order;
+	}
+	
+	public String getDescription() {
+		return this.description;
+	}
+
+	public DocumentActionGroup getGroup() {
+		return this.group;
+	}
+
+	public String getId() {
+		return this.id;
+	}
+
+	public int getOrder() {
+		return this.order;
+	}
+
+	public String getTitle() {
+		return this.title;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocumentAction.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CopyDocumentAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CopyDocumentAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CopyDocumentAction.java	(revision 38262)
@@ -0,0 +1,41 @@
+package org.gvsig.app.project.documents.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.AbstractDocumentAction;
+import org.gvsig.app.project.documents.Document;
+
+
+public class CopyDocumentAction extends AbstractDocumentAction {
+
+	public CopyDocumentAction() {
+		super("copy");
+		this.order = 0;
+		this.title =PluginServices.getText(this, "copiar");
+		this.group = ProjectManager.getInstance().addDocumentActionGroup("ClipboardActions", "Clipboard actions", null, 0);
+	}
+	
+	public void execute(Document document, List<Document> documents) {
+		Project project = ProjectManager.getInstance().getCurrentProject();
+		
+		List<Document> docs = new ArrayList<Document>(documents);
+		if( !docs.contains(documents)) {
+			docs.add(document);
+		}
+		String data = project.exportDocumentsAsText(docs);
+		PluginServices.putInClipboard(data);
+	}
+	
+	public boolean isAvailable(Document document, List<Document> documents) {
+		return true;
+	}
+
+	public boolean isVisible(Document document, List<Document> documents) {
+		return true;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CopyDocumentAction.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CutDocumentAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CutDocumentAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CutDocumentAction.java	(revision 38262)
@@ -0,0 +1,88 @@
+package org.gvsig.app.project.documents.actions;
+
+import java.awt.Component;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.AbstractDocumentAction;
+import org.gvsig.app.project.documents.Document;
+
+
+public class CutDocumentAction extends AbstractDocumentAction {
+	
+	public CutDocumentAction() {
+		super("cut");
+		this.order = 0;
+		this.title =PluginServices.getText(this, "cortar");
+		this.group = ProjectManager.getInstance().addDocumentActionGroup("ClipboardActions", "Clipboard actions", null, 0);
+	}
+	
+
+	public int getOrder() {
+		return 1;
+	}
+
+	public boolean isVisible(Document item, List<Document> selectedItems) {
+		return true;
+	}
+
+	public boolean isAvailable(Document item, List<Document> selectedItems) {
+		return selectedItems.size() > 0;
+	}
+
+	public void execute(Document document, List<Document> documents) {
+		
+		Project project = ProjectManager.getInstance().getCurrentProject();
+		
+		List<Document> docs = new ArrayList<Document>(documents);
+		if( !docs.contains(documents)) {
+			docs.add(document);
+		}
+		String data = project.exportDocumentsAsText(docs);
+		PluginServices.putInClipboard(data);
+
+
+		for (Document doc : documents) {
+			if (doc.isLocked()) {
+				JOptionPane.showMessageDialog(
+						(Component)PluginServices.getMainFrame(),
+						PluginServices.getText(this, "locked_element_it_cannot_be_deleted") + ": " +doc.getName()
+				);
+				return;
+			}
+		}
+
+    	int option=JOptionPane.showConfirmDialog(
+    			(Component)PluginServices.getMainFrame(),
+    			PluginServices.getText(this,"desea_borrar_el_documento")
+    	);
+    	if (option!=JOptionPane.OK_OPTION) {
+    		return;
+    	}
+
+		this.removeDocuments(documents,project);
+
+	}
+
+	private boolean removeDocuments(List<Document> selectedItems,Project project) {
+		for (Document document : selectedItems) {
+			if (document.isLocked()) {
+				JOptionPane.showMessageDialog(
+						(Component)PluginServices.getMainFrame(),
+						PluginServices.getText(this, "locked_element_it_cannot_be_deleted") + ": " +document.getName()
+				);
+			} else {
+				PluginServices.getMDIManager().closeSingletonWindow(document);
+				project.remove(document);
+			}
+		}
+		return true;
+	}
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/CutDocumentAction.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/PasteDocumentAction.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/PasteDocumentAction.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/PasteDocumentAction.java	(revision 38262)
@@ -0,0 +1,54 @@
+package org.gvsig.app.project.documents.actions;
+
+import java.util.List;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.AbstractDocumentAction;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.gui.ProjectWindow;
+
+
+public class PasteDocumentAction extends AbstractDocumentAction {
+
+
+	public PasteDocumentAction() {
+		super("paste");
+		this.order = 0;
+		this.title =PluginServices.getText(this, "pegar");
+		this.group = ProjectManager.getInstance().addDocumentActionGroup("ClipboardActions", "Clipboard actions", null, 0);
+	}
+	
+	public void execute(Document document, List<Document> documents) {
+		String data = PluginServices.getFromClipboard();
+		if (data == null) {
+			return;
+		}
+		ProjectWindow window = ProjectManager.getInstance().getCurrentProjectWindow();
+		Project project = window.getProject();
+		project.importDocuments(
+				data,
+				window.getDocumentSelected()
+		);
+	}
+	
+	public boolean isAvailable(Document document, List<Document> documents) {
+		String data = PluginServices.getFromClipboard();
+		if (data == null) {
+			return false;
+		}
+		ProjectWindow window = ProjectManager.getInstance().getCurrentProjectWindow();
+		Project project = window.getProject();
+		return project.canImportDocuments(
+				data,
+				window.getDocumentSelected()
+		);
+	}
+
+	public boolean isVisible(Document document, List<Document> documents) {
+		return true;
+	}
+
+	
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/actions/PasteDocumentAction.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/SaveException.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/SaveException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/SaveException.java	(revision 38262)
@@ -0,0 +1,72 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.exceptions;
+
+import java.util.Map;
+
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.utils.XMLException;
+
+
+public class SaveException extends XMLException {
+	private Exception e;
+	private String c;
+	public SaveException(Exception e, String c) {
+		this.e=e;
+		this.c=c;
+	}
+	public SaveException() {
+		// TODO Auto-generated constructor stub
+	}
+	public void showError(){
+		NotificationManager.addError("Fallo guardando el Proyecto en : "+c,e);
+	}
+	public void showInfo(){
+		NotificationManager.addInfo("Guardando el Proyecto en : "+c,e);
+	}
+	public void showWarning(){
+		NotificationManager.addWarning("Guardando el Proyecto en : "+c,e);
+	}
+	protected Map values() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/SaveException.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/NameException.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/NameException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/NameException.java	(revision 38262)
@@ -0,0 +1,52 @@
+package org.gvsig.app.project.documents.exceptions;
+
+/**
+ * Excepci�n que indica un conflicto de nombres en los elementos del 
+ * proyecto
+ *
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class NameException extends RuntimeException {
+	/**
+	 *
+	 */
+	public NameException() {
+		super();
+
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param message
+	 */
+	public NameException(String message) {
+		super(message);
+
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param message
+	 * @param cause
+	 */
+	public NameException(String message, Throwable cause) {
+		super(message, cause);
+
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * DOCUMENT ME!
+	 *
+	 * @param cause
+	 */
+	public NameException(Throwable cause) {
+		super(cause);
+
+		// TODO Auto-generated constructor stub
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/NameException.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/OpenException.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/OpenException.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/OpenException.java	(revision 38262)
@@ -0,0 +1,75 @@
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ *  Generalitat Valenciana
+ *   Conselleria d'Infraestructures i Transport
+ *   Av. Blasco Ib��ez, 50
+ *   46010 VALENCIA
+ *   SPAIN
+ *
+ *      +34 963862235
+ *   gvsig@gva.es
+ *      www.gvsig.gva.es
+ *
+ *    or
+ *
+ *   IVER T.I. S.A
+ *   Salamanca 50
+ *   46005 Valencia
+ *   Spain
+ *
+ *   +34 963163400
+ *   dac@iver.es
+ */
+package org.gvsig.app.project.documents.exceptions;
+
+import java.util.Map;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.utils.XMLException;
+
+
+public class OpenException extends XMLException {
+	private Exception e;
+	private String c;
+	public OpenException(Exception e,String c) {
+		this.e=e;
+		this.c=c;
+	}
+	public void showError(){
+		NotificationManager.addError(PluginServices.getText(this,"abrir_proyecto"),e);
+	}
+	public void showInfo(){
+		NotificationManager.addInfo(PluginServices.getText(this,"abrir_proyecto"),e);
+	}
+	public void showWarning(){
+		NotificationManager.addWarning(PluginServices.getText(this,"abrir_proyecto"),e);
+	}
+	protected Map values() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	public void showMessageError(String name) {
+		String message=PluginServices.getText(this,"error_opening_the_document")+": "+name;
+		NotificationManager.showMessageError(message,e);
+
+	}
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/exceptions/OpenException.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocument.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocument.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocument.java	(revision 38262)
@@ -0,0 +1,364 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2009 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2004-2009 IVER TI
+*   
+*/
+package org.gvsig.app.project.documents;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.gui.WindowLayout;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.Persistent;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+
+
+/**
+ * Clase base de los elementos del proyecto (mapas, tablas y vistas)
+ *
+ * @author 2006-2009 Jose Manuel Vivo
+ * @author 2005-         Vicente Caballero
+ * @author 2009-         Joaquin del Cerro
+ * 
+ */
+public abstract class AbstractDocument implements Serializable, Persistent, Document {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 3335040973071555406L;
+
+	public static final String PERSISTENCE_DEFINITION_NAME = "AbstractDocument";
+	
+	protected PropertyChangeSupport change;
+	
+	private Project project;
+	
+	private String name;
+	private String creationDate;
+	private String owner;
+	private String comment;
+	private boolean locked = false;
+	private boolean isModified=false;
+
+	private DocumentManager factory;
+
+	private WindowLayout windowLayout = null;
+	
+	private List<ProjectDocumentListener> projectDocListener = new ArrayList<ProjectDocumentListener>();
+
+	/**
+	 * Creates a new ProjectElement object.
+	 */
+	public AbstractDocument() {
+		creationDate = DateFormat.getDateInstance().format(new Date());
+		change = new PropertyChangeSupport(this);
+		this.factory = null;
+		this.project = null;
+		this.name = PluginServices.getText(this, "untitled");
+	}
+
+	public AbstractDocument(DocumentManager factory) {
+		this();
+		this.factory = factory;
+	}
+	
+	/**
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		return name;
+	}
+
+	/**
+	 * return the name of the document
+	 *
+	 * @return name as String
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Return the name of the type of documents
+	 * 
+	 * @return name as String
+	 */
+	public String getTypeName() {
+		return this.factory.getTypeName();
+	}
+	
+	/**
+	 * Sets the nane of the document
+	 *
+	 * @param name as string
+	 */
+	public void setName(String name) {
+		if (isLocked()) {
+			throw new RuntimeException("this document is locked");
+		}
+		if( name.length()==0) {
+			name = null;
+		} 
+		if( project != null ) {
+			Document doc = project.getDocument(name, this.getTypeName());
+			if( doc != null && !this.equals(doc)  ) {
+				throw new RuntimeException("document name already exists in project");
+			}
+		}
+		String previousName = this.name;
+		this.name = name;
+		change.firePropertyChange("name", previousName, name);
+	}
+
+	/**
+	 * Get the creation date of the document.
+	 *
+	 * @return creation date as String
+	 */
+	public String getCreationDate() {
+		return creationDate;
+	}
+
+	/**
+	 * Get the creator name of the document.
+	 *
+	 * @return creator name as String
+	 */
+	public String getOwner() {
+		return owner;
+	}
+
+	/**
+	 * Set the creation date of the document.
+	 *
+	 * @param string
+	 */
+	public void setCreationDate(String string) {
+		creationDate = string;
+		change.firePropertyChange("creationDate", creationDate, creationDate);
+	}
+
+	/**
+	 * Sets the creator name of the document
+	 *
+	 * @param string
+	 */
+	public void setOwner(String string) {
+		String oldOwner = owner;
+		owner = string;
+		change.firePropertyChange("owner", oldOwner, owner);
+	}
+
+	/**
+	 * Gets the comments asociateds to the document
+	 *
+	 * @return comments as String
+	 */
+	public String getComment() {
+		return comment;
+	}
+
+	/**
+	 * Gets the comments asociateds to the document
+	 *
+	 * @param string
+	 */
+	public void setComment(String string) {
+		String oldComment = comment;
+		comment = string;
+		change.firePropertyChange("comment", oldComment, comment);
+	}
+
+	/**
+	 * Add a listener to monitor the changes in the properties of the document
+	 *
+	 * @param listener
+	 */
+	public synchronized void addPropertyChangeListener(
+		PropertyChangeListener listener) {
+		change.addPropertyChangeListener(listener);
+	}
+
+	/**
+	 * Register a  ProjectDocumentListener.
+	 * @param  listener  ProjectDocumentListener
+	 */
+	public void addListener(ProjectDocumentListener listener) {
+		if(this.projectDocListener.indexOf(listener) == -1)
+			this.projectDocListener.add(listener);
+	}
+
+	
+	public WindowLayout getWindowLayout() {
+		return this.windowLayout;
+	}
+	
+	public void setWindowLayout(WindowLayout layout) {
+		this.windowLayout = layout;
+	}
+	
+	public void loadFromState(PersistentState state)
+			throws PersistenceException {
+		this.setComment( state.getString("comment") );
+		this.setCreationDate( state.getString("creationDate") );
+		this.setName( state.getString("name") );
+		this.setOwner( state.getString("owner") );
+	}
+
+	public void saveToState(PersistentState state) throws PersistenceException {
+		state.set("comment", comment);
+		state.set("creationDate", creationDate);
+		state.set("name", name);
+		state.set("owner", owner);
+		state.set("locked", locked);
+	}
+	
+	public static void registerPersistent() {
+		PersistenceManager manager = ToolsLocator.getPersistenceManager();
+		DynStruct definition = manager.getDefinition(PERSISTENCE_DEFINITION_NAME);
+		if ( definition == null ){
+		    definition = manager.addDefinition(
+		        AbstractDocument.class,
+		        PERSISTENCE_DEFINITION_NAME,
+		        "Document persistence definition",
+		        null, 
+		        null
+		    );  
+		    definition.addDynFieldString("comment").setMandatory(false);
+		    definition.addDynFieldString("creationDate").setMandatory(true);
+		    definition.addDynFieldString("name").setMandatory(true);
+		    definition.addDynFieldString("owner").setMandatory(false);
+		    definition.addDynFieldBoolean("locked").setMandatory(true);
+		}
+	}
+	
+	public Project getProject() {
+		return project;
+	}
+
+	public void setProject(Project project) {
+		this.project = project;
+	}
+	
+
+	/**
+	 * Locks this project element protecting it from deleting from the project.
+	 */
+	public void lock() {		
+		boolean oldLocked = locked;
+		locked = Boolean.TRUE;
+		change.firePropertyChange("locked", oldLocked, locked);
+	}
+
+	/**
+	 * Unlocks this element. So, from now on, it can be removed from the project.
+	 */
+	public void unlock() {
+		boolean oldLocked = locked;
+		locked = Boolean.FALSE;
+		change.firePropertyChange("locked", oldLocked, locked);
+	}
+
+	/**
+	 * Tells whether if this project's element is locked/protected or not. A protected
+	 * element cannot be removed from the current project.
+	 *
+	 * @see <b>lock()</b> and <b>unlock()</b> methods.
+	 *
+	 * @return true if it is locked, false otherwise
+	 */
+	public boolean isLocked() {
+		return locked;
+	}
+
+	public DocumentManager getFactory() {
+		return factory;
+	}
+	
+	public boolean isModified() {
+		return isModified;
+	}
+
+	public void setModified(boolean modified) {
+		isModified=modified;
+	}
+
+	/**
+	 * Throw this event when a new window is created
+	 * @param  window
+	 *         IWindow created
+	 */
+	public void raiseEventCreateWindow(IWindow window) {
+		for (int i = 0; i < projectDocListener.size(); i++)
+			projectDocListener.get(i).windowCreated(window);
+	}
+
+	/**
+	 * @deprecated use {link {@link #raiseEventCreateWindow(IWindow)}
+	 */
+	protected void callCreateWindow(IWindow window) {
+		raiseEventCreateWindow(window);
+	}
+
+	public void afterAdd() {
+		// do nothing by default
+	}
+
+	public void afterRemove() {
+		// do nothing by default
+	}
+
+	public String exportDocumentAsText() {
+		throw new UnsupportedOperationException();
+	}
+
+	public void setStateFromText(String text) {
+		throw new UnsupportedOperationException();
+	}
+
+	public IWindow getPropertiesWindow() {
+		return this.getFactory().getPropertiesWindow(this);
+	}
+	
+	public IWindow getMainWindow() {
+		return this.getFactory().getMainWindow(this);
+	}
+	
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/AbstractDocument.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/AndamiWizard.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/AndamiWizard.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/AndamiWizard.java	(revision 38262)
@@ -0,0 +1,60 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.utils.swing.wizard.Wizard;
+
+/**
+ * Vista de andami que contiene un asistente
+ * 
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class AndamiWizard extends Wizard implements IWindow {
+
+    private static final long serialVersionUID = -4320079648891816068L;
+
+    /**
+     * @param backText
+     * @param nextText
+     * @param finishText
+     * @param cancelText
+     */
+    public AndamiWizard(String backText, String nextText, String finishText,
+        String cancelText) {
+        super(backText, nextText, finishText, cancelText);
+    }
+
+    /**
+     * @see org.gvsig.andami.ui.mdiManager.IWindow#getWindowInfo()
+     */
+    public WindowInfo getWindowInfo() {
+        return new WindowInfo(WindowInfo.ICONIFIABLE | WindowInfo.MAXIMIZABLE
+            | WindowInfo.RESIZABLE);
+    }
+
+    public Object getWindowProfile() {
+        // TODO Auto-generated method stub
+        return WindowInfo.PROPERTIES_PROFILE;
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/AndamiWizard.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ListManagerSkin.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ListManagerSkin.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ListManagerSkin.java	(revision 38262)
@@ -0,0 +1,197 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.GridLayout;
+
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.gui.beans.swing.JButton;
+import org.gvsig.utils.listManager.ListManager;
+
+public class ListManagerSkin extends JPanel {
+
+    private static final long serialVersionUID = 5194138202300759734L;
+    private JScrollPane jScrollPane = null;
+    private JPanel jPanel = null;
+    private JButton jButtonDown = null;
+    private JButton jButtonUp = null;
+    private JButton jButtonAdd = null;
+    private JButton jButtonDel = null;
+
+    private ListManager listManager;// = new ListManager();
+
+    private JList jList = null;
+    private JPanel jPanel1 = null;
+
+    /**
+     * This method initializes jScrollPane
+     * 
+     * @return javax.swing.JScrollPane
+     */
+    private JScrollPane getJScrollPane() {
+        if (jScrollPane == null) {
+            jScrollPane = new JScrollPane();
+            jScrollPane.setViewportView(getJList());
+        }
+        return jScrollPane;
+    }
+
+    /**
+     * This method initializes jPanel
+     * 
+     * @return javax.swing.JPanel
+     */
+    private JPanel getJPanel() {
+        if (jPanel == null) {
+            jPanel = new JPanel();
+            FlowLayout flowLayout = new FlowLayout();
+            flowLayout.setAlignment(FlowLayout.RIGHT);
+            jPanel.setLayout(flowLayout);
+            jPanel.add(getJPanel1(), null);
+        }
+        return jPanel;
+    }
+
+    /**
+     * This method initializes jButton
+     * 
+     * @return javax.swing.JButton
+     */
+    private JButton getJButtonDown() {
+        if (jButtonDown == null) {
+            jButtonDown = new JButton("abajo");
+            jButtonDown.setText(PluginServices.getText(this, "abajo"));
+        }
+        return jButtonDown;
+    }
+
+    /**
+     * This method initializes jButton1
+     * 
+     * @return javax.swing.JButton
+     */
+    private JButton getJButtonUp() {
+        if (jButtonUp == null) {
+            jButtonUp = new JButton("arriba");
+            jButtonUp.setText(PluginServices.getText(this, "arriba"));
+        }
+        return jButtonUp;
+    }
+
+    /**
+     * This method initializes jButton2
+     * 
+     * @return javax.swing.JButton
+     */
+    private JButton getJButtonAdd() {
+        if (jButtonAdd == null) {
+            jButtonAdd = new JButton("A�adir");
+            jButtonAdd.setText(PluginServices.getText(this, "Anadir"));
+        }
+        return jButtonAdd;
+    }
+
+    /**
+     * This method initializes jButton3
+     * 
+     * @return javax.swing.JButton
+     */
+    private JButton getJButtonDel() {
+        if (jButtonDel == null) {
+            jButtonDel = new JButton("Eliminar");
+            jButtonDel.setText(PluginServices.getText(this, "Eliminar"));
+        }
+        return jButtonDel;
+    }
+
+    /**
+     * This method initializes jList
+     * 
+     * @return javax.swing.JList
+     */
+    private JList getJList() {
+        if (jList == null) {
+            jList = new JList();
+        }
+        return jList;
+    }
+
+    /**
+     * This is the default constructor
+     */
+    public ListManagerSkin(boolean down) {
+        super();
+        listManager = new ListManager(down);
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     * 
+     * @return void
+     */
+    private void initialize() {
+        this.setLayout(new BorderLayout());
+        this.setSize(421, 349);
+        this.add(getJScrollPane(), BorderLayout.CENTER);
+        this.add(getJPanel(), BorderLayout.EAST);
+        listManager.setBtnDown(getJButtonDown());
+        listManager.setBtnUp(getJButtonUp());
+        listManager.setBtnAdd(getJButtonAdd());
+        listManager.setBtnDel(getJButtonDel());
+        listManager.setList(getJList());
+        listManager.initialize();
+
+    }
+
+    /**
+     * @return Returns the listManager.
+     */
+    public ListManager getListManager() {
+        return listManager;
+    }
+
+    /**
+     * This method initializes jPanel1
+     * 
+     * @return javax.swing.JPanel
+     */
+    private JPanel getJPanel1() {
+        if (jPanel1 == null) {
+            jPanel1 = new JPanel(new GridLayout(6, 1, 5, 5));
+
+            jPanel1.setPreferredSize(new Dimension(100, 180));
+            jPanel1.add(getJButtonAdd(), null);
+            jPanel1.add(getJButtonDel(), null);
+            jPanel1.add(getJButtonUp(), null);
+            jPanel1.add(getJButtonDown(), null);
+        }
+        return jPanel1;
+    }
+} // @jve:decl-index=0:visual-constraint="10,10"

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ListManagerSkin.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/SymbolCellEditor.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/SymbolCellEditor.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/SymbolCellEditor.java	(revision 38262)
@@ -0,0 +1,188 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.awt.Component;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.ArrayList;
+import java.util.EventObject;
+
+import javax.swing.JButton;
+import javax.swing.JTable;
+import javax.swing.event.CellEditorListener;
+import javax.swing.event.ChangeEvent;
+import javax.swing.table.TableCellEditor;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.project.documents.view.legend.gui.PanelEditSymbol;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+
+/**
+ * Cell Editor de ISymbols. Controla los eventos de edici�n que se realicen
+ * sobre la columna de s�mbolos.
+ * 
+ * @author Vicente Caballero Navarro
+ */
+public class SymbolCellEditor extends JButton implements TableCellEditor {
+
+    private static final long serialVersionUID = -913612642474934455L;
+    private ArrayList listeners = new ArrayList();
+    private ISymbol symbol;
+    private int shapeType;
+    private PanelEditSymbol symbolPanel;
+
+    public SymbolCellEditor(int shapeType) {
+        this.shapeType = shapeType;
+        addMouseListener(new MouseListener() {
+
+            public void mouseClicked(MouseEvent e) {
+                if (e.getClickCount() == 2) {
+                    symbolPanel.setSymbol(symbol);
+                    // symbolPanel.setShapeType(SymbolCellEditor.this.shapeType);
+                    symbolPanel.setShapeType(symbol.getSymbolType());
+                    PluginServices.getMDIManager().addWindow(symbolPanel);
+                    if (symbolPanel.isOK()) {
+                        symbol = (ISymbol) symbolPanel.getSymbol();
+                        stopCellEditing();
+                    }
+                }
+            }
+
+            public void mouseEntered(MouseEvent e) {
+            }
+
+            public void mouseExited(MouseEvent e) {
+            }
+
+            public void mousePressed(MouseEvent e) {
+            }
+
+            public void mouseReleased(MouseEvent e) {
+            }
+
+        });
+        addKeyListener(new KeyAdapter() {
+
+            public void keyReleased(KeyEvent e) {
+                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
+                    stopCellEditing();
+                } else
+                    if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
+                        cancelCellEditing();
+                    }
+            }
+        });
+        symbolPanel = new PanelEditSymbol();
+
+    }
+
+    // Implement the one CellEditor method that AbstractCellEditor doesn't.
+    public Object getCellEditorValue() {
+        return symbol;
+    }
+
+    // Implement the one method defined by TableCellEditor.
+    public Component getTableCellEditorComponent(JTable table, Object value,
+        boolean isSelected, int row, int column) {
+        symbol = (ISymbol) value;
+        // setBackground(symbol.getColor());
+
+        return this;
+    }
+
+    /**
+     * DOCUMENT ME!
+     */
+    public void cancelCellEditing() {
+        if (symbol != null) {
+            // setBackground(symbol.getColor());
+        }
+
+        for (int i = 0; i < listeners.size(); i++) {
+            CellEditorListener l = (CellEditorListener) listeners.get(i);
+            ChangeEvent evt = new ChangeEvent(this);
+            l.editingCanceled(evt);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    public boolean stopCellEditing() {
+        for (int i = 0; i < listeners.size(); i++) {
+            CellEditorListener l = (CellEditorListener) listeners.get(i);
+            ChangeEvent evt = new ChangeEvent(this);
+            l.editingStopped(evt);
+        }
+
+        return true;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param anEvent
+     *            DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    public boolean isCellEditable(EventObject anEvent) {
+        return true;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param anEvent
+     *            DOCUMENT ME!
+     * 
+     * @return DOCUMENT ME!
+     */
+    public boolean shouldSelectCell(EventObject anEvent) {
+        return true;
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param l
+     *            DOCUMENT ME!
+     */
+    public void addCellEditorListener(CellEditorListener l) {
+        listeners.add(l);
+    }
+
+    /**
+     * DOCUMENT ME!
+     * 
+     * @param l
+     *            DOCUMENT ME!
+     */
+    public void removeCellEditorListener(CellEditorListener l) {
+        listeners.remove(l);
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/SymbolCellEditor.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectElementListModel.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectElementListModel.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectElementListModel.java	(revision 38262)
@@ -0,0 +1,72 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.util.ArrayList;
+
+import javax.swing.AbstractListModel;
+
+/**
+ * Modelo para presentar los ProjectElement's (vistas, mapas, tablas) en un
+ * JList
+ * 
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class ProjectElementListModel extends AbstractListModel {
+
+    private static final long serialVersionUID = 5224594892273078623L;
+    private ArrayList els;
+
+    /**
+     * Creates a new MyListModel object.
+     * 
+     * @param els
+     *            Elementos del modelo
+     */
+    public ProjectElementListModel(ArrayList els) {
+        this.els = els;
+    }
+
+    /**
+     * Obtiene el tama�o de la lista
+     * 
+     * @return tama�o de la lista
+     */
+    public int getSize() {
+        if (els == null) {
+            return 0;
+        }
+
+        return els.size();
+    }
+
+    /**
+     * @see javax.swing.ListModel#getElementAt(int)
+     */
+    public Object getElementAt(int index) {
+        if (els == null) {
+            return "";
+        }
+
+        return els.get(index);
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectElementListModel.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectWindow.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectWindow.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectWindow.java	(revision 38262)
@@ -0,0 +1,1115 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.swing.AbstractButton;
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.border.TitledBorder;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.help.Help;
+import org.gvsig.andami.messages.NotificationManager;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.SingletonWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.AbstractDocument;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.DocumentManager;
+import org.gvsig.tools.observer.Observable;
+import org.gvsig.tools.observer.Observer;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.usability.UsabilitySwingManager;
+import org.gvsig.utils.DefaultListModel;
+
+/**
+ * Clase principal del proyecto donde se puede operar para crear cualquier tipo
+ * de documento.
+ * 
+ * @author Vicente Caballero Navarro
+ * @author gvSIG team
+ */
+public class ProjectWindow extends JPanel implements PropertyChangeListener,
+    IWindow, SingletonWindow, Observer {
+
+    private static final long serialVersionUID = 7315293357719796556L;
+
+    public static final String PERSISTENCE_DEFINITION_NAME = "ProjectWindow";
+
+    private JScrollPane documentTypes = null;
+    private JPanel documentTypesList = null;
+    private JRadioButton[] btnsDocuments = null;
+    private ButtonGroup grupo = new ButtonGroup();
+    private JPanel documentsPanel = null;
+    private JList lstDocs = null;
+    private JPanel jPanel2 = null;
+    private JButton btnNuevo = null;
+    private JButton btnPropiedades = null;
+    private JButton btnAbrir = null;
+    private JButton btnBorrar = null;
+    private JButton btnRenombrar = null;
+    private JPanel propertiesPanel = null;
+    private JLabel jLabel = null;
+    private JLabel lblNombreSesion = null;
+    private JLabel jLabel1 = null;
+    private JLabel lblGuardado = null;
+    private JLabel jLabel2 = null;
+    private JLabel lblFecha = null;
+    private JButton btnImportar = null;
+    private JButton btnExportar = null;
+    private JButton btnEditar = null;
+    // The properties of the Project Manager window (size, position, etc):
+    private WindowInfo m_viewInfo = null;
+
+    private Project project;
+    private UsabilitySwingManager manager = ToolsSwingLocator
+        .getUsabilitySwingManager();
+
+    private JScrollPane documentsScrollPane = null;
+    private JPanel projectButtonsPanel = null;
+
+    /**
+     * This is the default constructor
+     * 
+     * @param project
+     *            Extension
+     */
+    public ProjectWindow() {
+        super();
+        initialize();
+        refreshControls();
+        Help.getHelp().enableHelp(this, this.getClass().getName());
+        // Observe document factory registration changes
+        ProjectManager.getInstance().addObserver(this);
+    }
+
+    /**
+     * Asigna el proyecto a la ventana
+     * 
+     * @param project
+     *            Proyecto con el que se operar� a trav�s de este di�logo
+     */
+    public void setProject(Project project) {
+        this.project = project;
+        project.addPropertyChangeListener(this);
+        refreshControls();
+    }
+
+    /**
+     * Activa los botones de la botonera del medio o los desactiva en funci�n de
+     * que est� seleccionado o no un elemento de proyecto en la lista del medio
+     */
+    private void activarBotones() {
+        if (lstDocs.getSelectedIndex() != -1) {
+            btnAbrir.setEnabled(true);
+            btnBorrar.setEnabled(true);
+            if (lstDocs.getSelectedIndices().length == 1) {
+                btnRenombrar.setEnabled(true);
+                btnPropiedades.setEnabled(true);
+            } else {
+                btnRenombrar.setEnabled(false);
+                btnPropiedades.setEnabled(false);
+            }
+        } else {
+            btnAbrir.setEnabled(false);
+            btnBorrar.setEnabled(false);
+            btnRenombrar.setEnabled(false);
+            btnPropiedades.setEnabled(false);
+        }
+    }
+
+    /**
+     * Refresca la lista de elementos de proyecto con vistas, mapas o tablas,
+     * seg�n la opci�n activada
+     */
+    private void refreshList() {
+        if (project != null) {
+            DefaultListModel model = null;
+            String tituloMarco =
+                PluginServices.getText(this, "documentos_existentes");
+
+            String doctype = getDocumentSelected();
+            model = new DefaultListModel(project.getDocuments(doctype));
+            tituloMarco = getDocumentSelectedName();
+
+            lstDocs.setModel(model);
+            ((TitledBorder) getDocumentsPanel().getBorder())
+                .setTitle(tituloMarco);
+            getDocumentsPanel().repaint(1);
+            activarBotones();
+        }
+    }
+
+    /**
+     * Devuelve el nombre del tipo de documento activo (el mismo que
+     * ProjectDocumentFactory.getRegisterName)
+     * 
+     * 
+     * @return
+     */
+
+    public String getDocumentSelected() {
+        JRadioButton btnSelected = null;
+        for (int i = 0; i < btnsDocuments.length; i++) {
+            if (btnsDocuments[i].isSelected()) {
+                btnSelected = btnsDocuments[i];
+                return btnSelected.getName();
+            }
+        }
+
+        return null;
+    }
+
+    private String getDocumentSelectedName() {
+        JRadioButton btnSelected = null;
+        for (int i = 0; i < btnsDocuments.length; i++) {
+            if (btnsDocuments[i].isSelected()) {
+                btnSelected = btnsDocuments[i];
+                return btnSelected.getText();
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Refresca las etiquetas con la informaci�n del proyecto
+     */
+    private void refreshProperties() {
+        if (project != null) {
+            lblNombreSesion.setText(project.getName());
+            String path = ProjectExtension.getPath();
+            if (path != null) {
+                File f = new File(path);
+                lblGuardado.setText(f.toString());
+            } else {
+                lblGuardado.setText("");
+            }
+            lblFecha.setText(project.getCreationDate());
+        }
+    }
+
+    /**
+     * Refresca todo el di�logo
+     */
+    public void refreshControls() {
+        refreshList();
+        refreshProperties();
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        this.setLayout(new GridBagLayout());
+        GridBagConstraints c = new GridBagConstraints();
+        c.insets = new Insets(2, 5, 2, 5);
+
+        c.fill = GridBagConstraints.HORIZONTAL;
+        c.weightx = 1.0d;
+        c.weighty = 0.0d;
+        c.gridy = 0;
+        add(getDocumentTypesPanel(), c);
+
+        c.fill = GridBagConstraints.BOTH;
+        c.gridy = 1;
+        c.weightx = 1.0d;
+        c.weighty = 1.0d;
+        add(getDocumentsPanel(), c);
+
+        c.fill = GridBagConstraints.HORIZONTAL;
+        c.weightx = 1.0d;
+        c.weighty = 0.0d;
+        c.gridy = 2;
+        add(getPropertiesPanel(), c);
+
+        this.setMinimumSize(this.getPreferredSize());
+        refreshDocuments();
+    }
+
+    private void createDocumentsInProject(String doctype) {
+        Iterator<? extends Document> documents =
+            ProjectManager.getInstance().createDocumentsByUser(doctype);
+        for (; (documents != null) && (documents.hasNext());) {
+            try {
+                Document document = documents.next();
+                project.add(document);
+                int index =
+                    ((DefaultListModel) lstDocs.getModel()).indexOf(document);
+                lstDocs.setSelectedIndex(index);
+                lstDocs.requestFocus();
+                openDocumentWindow(document);
+            } catch (Exception e) {
+                NotificationManager.addError(e);
+            }
+        }
+    }
+
+    /**
+     * Crea un nuevo project element
+     * 
+     * @throws Exception
+     *             DOCUMENT ME!
+     */
+    private void newProjectDocument() throws Exception {
+        String doctype = getDocumentSelected();
+        createDocumentsInProject(doctype);
+    }
+
+    /**
+     * Abre la ventana de un nuevo documento
+     */
+    private void abrir() {
+        int[] indexes = lstDocs.getSelectedIndices();
+        for (int i = indexes.length - 1; i >= 0; i--) {
+            int index = indexes[i];
+            if (index == -1) {
+                return;
+            }
+            String doctype = getDocumentSelected();
+            List<Document> documents = project.getDocuments(doctype);
+            Document doc = documents.get(index);
+            openDocumentWindow(doc);
+        }
+    }
+
+    private void openDocumentWindow(Document doc) {
+        if (doc != null) {
+            IWindow window = doc.getFactory().getMainWindow(doc);
+            if (window == null) {
+                JOptionPane.showMessageDialog(
+                    (Component) PluginServices.getMainFrame(),
+                    PluginServices.getText(this, "error_opening_the_document"));
+                return;
+            }
+            PluginServices.getMDIManager().addWindow(window,
+                GridBagConstraints.FIRST_LINE_END);
+            project.setModified(true);
+        }
+    }
+
+    /**
+     * Cambia el nombre de un project element
+     */
+    private void renombrar() {
+        int index = lstDocs.getSelectedIndex();
+
+        if (index == -1) {
+            return;
+        }
+        String doctype = getDocumentSelected();
+        List<Document> documents = project.getDocuments(doctype);
+        Document doc = documents.get(index);
+
+        if (doc.isLocked()) {
+            JOptionPane.showMessageDialog(this, PluginServices.getText(this,
+                "locked_element_it_cannot_be_renamed"));
+            return;
+        }
+
+        JOptionPane pane = new JOptionPane();
+        pane.setMessage(PluginServices.getText(this, "introduce_nombre"));
+        pane.setMessageType(JOptionPane.QUESTION_MESSAGE);
+        pane.setWantsInput(true);
+        pane.setInitialSelectionValue(doc.getName());
+        pane.setInputValue(doc.getName());
+        JDialog dlg =
+            pane.createDialog((Component) PluginServices.getMainFrame(),
+                PluginServices.getText(this, "renombrar"));
+        dlg.setModal(true);
+        dlg.setVisible(true);
+
+        String nuevoNombre = pane.getInputValue().toString().trim();
+
+        if (nuevoNombre.length() == 0) {
+            return;
+        }
+
+        for (int i = 0; i < lstDocs.getModel().getSize(); i++) {
+            if (i == index) {
+                continue;
+            }
+            if (((AbstractDocument) lstDocs.getModel().getElementAt(i))
+                .getName().equals(nuevoNombre)) {
+                JOptionPane.showMessageDialog(
+                    (Component) PluginServices.getMainFrame(),
+                    PluginServices.getText(this, "elemento_ya_existe"));
+                return;
+            }
+
+        }
+        doc.setName(nuevoNombre);
+
+        refreshList();
+        project.setModified(true);
+    }
+
+    /**
+     * Borra un project element
+     */
+    private void borrar() {
+        int res =
+            JOptionPane.showConfirmDialog(
+                (Component) PluginServices.getMainFrame(),
+                PluginServices.getText(this, "confirmar_borrar"),
+                PluginServices.getText(this, "borrar"),
+                JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
+
+        int lastremoved = 0;
+        if (res == JOptionPane.YES_OPTION) {
+            int[] indexes = lstDocs.getSelectedIndices();
+            for (int i = indexes.length - 1; i >= 0; i--) {
+                int index = indexes[i];
+                String s = getDocumentSelected();
+                List<Document> documents = project.getDocuments(s);
+                Document doc = documents.get(index);
+                if (doc.isLocked()) {
+                    JOptionPane.showMessageDialog(this, PluginServices.getText(
+                        this, "locked_element_it_cannot_be_deleted"));
+                    return;
+                }
+                PluginServices.getMDIManager().closeSingletonWindow(doc);
+                project.remove(doc);
+                lastremoved = index;
+            }
+            if (lastremoved > lstDocs.getModel().getSize()) {
+                lastremoved = lstDocs.getModel().getSize();
+            }
+            if (lastremoved > 0) {
+                lstDocs.setSelectedIndex(lastremoved);
+            }
+            refreshList();
+            project.setModified(true);
+        }
+    }
+
+    /**
+     * Muestra el di�logo de propiedades de un project element
+     */
+    private void propiedades() {
+        int index = lstDocs.getSelectedIndex();
+
+        if (index == -1) {
+            return;
+        }
+
+        IWindow dlg = null;
+        String doctype = getDocumentSelected();
+        List<Document> documents = project.getDocuments(doctype);
+        Document doc = documents.get(index);
+        if (doc.isLocked()) {
+            JOptionPane.showMessageDialog(this,
+                PluginServices.getText(this, "locked_element"));
+            return;
+        }
+        dlg = doc.getFactory().getPropertiesWindow(doc);
+        PluginServices.getMDIManager().addWindow(dlg);
+
+        refreshControls();
+        lstDocs.setSelectedIndex(index);
+        project.setModified(true);
+    }
+
+    /**
+     * This method initializes jPanel
+     * 
+     * @return JPanel
+     */
+    private JComponent getDocumentTypesPanel() {
+        if (documentTypes == null) {
+
+            documentTypesList =
+                new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
+            documentTypesList.setName("tipoDocPanel");
+            fillDocumentTypeButtons();
+
+            documentTypes = new JScrollPane(documentTypesList);
+            Dimension dim = documentTypesList.getPreferredSize();
+            documentTypes.setMinimumSize(new Dimension(dim.width,
+                dim.height + 35));
+            documentTypes.setBorder(BorderFactory.createTitledBorder(null,
+                PluginServices.getText(this, "tipos_de_documentos"),
+                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+                javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
+        }
+
+        return documentTypes;
+    }
+
+    /**
+     * Adds a button for each document type
+     */
+    private void fillDocumentTypeButtons() {
+        JRadioButton[] btns = getBtnDocumentTypes();
+        for (int i = 0; i < btns.length; i++) {
+            documentTypesList.add(btns[i]);
+        }
+    }
+
+    /**
+     * This method initializes btnVistas
+     * 
+     * @return JRadioButton
+     */
+    private JRadioButton[] getBtnDocumentTypes() {
+        if (btnsDocuments == null) {
+
+            List<JRadioButton> btns = new ArrayList<JRadioButton>();
+            List<DocumentManager> factories =
+                ProjectManager.getInstance().getDocumentManagers();
+            Collections.sort(factories, new Comparator<DocumentManager>() {
+
+                public int compare(DocumentManager arg0, DocumentManager arg1) {
+                    return arg0.getPriority() - arg1.getPriority();
+                }
+
+            });
+            for (DocumentManager documentFactory : factories) {
+                JRadioButton rb = new JRadioButton();
+
+                rb.setIcon(documentFactory.getIcon());
+                rb.setSelectedIcon(documentFactory.getIconSelected());
+                rb.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+                rb.setText(documentFactory.getTitle());
+                rb.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+                rb.setName(documentFactory.getTypeName());
+                rb.addChangeListener(new javax.swing.event.ChangeListener() {
+
+                    public void stateChanged(javax.swing.event.ChangeEvent e) {
+                        refreshList();
+                    }
+                });
+                btns.add(rb);
+            }
+            btnsDocuments = btns.toArray(new JRadioButton[0]);
+        }
+        return btnsDocuments;
+    }
+
+    /**
+     * This method initializes jPanel1
+     * 
+     * @return JPanel
+     */
+    private JPanel getDocumentsPanel() {
+        if (documentsPanel == null) {
+            documentsPanel = new JPanel();
+
+            GridBagLayout layout2 = new GridBagLayout();
+            GridBagConstraints c = new GridBagConstraints();
+
+            documentsPanel.setLayout(layout2);
+
+            c.insets = new Insets(2, 5, 2, 5);
+            c.anchor = GridBagConstraints.WEST;
+            c.fill = GridBagConstraints.BOTH;
+            c.weightx = 1.0;
+            c.weighty = 1.0;
+            documentsPanel.add(getDocumentsScrollPane(), c);
+
+            c.anchor = GridBagConstraints.EAST;
+            c.fill = GridBagConstraints.NONE;
+            c.weightx = 0;
+            c.weighty = 0;
+            documentsPanel.add(getDocumentButtonsPanel(), c);
+
+            documentsPanel.setBorder(javax.swing.BorderFactory
+                .createTitledBorder(null,
+                    PluginServices.getText(this, "documentos_existentes"),
+                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null,
+                    null));
+        }
+
+        return documentsPanel;
+    }
+
+    /**
+     * This method initializes lstDocs
+     * 
+     * @return JList
+     */
+    private JList getDocumentsList() {
+        if (lstDocs == null) {
+            lstDocs = new JList();
+            lstDocs.addMouseListener(new java.awt.event.MouseAdapter() {
+
+                public AbstractDocument[] getSelecteds() {
+                    if (lstDocs.getSelectedIndex() < 0) {
+                        return new AbstractDocument[0];
+                    }
+                    Object[] seleteds = lstDocs.getSelectedValues();
+                    AbstractDocument[] returnValue =
+                        new AbstractDocument[seleteds.length];
+                    System.arraycopy(seleteds, 0, returnValue, 0,
+                        seleteds.length);
+                    return returnValue;
+                }
+
+                public AbstractDocument getItem(java.awt.event.MouseEvent e) {
+                    if (lstDocs.getSelectedIndex() < 0) {
+                        return null;
+                    }
+
+                    return null;
+                }
+
+                @Override
+                public void mouseClicked(java.awt.event.MouseEvent e) {
+                    if (e.getButton() == java.awt.event.MouseEvent.BUTTON3) {
+                        /*
+                         * getDocumentSelected();//ProjectView
+                         * getDocumentSelectedName();//Vista
+                         */
+                        String docType = getDocumentSelected();
+                        AbstractDocument[] selecteds = this.getSelecteds();
+
+                        if (selecteds == null) {
+                            return;
+                        }
+                        DocumentContextMenu menu =
+                            new DocumentContextMenu(docType, this.getItem(e),
+                                selecteds);
+                        if (!menu.hasActions()) {
+                            return;
+                        }
+                        lstDocs.add(menu);
+                        menu.show(e.getComponent(), e.getX(), e.getY());
+                        return;
+                    }
+
+                    if (e.getClickCount() == 2) {
+                        abrir();
+                    }
+
+                }
+            });
+            lstDocs
+                .addListSelectionListener(new javax.swing.event.ListSelectionListener() {
+
+                    public void valueChanged(
+                        javax.swing.event.ListSelectionEvent e) {
+                        activarBotones();
+                    }
+                });
+        }
+
+        return lstDocs;
+    }
+
+    /**
+     * This method initializes jPanel2
+     * 
+     * @return JPanel
+     */
+    private JPanel getDocumentButtonsPanel() {
+        if (jPanel2 == null) {
+            jPanel2 = new JPanel();
+
+            // FlowLayout layout = new FlowLayout();
+            GridLayout layout = new GridLayout(5, 1);
+            layout.setVgap(7);
+
+            jPanel2.setLayout(layout);
+            jPanel2.add(getBtnNuevo(), null);
+            jPanel2.add(getBtnAbrir(), null);
+            jPanel2.add(getBtnRenombrar(), null);
+            jPanel2.add(getBtnBorrar(), null);
+            jPanel2.add(getBtnPropiedades(), null);
+        }
+
+        return jPanel2;
+    }
+
+    /**
+     * This method initializes btnNuevo
+     * 
+     * @return JButton
+     */
+    private JButton getBtnNuevo() {
+        if (btnNuevo == null) {
+            btnNuevo = manager.createJButton();
+            btnNuevo.setName("btnNuevo");
+            btnNuevo.setText(PluginServices.getText(this, "nuevo"));
+            btnNuevo.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            btnNuevo.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    try {
+                        newProjectDocument();
+                    } catch (Exception e1) {
+                        NotificationManager.addError(e1.getLocalizedMessage(),
+                            e1);
+                    }
+                }
+            });
+        }
+
+        return btnNuevo;
+    }
+
+    /**
+     * This method initializes btnPropiedades
+     * 
+     * @return JButton
+     */
+    private JButton getBtnPropiedades() {
+        if (btnPropiedades == null) {
+            btnPropiedades = manager.createJButton();
+            ;
+            btnPropiedades.setText(PluginServices.getText(this, "propiedades"));
+            btnPropiedades.setName("btnPropiedades");
+            btnPropiedades.setEnabled(false);
+            btnPropiedades.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            btnPropiedades
+                .addActionListener(new java.awt.event.ActionListener() {
+
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        propiedades();
+                    }
+                });
+        }
+
+        return btnPropiedades;
+    }
+
+    /**
+     * This method initializes btnAbrir
+     * 
+     * @return JButton
+     */
+    private JButton getBtnAbrir() {
+        if (btnAbrir == null) {
+            btnAbrir = manager.createJButton();
+            btnAbrir.setName("btnAbrir");
+            btnAbrir.setText(PluginServices.getText(this, "abrir"));
+            btnAbrir.setEnabled(false);
+            btnAbrir.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            btnAbrir.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    abrir();
+                }
+            });
+        }
+
+        return btnAbrir;
+    }
+
+    /**
+     * This method initializes btnBorrar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnBorrar() {
+        if (btnBorrar == null) {
+            btnBorrar = manager.createJButton();
+            btnBorrar.setText(PluginServices.getText(this, "borrar"));
+            btnBorrar.setName("btnBorrar");
+            btnBorrar.setEnabled(false);
+            btnBorrar.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            btnBorrar.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    borrar();
+                }
+            });
+        }
+
+        return btnBorrar;
+    }
+
+    /**
+     * This method initializes btnRenombrar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnRenombrar() {
+        if (btnRenombrar == null) {
+            btnRenombrar = manager.createJButton();
+            btnRenombrar.setName("btnRenombrar");
+            btnRenombrar.setText(PluginServices.getText(this, "renombrar"));
+            btnRenombrar.setEnabled(false);
+            btnRenombrar.setMargin(new java.awt.Insets(2, 2, 2, 2));
+            btnRenombrar.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    renombrar();
+                }
+            });
+        }
+
+        return btnRenombrar;
+    }
+
+    /**
+     * This method initializes jPanel3
+     * 
+     * @return JPanel
+     */
+    private JPanel getPropertiesPanel() {
+        if (propertiesPanel == null) {
+            propertiesPanel = new JPanel(new GridBagLayout());
+            GridBagConstraints c = new GridBagConstraints();
+
+            c.insets = new Insets(2, 5, 0, 5);
+            c.anchor = GridBagConstraints.WEST;
+            c.gridx = 0;
+            c.gridy = 0;
+            propertiesPanel.add(getJLabel(), c);
+
+            c.fill = GridBagConstraints.HORIZONTAL;
+            c.weightx = 1.0;
+            c.gridx = 1;
+            propertiesPanel.add(getLblNombreSesion(), c);
+
+            c.gridx = 0;
+            c.gridy = 1;
+            c.fill = GridBagConstraints.NONE;
+            c.weightx = 0.0;
+            propertiesPanel.add(getJLabel1(), c);
+
+            c.fill = GridBagConstraints.HORIZONTAL;
+            c.weightx = 1.0;
+            c.gridx = 1;
+            propertiesPanel.add(getLblGuardado(), c);
+
+            c.gridx = 0;
+            c.gridy = 2;
+            c.fill = GridBagConstraints.NONE;
+            c.weightx = 0.0;
+            propertiesPanel.add(getJLabel2(), c);
+
+            c.fill = GridBagConstraints.HORIZONTAL;
+            c.weightx = 1.0;
+            c.gridx = 1;
+            propertiesPanel.add(getLblFecha(), c);
+
+            c.gridx = 0;
+            c.gridwidth = 2;
+            c.gridy = 4;
+            c.fill = GridBagConstraints.HORIZONTAL;
+            c.anchor = GridBagConstraints.EAST;
+            propertiesPanel.add(getProjectsButtonPanel(), c);
+
+            propertiesPanel.setBorder(javax.swing.BorderFactory
+                .createTitledBorder(null,
+                    PluginServices.getText(this, "propiedades_sesion"),
+                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null,
+                    null));
+        }
+
+        return propertiesPanel;
+    }
+
+    /**
+     * This method initializes jLabel
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel() {
+        if (jLabel == null) {
+            jLabel = new JLabel();
+            jLabel.setText(PluginServices.getText(this, "nombre_sesion") + ":");
+        }
+
+        return jLabel;
+    }
+
+    /**
+     * This method initializes lblNombreSesion
+     * 
+     * @return JLabel
+     */
+    private JLabel getLblNombreSesion() {
+        if (lblNombreSesion == null) {
+            lblNombreSesion = new JLabel();
+            lblNombreSesion.setText("");
+            lblNombreSesion.setName("lblNombreSesion");
+            lblNombreSesion.setAutoscrolls(true);
+        }
+
+        return lblNombreSesion;
+    }
+
+    /**
+     * This method initializes jLabel1
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel1() {
+        if (jLabel1 == null) {
+            jLabel1 = new JLabel();
+            jLabel1.setText(PluginServices.getText(this, "guardado") + ":");
+        }
+
+        return jLabel1;
+    }
+
+    /**
+     * This method initializes lblGuardado
+     * 
+     * @return JLabel
+     */
+    private JLabel getLblGuardado() {
+        if (lblGuardado == null) {
+            lblGuardado = new JLabel();
+            lblGuardado.setText("");
+            lblGuardado.setAutoscrolls(true);
+        }
+
+        return lblGuardado;
+    }
+
+    /**
+     * This method initializes jLabel2
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel2() {
+        if (jLabel2 == null) {
+            jLabel2 = new JLabel();
+            jLabel2
+                .setText(PluginServices.getText(this, "creation_date") + ":");
+        }
+
+        return jLabel2;
+    }
+
+    /**
+     * This method initializes lblFecha
+     * 
+     * @return JLabel
+     */
+    private JLabel getLblFecha() {
+        if (lblFecha == null) {
+            lblFecha = new JLabel();
+            lblFecha.setText("");
+            lblFecha.setAutoscrolls(true);
+        }
+
+        return lblFecha;
+    }
+
+    /**
+     * This method initializes btnImportar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnImportar() {
+        if (btnImportar == null) {
+            btnImportar = manager.createJButton();
+            btnImportar.setPreferredSize(new java.awt.Dimension(80, 23));
+            btnImportar.setText(PluginServices.getText(this, "importar"));
+            btnImportar.setName("btnImportar");
+            btnImportar.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        }
+
+        return btnImportar;
+    }
+
+    /**
+     * This method initializes btnExportar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnExportar() {
+        if (btnExportar == null) {
+            btnExportar = manager.createJButton();
+            btnExportar.setPreferredSize(new java.awt.Dimension(80, 23));
+            btnExportar.setText(PluginServices.getText(this, "exportar"));
+            btnExportar.setName("btnExportar");
+            btnExportar.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        }
+
+        return btnExportar;
+    }
+
+    /**
+     * This method initializes btnEditar
+     * 
+     * @return JButton
+     */
+    private JButton getBtnEditar() {
+        if (btnEditar == null) {
+            btnEditar = manager.createJButton();
+            btnEditar.setPreferredSize(new java.awt.Dimension(80, 23));
+            btnEditar.setText(PluginServices.getText(this, "propiedades"));
+
+            btnEditar.setName("btnEditar");
+            btnEditar.setMargin(new java.awt.Insets(2, 2, 2, 2));
+
+            btnEditar.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    ProjectProperties dlg = new ProjectProperties(project);
+                    PluginServices.getMDIManager().addWindow(dlg);
+                    refreshProperties();
+                }
+            });
+        }
+
+        return btnEditar;
+    }
+
+    /**
+     * This method initializes jScrollPane
+     * 
+     * @return JScrollPane
+     */
+    private JScrollPane getDocumentsScrollPane() {
+        if (documentsScrollPane == null) {
+            documentsScrollPane = new JScrollPane();
+            documentsScrollPane.setViewportView(getDocumentsList());
+            documentsScrollPane.setPreferredSize(new java.awt.Dimension(200,
+                100));
+            documentsScrollPane
+                .setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
+        }
+
+        return documentsScrollPane;
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.SingletonWindow#getWindowModel()
+     */
+    public Object getWindowModel() {
+        return project;
+    }
+
+    public Project getProject() {
+        return project;
+    }
+
+    /**
+     * This method is used to get <strong>an initial</strong> ViewInfo object
+     * for this Project Manager window. It is not intended to retrieve the
+     * ViewInfo object in a later time. <strong>Use
+     * PluginServices.getMDIManager().getViewInfo(view) to retrieve the ViewInfo
+     * object at any time after the creation of the object.
+     * 
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+     */
+    public WindowInfo getWindowInfo() {
+        if (m_viewInfo == null) {
+            m_viewInfo =
+                new WindowInfo(WindowInfo.MAXIMIZABLE | WindowInfo.RESIZABLE);
+            m_viewInfo.setWidth(this.getWidth());
+            m_viewInfo.setHeight(this.getHeight());
+            m_viewInfo.setNormalWidth(this.getPreferredSize().width);
+            m_viewInfo.setNormalHeight(this.getPreferredSize().height);
+            m_viewInfo.setMinimumSize(getPreferredSize());
+
+            m_viewInfo.setTitle(PluginServices.getText(this, "titulo"));
+        }
+        return m_viewInfo;
+    }
+
+    public void propertyChange(PropertyChangeEvent evt) {
+        refreshControls();
+    }
+
+    /**
+     * This method initializes jPanel4
+     * 
+     * @return JPanel
+     */
+    private JPanel getProjectsButtonPanel() {
+        if (projectButtonsPanel == null) {
+            projectButtonsPanel = new JPanel();
+
+            projectButtonsPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
+            projectButtonsPanel
+                .setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
+            // TODO: implement export and import functions
+            // projectButtonsPanel.add(getBtnImportar(), null);
+            // projectButtonsPanel.add(getBtnExportar(), null);
+            projectButtonsPanel.add(getBtnEditar(), null);
+        }
+
+        return projectButtonsPanel;
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.PROJECT_PROFILE;
+    }
+
+    public void update(Observable observable, Object notification) {
+        if (observable instanceof ProjectManager) {
+            refreshDocuments();
+        }
+    }
+
+    private void refreshDocuments() {
+        // Setting it to null will make it recreate in the next
+        // getBtnDocuments() call
+        this.btnsDocuments = null;
+
+        // Clear previous document type buttons
+        documentTypesList.removeAll();
+        for (Enumeration<AbstractButton> buttons = grupo.getElements(); buttons
+            .hasMoreElements();) {
+            grupo.remove(buttons.nextElement());
+        }
+
+        JRadioButton[] btnDocuments = getBtnDocumentTypes();
+        for (int i = 0; i < btnDocuments.length; i++) {
+            grupo.add(btnDocuments[i]);
+        }
+        if (btnDocuments.length > 0) {
+            btnDocuments[0].setSelected(true);
+        }
+        fillDocumentTypeButtons();
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectWindow.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/IDocumentWindow.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/IDocumentWindow.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/IDocumentWindow.java	(revision 38262)
@@ -0,0 +1,66 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.IWindowListener;
+import org.gvsig.andami.ui.mdiManager.SingletonWindow;
+import org.gvsig.app.project.documents.Document;
+
+/**
+ * @author Miguel �ngel Querol Carratal� <querol_mig@gva.es>
+ * 
+ *         Interfaz que tienen que implementar las clases de interfaz de
+ *         usuario de los documentos que se quieran insertar en gvSIG. Estas
+ *         clases se usar�n para cargar y guardar las propiedades graficas de la
+ *         ventana
+ *         del documento como tama�os y posiciones.
+ */
+public interface IDocumentWindow extends IWindow, IWindowListener,
+    SingletonWindow {
+
+    /**
+     * M�todo para obtener un windowData con las propiedades de la
+     * ventana del documento como pueden ser tama�os, posiciones y
+     * estados de sliders, divisores etc. Este m�todo ser� llamado
+     * para guardar los datos a disco. Lo llamar� la clase project para
+     * obtener los datos y asi guardarlos.
+     * 
+     * @return un windowData con los datos de la ventana.
+     */
+    public WindowLayout getWindowLayout();
+
+    /**
+     * M�todo para cargar los datos de la ventana de proyecto. El widowData
+     * guardado
+     * se le pasa a la clase de interfaz de usuario correspondiente a la ventana
+     * del documento.
+     * 
+     * @param winData
+     */
+    public void setWindowLayout(WindowLayout layout);
+
+    public void setDocument(Document document);
+
+    public Document getDocument();
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/IDocumentWindow.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/PDFViewerWindow.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/PDFViewerWindow.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/PDFViewerWindow.java	(revision 38262)
@@ -0,0 +1,484 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.print.PageFormat;
+import java.awt.print.Paper;
+import java.awt.print.PrinterException;
+import java.awt.print.PrinterJob;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.net.URL;
+
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.PrintRequestAttributeSet;
+import javax.print.attribute.standard.PageRanges;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+
+import org.jpedal.Display;
+import org.jpedal.PdfDecoder;
+import org.jpedal.exception.PdfException;
+import org.jpedal.objects.PrinterOptions;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+
+public class PDFViewerWindow extends JPanel implements IWindow,
+    PropertyChangeListener {
+
+    private static final long serialVersionUID = 4022263653761949704L;
+    private WindowInfo m_viewInfo;
+    private PdfDecoder pf;
+
+    // private String viewerTitle="Visor PDF";
+    private String currentFile = null;
+    private int currentPage = 1;
+    private final JLabel pageCounter1 = new JLabel(" "
+        + PluginServices.getText(this, "Pagina") + " ");
+    private JTextField pageCounter2 = new JTextField(4);
+    private JLabel pageCounter3 =
+        new JLabel(PluginServices.getText(this, "de"));
+
+    public PDFViewerWindow(String currentFile) {
+        super();
+        initialize(currentFile);
+    }
+
+    private void initialize(String currentFile) {
+
+        pf = new PdfDecoder();
+        this.currentFile = currentFile;
+        // currentFile = "C:\\Cartografia\\prueba.pdf";
+
+        try {
+            // this opens the PDF and reads its internal details
+            pf.openPdfFile(currentFile);
+
+            // these 2 lines opens page 1 at 100% scaling
+            pf.decodePage(currentPage);
+            float scaling = (float) 1.5;
+            pf.setPageParameters(scaling, 1); // values scaling (1=100%). page
+                                              // number
+            pf.setDisplayView(Display.SINGLE_PAGE, Display.DISPLAY_CENTERED);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        // setup our GUI display
+        initializeViewer();
+
+        // set page number display
+        pageCounter2.setText(currentPage + "");
+        pageCounter3.setText(PluginServices.getText(this, "de") + " "
+            + pf.getPageCount() + " ");
+    }
+
+    public void setCurrentFile(String currentFile) {
+        this.currentFile = currentFile;
+    }
+
+    private void initializeViewer() {
+
+        Container cPane = this;
+        cPane.setLayout(new BorderLayout());
+
+        // JButton open = initOpenBut();//setup open button
+        Component[] itemsToAdd = initChangerPanel();// setup page display and
+                                                    // changer
+
+        JPanel topBar = new JPanel();
+        topBar.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0));
+        // topBar.add(pageChanger);
+        for (int i = 0; i < itemsToAdd.length; i++) {
+            topBar.add(itemsToAdd[i]);
+        }
+
+        cPane.add(topBar, BorderLayout.NORTH);
+
+        JScrollPane display = getJPaneViewer();// setup scrollpane with pdf
+                                               // display inside
+        cPane.add(display, BorderLayout.CENTER);
+
+        // pack();
+
+        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
+        setSize(screen.width / 2, screen.height / 2);
+        // <start-13>
+        // setLocationRelativeTo(null);//centre on screen
+        // <end-13>
+        setVisible(true);
+    }
+
+    private Component[] initChangerPanel() {
+
+        Component[] list = new Component[12];
+
+        /** back to page 1 */
+        JButton start = new JButton();
+        start.setBorderPainted(false);
+        URL startImage =
+            getClass().getResource(
+                "/org/jpedal/examples/simpleviewer/res/start.gif");
+        start.setIcon(new ImageIcon(startImage));
+        start.setToolTipText(PluginServices.getText(this, "primera_pagina"));
+        // currentBar1.add(start);
+        list[0] = start;
+        start.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                if (currentFile != null && currentPage != 1) {
+                    currentPage = 1;
+                    try {
+                        pf.decodePage(currentPage);
+                        pf.invalidate();
+                        repaint();
+                    } catch (Exception e1) {
+                        System.err.println("back to page 1");
+                        e1.printStackTrace();
+                    }
+
+                    // set page number display
+                    pageCounter2.setText(currentPage + "");
+                }
+            }
+        });
+
+        /** back 10 icon */
+        JButton fback = new JButton();
+        fback.setBorderPainted(false);
+        URL fbackImage =
+            getClass().getResource(
+                "/org/jpedal/examples/simpleviewer/res/fback.gif");
+        fback.setIcon(new ImageIcon(fbackImage));
+        fback
+            .setToolTipText(PluginServices.getText(this, "diez_paginas_atras"));
+        // currentBar1.add(fback);
+        list[1] = fback;
+        fback.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                if (currentFile != null && currentPage > 10) {
+                    currentPage -= 10;
+                    try {
+                        pf.decodePage(currentPage);
+                        pf.invalidate();
+                        repaint();
+                    } catch (Exception e1) {
+                        System.err.println("back 10 pages");
+                        e1.printStackTrace();
+                    }
+
+                    // set page number display
+                    pageCounter2.setText(currentPage + "");
+                }
+            }
+        });
+
+        /** back icon */
+        JButton back = new JButton();
+        back.setBorderPainted(false);
+        URL backImage =
+            getClass().getResource(
+                "/org/jpedal/examples/simpleviewer/res/back.gif");
+        back.setIcon(new ImageIcon(backImage));
+        back.setToolTipText(PluginServices.getText(this, "pagina_atras"));
+        // currentBar1.add(back);
+        list[2] = back;
+        back.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                if (currentFile != null && currentPage > 1) {
+                    currentPage -= 1;
+                    try {
+                        pf.decodePage(currentPage);
+                        pf.invalidate();
+                        repaint();
+                    } catch (Exception e1) {
+                        System.err.println("back 1 page");
+                        e1.printStackTrace();
+                    }
+
+                    // set page number display
+                    pageCounter2.setText(currentPage + "");
+                }
+            }
+        });
+
+        pageCounter2.setEditable(true);
+        pageCounter2.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent a) {
+
+                String value = pageCounter2.getText().trim();
+                int newPage;
+
+                // allow for bum values
+                try {
+                    newPage = Integer.parseInt(value);
+
+                    if ((newPage > pf.getPageCount()) | (newPage < 1)) {
+                        return;
+                    }
+
+                    currentPage = newPage;
+                    try {
+                        pf.decodePage(currentPage);
+                        pf.invalidate();
+                        repaint();
+                    } catch (Exception e) {
+                        System.err.println("page number entered");
+                        e.printStackTrace();
+                    }
+
+                } catch (Exception e) {
+                    JOptionPane.showMessageDialog(
+                        null,
+                        ">" + value + "< "
+                            + PluginServices.getText(this, "valor_incorrecto")
+                            + pf.getPageCount());
+                }
+
+            }
+
+        });
+
+        /** put page count in middle of forward and back */
+        // currentBar1.add(pageCounter1);
+        // currentBar1.add(new JPanel());//add gap
+        // currentBar1.add(pageCounter2);
+        // currentBar1.add(new JPanel());//add gap
+        // currentBar1.add(pageCounter3);
+        list[3] = pageCounter1;
+        list[4] = new JPanel();
+        list[5] = pageCounter2;
+        list[6] = new JPanel();
+        list[7] = pageCounter3;
+
+        /** forward icon */
+        JButton forward = new JButton();
+        forward.setBorderPainted(false);
+        URL fowardImage =
+            getClass().getResource(
+                "/org/jpedal/examples/simpleviewer/res/forward.gif");
+        forward.setIcon(new ImageIcon(fowardImage));
+        forward.setToolTipText(PluginServices.getText(this, "pagina_delante"));
+        // currentBar1.add(forward);
+        list[8] = forward;
+        forward.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                if (currentFile != null && currentPage < pf.getPageCount()) {
+                    currentPage += 1;
+                    try {
+                        pf.decodePage(currentPage);
+                        pf.invalidate();
+                        repaint();
+                    } catch (Exception e1) {
+                        System.err.println("forward 1 page");
+                        e1.printStackTrace();
+                    }
+
+                    // set page number display
+                    pageCounter2.setText(currentPage + "");
+                }
+            }
+        });
+
+        /** fast forward icon */
+        JButton fforward = new JButton();
+        fforward.setBorderPainted(false);
+        URL ffowardImage =
+            getClass().getResource(
+                "/org/jpedal/examples/simpleviewer/res/fforward.gif");
+        fforward.setIcon(new ImageIcon(ffowardImage));
+        fforward.setToolTipText(PluginServices.getText(this,
+            "10_paginas_delante"));
+        // currentBar1.add(fforward);
+        list[9] = fforward;
+        fforward.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                if (currentFile != null && currentPage < pf.getPageCount() - 9) {
+                    currentPage += 10;
+                    try {
+                        pf.decodePage(currentPage);
+                        pf.invalidate();
+                        repaint();
+                    } catch (Exception e1) {
+                        System.err.println("forward 10 pages");
+                        e1.printStackTrace();
+                    }
+
+                    // set page number display
+                    pageCounter2.setText(currentPage + "");
+                }
+            }
+        });
+
+        /** goto last page */
+        JButton end = new JButton();
+        end.setBorderPainted(false);
+        URL endImage =
+            getClass().getResource(
+                "/org/jpedal/examples/simpleviewer/res/end.gif");
+        end.setIcon(new ImageIcon(endImage));
+        end.setToolTipText(PluginServices.getText(this, "ultima_pagina"));
+        // currentBar1.add(end);
+        list[10] = end;
+        end.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                if (currentFile != null && currentPage < pf.getPageCount()) {
+                    currentPage = pf.getPageCount();
+                    try {
+                        pf.decodePage(currentPage);
+                        pf.invalidate();
+                        repaint();
+                    } catch (Exception e1) {
+                        System.err.println("forward to last page");
+                        e1.printStackTrace();
+                    }
+
+                    // set page number display
+                    pageCounter2.setText(currentPage + "");
+                }
+            }
+        });
+
+        /** Print */
+        JButton print = new JButton();
+        print.setBorderPainted(false);
+        URL printImage =
+            getClass().getResource(
+                "/org/jpedal/examples/simpleviewer/res/print.gif");
+        print.setIcon(new ImageIcon(printImage));
+        print.setToolTipText(PluginServices.getText(this, "imprimir"));
+        // currentBar1.add(end);
+        list[11] = print;
+        print.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                printPDF();
+            }
+        });
+        return list;
+    }
+
+    public void printPDF() {
+        PrinterJob printJob = PrinterJob.getPrinterJob();
+
+        printJob.setPageable(pf);
+        // decode_pdf.setPageFormat(pf);
+
+        /**
+         * this additional functionality is available under printable interface
+         */
+        // setup default values to add into JPS
+        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
+        aset.add(new PageRanges(1, pf.getPageCount()));
+
+        boolean printFile = printJob.printDialog(aset);
+
+        // set page range
+        PageRanges r = (PageRanges) aset.get(PageRanges.class);
+        if (r != null) {
+            try {
+                PageFormat pformat = printJob.defaultPage();
+
+                Paper paper = new Paper();
+                paper.setSize(595, 842); // default A4
+                paper.setImageableArea(43, 43, 545, 792); // actual print 'zone'
+
+                pformat.setPaper(paper);
+
+                // pageable provides a method getPageFormat(int p) - this method
+                // allows it to be set by JPedal
+                pf.setPageFormat(pformat);
+                pf.setPagePrintRange(r);
+            } catch (PdfException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+
+        /**
+         * generic call to both Pageable and printable
+         */
+        if (printFile) {
+            try {
+                pf.setPrintPageScalingMode(PrinterOptions.PAGE_SCALING_FIT_TO_PRINTER_MARGINS);
+                printJob.print();
+            } catch (PrinterException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+    }
+
+    private JScrollPane getJPaneViewer() {
+        JScrollPane currentScroll = new JScrollPane();
+        currentScroll
+            .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+        currentScroll
+            .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+
+        currentScroll.setViewportView(pf);
+        return currentScroll;
+    }
+
+    public WindowInfo getWindowInfo() {
+        if (m_viewInfo == null) {
+            m_viewInfo = new WindowInfo(WindowInfo.PALETTE);
+            m_viewInfo.setMaximizable(true);
+            m_viewInfo.setWidth(this.getWidth());
+            m_viewInfo.setHeight(this.getHeight());
+            m_viewInfo.setTitle(PluginServices.getText(this, "pdf_viewer"));
+        }
+        return m_viewInfo;
+    }
+
+    public void propertyChange(PropertyChangeEvent arg0) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public Object getWindowProfile() {
+        // TODO Auto-generated method stub
+        return WindowInfo.TOOL_PROFILE;
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/PDFViewerWindow.java
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectProperties.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectProperties.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectProperties.java	(revision 38262)
@@ -0,0 +1,478 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.io.File;
+
+import javax.swing.JButton;
+import javax.swing.JColorChooser;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.andami.ui.mdiManager.WindowInfo;
+import org.gvsig.app.extension.ProjectExtension;
+import org.gvsig.app.project.Project;
+import org.gvsig.gui.beans.AcceptCancelPanel;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+
+/**
+ * Propiedades del proyecto
+ * 
+ * @author Fernando Gonz�lez Cort�s
+ * @author gvSIG team
+ */
+public class ProjectProperties extends JPanel implements IWindow {
+
+    private static final long serialVersionUID = 8952351479171919349L;
+    private Project project = null;
+    private JPanel jPanel = null;
+    private JLabel jLabel = null;
+    private JLabel jLabel1 = null;
+    private JLabel jLabel2 = null;
+    private JLabel jLabel3 = null;
+    private JLabel jLabel4 = null;
+    private JTextField txtName = null;
+    private JTextField txtPath = null;
+    private JTextField txtCreationDate = null;
+    private JTextField txtModificationDate = null;
+    private JTextField txtOwner = null;
+    private JLabel jLabel5 = null;
+    private JTextArea txtComments = null;
+    private JLabel jLabel6 = null;
+    private JLabel lblColor = null;
+    private JButton btnColor = null;
+    private JScrollPane jScrollPane = null;
+
+    /**
+     * This is the default constructor
+     * 
+     * @param owner
+     *            Frame padre del di�logo
+     * @param p
+     *            Proyecto cuyos datos se muestran en el di�logo
+     */
+    public ProjectProperties(Project p) {
+        project = p;
+        initialize();
+    }
+
+    /**
+     * This method initializes this
+     */
+    private void initialize() {
+        setLayout(new GridLayout(1, 1, 0, 0));
+        add(getJPanel());
+
+        getTxtName().setText(project.getName());
+
+        String path = ProjectExtension.getPath();
+
+        if (path != null) {
+            File f = new File(path);
+            getTxtPath().setText(f.toString());
+        } else {
+            getTxtPath().setText("");
+        }
+
+        getTxtOwner().setText(project.getOwner());
+        getTxtComments().setText(project.getComments());
+        getTxtCreationDate().setText(project.getCreationDate());
+        getTxtModificationDate().setText(project.getModificationDate());
+
+        getLblColor().setBackground(project.getSelectionColor());
+    }
+
+    /**
+     * This method initializes jPanel
+     * 
+     * @return JPanel
+     */
+    private JPanel getJPanel() {
+        if (jPanel == null) {
+
+            jPanel = new JPanel(new GridBagLayout());
+            GridBagConstraints c = new GridBagConstraints();
+            c.insets = new Insets(2, 5, 0, 5);
+            c.gridy = -1;
+
+            addRow(c, getJLabel(), getTxtName());
+            addRow(c, getJLabel1(), getTxtPath());
+            addRow(c, getJLabel2(), getTxtCreationDate());
+            addRow(c, getJLabel3(), getTxtModificationDate());
+            addRow(c, getJLabel4(), getTxtOwner());
+
+            c.anchor = GridBagConstraints.WEST;
+            c.weightx = 0.0d;
+            c.gridx = 0;
+            c.gridy++;
+            jPanel.add(getJLabel6(), c);
+
+            JPanel colorPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+            colorPanel.add(getLblColor());
+            colorPanel.add(getBtnColor());
+
+            c.fill = GridBagConstraints.HORIZONTAL;
+            c.weightx = 1.0d;
+            c.gridx = 1;
+            jPanel.add(colorPanel, c);
+
+            c.anchor = GridBagConstraints.WEST;
+            c.weightx = 0.0d;
+            c.gridx = 0;
+            c.gridy++;
+            jPanel.add(getJLabel5(), c);
+
+            c.fill = GridBagConstraints.BOTH;
+            c.weightx = 1.0d;
+            c.gridy++;
+            c.gridwidth = 2;
+            jPanel.add(getJScrollPane(), c);
+
+            java.awt.event.ActionListener okAction =
+                new java.awt.event.ActionListener() {
+
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        project.setName(txtName.getText());
+                        project.setOwner(txtOwner.getText());
+                        project.setComments(txtComments.getText());
+                        project.setSelectionColor(lblColor.getBackground());
+                        PluginServices.getMDIManager().closeWindow(
+                            ProjectProperties.this);
+                    }
+                }, cancelAction = new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    PluginServices.getMDIManager().closeWindow(
+                        ProjectProperties.this);
+                }
+            };
+
+            c.anchor = GridBagConstraints.EAST;
+            c.gridx = 0;
+            c.gridwidth = 2;
+            c.gridy++;
+            c.weightx = 1.0d;
+
+            jPanel.add(new AcceptCancelPanel(okAction, cancelAction), c);
+        }
+
+        return jPanel;
+    }
+
+    private void addRow(GridBagConstraints c, JComponent label, JComponent text) {
+        c.anchor = GridBagConstraints.WEST;
+        c.weightx = 0.0d;
+        c.gridx = 0;
+        c.gridy++;
+        jPanel.add(label, c);
+
+        c.fill = GridBagConstraints.HORIZONTAL;
+        c.weightx = 1.0d;
+        c.gridx = 1;
+        jPanel.add(text, c);
+    }
+
+    /**
+     * This method initializes jLabel
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel() {
+        if (jLabel == null) {
+            jLabel = new JLabel();
+            jLabel.setText(PluginServices.getText(this, "nombre_sesion") + ":");
+        }
+
+        return jLabel;
+    }
+
+    /**
+     * This method initializes jLabel1
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel1() {
+        if (jLabel1 == null) {
+            jLabel1 = new JLabel();
+            jLabel1.setText(PluginServices.getText(this, "path") + ":");
+        }
+
+        return jLabel1;
+    }
+
+    /**
+     * This method initializes jLabel2
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel2() {
+        if (jLabel2 == null) {
+            jLabel2 = new JLabel();
+            jLabel2
+                .setText(PluginServices.getText(this, "creation_date") + ":");
+        }
+
+        return jLabel2;
+    }
+
+    /**
+     * This method initializes jLabel3
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel3() {
+        if (jLabel3 == null) {
+            jLabel3 = new JLabel();
+            jLabel3.setText(PluginServices.getText(this, "modification_date")
+                + ":");
+        }
+
+        return jLabel3;
+    }
+
+    /**
+     * This method initializes jLabel4
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel4() {
+        if (jLabel4 == null) {
+            jLabel4 = new JLabel();
+            jLabel4.setText(PluginServices.getText(this, "owner") + ":");
+        }
+
+        return jLabel4;
+    }
+
+    /**
+     * This method initializes txtName
+     * 
+     * @return JTextField
+     */
+    private JTextField getTxtName() {
+        if (txtName == null) {
+            txtName = new JTextField(20);
+        }
+
+        return txtName;
+    }
+
+    /**
+     * This method initializes txtPath
+     * 
+     * @return JTextField
+     */
+    private JTextField getTxtPath() {
+        if (txtPath == null) {
+            txtPath = new JTextField(20);
+            txtPath.setEditable(false);
+            txtPath.setBackground(java.awt.Color.white);
+        }
+
+        return txtPath;
+    }
+
+    /**
+     * This method initializes txtCreationDate
+     * 
+     * @return JTextField
+     */
+    private JTextField getTxtCreationDate() {
+        if (txtCreationDate == null) {
+            txtCreationDate = new JTextField(20);
+            txtCreationDate.setEditable(false);
+            txtCreationDate.setBackground(java.awt.Color.white);
+        }
+
+        return txtCreationDate;
+    }
+
+    /**
+     * This method initializes txtModificationDate
+     * 
+     * @return JTextField
+     */
+    private JTextField getTxtModificationDate() {
+        if (txtModificationDate == null) {
+            txtModificationDate = new JTextField(20);
+            txtModificationDate.setEditable(false);
+            txtModificationDate.setBackground(java.awt.Color.white);
+        }
+
+        return txtModificationDate;
+    }
+
+    /**
+     * This method initializes txtOwner
+     * 
+     * @return JTextField
+     */
+    private JTextField getTxtOwner() {
+        if (txtOwner == null) {
+            txtOwner = new JTextField(20);
+        }
+
+        return txtOwner;
+    }
+
+    /**
+     * This method initializes jLabel5
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel5() {
+        if (jLabel5 == null) {
+            jLabel5 = new JLabel();
+            jLabel5.setText(PluginServices.getText(this, "comentarios") + ":");
+        }
+
+        return jLabel5;
+    }
+
+    /**
+     * This method initializes txtComments
+     * 
+     * @return JTextArea
+     */
+    private JTextArea getTxtComments() {
+        if (txtComments == null) {
+            txtComments = new JTextArea();
+            txtComments.setRows(4);
+            txtComments.setColumns(20);
+        }
+
+        return txtComments;
+    }
+
+    /**
+     * This method initializes jLabel6
+     * 
+     * @return JLabel
+     */
+    private JLabel getJLabel6() {
+        if (jLabel6 == null) {
+            jLabel6 = new JLabel();
+            jLabel6.setText(PluginServices.getText(this, "selection_color")
+                + ":");
+        }
+
+        return jLabel6;
+    }
+
+    /**
+     * This method initializes lblColor
+     * 
+     * @return JLabel
+     */
+    private JLabel getLblColor() {
+        if (lblColor == null) {
+            lblColor = new JLabel();
+
+            lblColor.setPreferredSize(getBtnColor().getPreferredSize());
+            lblColor.setOpaque(true);
+        }
+
+        return lblColor;
+    }
+
+    /**
+     * This method initializes btnColor
+     * 
+     * @return JButton
+     */
+    private JButton getBtnColor() {
+        if (btnColor == null) {
+            btnColor =
+                ToolsSwingLocator.getUsabilitySwingManager().createJButton(
+                    "...");
+
+            btnColor.addActionListener(new java.awt.event.ActionListener() {
+
+                public void actionPerformed(java.awt.event.ActionEvent e) {
+                    Color ret =
+                        JColorChooser.showDialog(ProjectProperties.this,
+                            PluginServices.getText(this, "selection_color"),
+                            lblColor.getBackground());
+
+                    if (ret != null) {
+                        lblColor.setBackground(ret);
+                    }
+                }
+            });
+        }
+
+        return btnColor;
+    }
+
+    /**
+     * This method initializes jScrollPane
+     * 
+     * @return JScrollPane
+     */
+    private JScrollPane getJScrollPane() {
+        if (jScrollPane == null) {
+            jScrollPane = new JScrollPane(getTxtComments());
+            Dimension dim = getTxtComments().getPreferredSize();
+            jScrollPane
+                .setMinimumSize(new Dimension(dim.width, dim.height + 10));
+        }
+
+        return jScrollPane;
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
+     */
+    public WindowInfo getWindowInfo() {
+        WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
+        this.validate();
+        Dimension dim = getPreferredSize();
+        m_viewinfo.setWidth(dim.width);
+        m_viewinfo.setHeight(dim.height);
+        m_viewinfo.setTitle(PluginServices.getText(this, "propiedades_sesion"));
+        return m_viewinfo;
+    }
+
+    /**
+     * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
+     */
+    public void viewActivated() {
+    }
+
+    public Object getWindowProfile() {
+        return WindowInfo.DIALOG_PROFILE;
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ProjectProperties.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/WindowLayout.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/WindowLayout.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/WindowLayout.java	(revision 38262)
@@ -0,0 +1,62 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.gvsig.tools.persistence.Persistent;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+/**
+ * @author cesar
+ * 
+ */
+public class WindowLayout implements Persistent {
+
+    Map<String, String> data = null;
+
+    public WindowLayout() {
+        data = new HashMap<String, String>();
+    }
+
+    public void set(String key, String value) {
+        data.put(key, value);
+    }
+
+    public String get(String key) {
+        return (String) data.get(key);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void loadFromState(PersistentState state)
+        throws PersistenceException {
+        this.data.clear();
+        this.data.putAll((Map<String, String>) state.get("data"));
+    }
+
+    public void saveToState(PersistentState state) throws PersistenceException {
+        state.set("data", data);
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/WindowLayout.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/DocumentContextMenu.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/DocumentContextMenu.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/DocumentContextMenu.java	(revision 38262)
@@ -0,0 +1,111 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.DocumentAction;
+import org.gvsig.app.project.documents.DocumentActionGroup;
+
+public class DocumentContextMenu extends JPopupMenu {
+
+    /**
+	 *
+	 */
+    private static final long serialVersionUID = -8153469580038240864L;
+
+    private Document item;
+    private List<Document> seleteds;
+    private List<DocumentAction> actions = null;
+
+    public DocumentContextMenu(String doctype, Document document,
+        Document[] seletedDocuments) {
+        super();
+
+        List<DocumentAction> allActions =
+            ProjectManager.getInstance().getDocumentActions(doctype);
+        List<DocumentAction> actions = new ArrayList<DocumentAction>();
+        DocumentActionGroup group = null;
+
+        this.item = document;
+        this.seleteds = Arrays.asList(seletedDocuments);
+        if (allActions != null) {
+            for (DocumentAction action : allActions) {
+                if (action.isVisible(document, this.seleteds)) {
+                    actions.add(action);
+                    // Create menu item
+                    MenuItem item = new MenuItem(action.getTitle(), action);
+
+                    item.setEnabled(action
+                        .isAvailable(this.item, this.seleteds));
+                    if (!action.getGroup().equals(group)) {
+                        if (group != null) {
+                            this.addSeparator();
+                        }
+                        group = action.getGroup();
+                    }
+                    this.add(item);
+
+                }
+            }
+        }
+        this.actions = actions;
+    }
+
+    public boolean hasActions() {
+        return actions != null || actions.size() > 0;
+    }
+
+    private class MenuItem extends JMenuItem implements ActionListener {
+
+        /**
+		 *
+		 */
+        private static final long serialVersionUID = -752624469241001299L;
+        private DocumentAction action;
+
+        public MenuItem(String text, DocumentAction action) {
+            super(text);
+            this.action = action;
+            String tip = this.action.getDescription();
+            if (tip != null && tip.length() > 0) {
+                this.setToolTipText(tip);
+            }
+            this.addActionListener(this);
+        }
+
+        public void actionPerformed(ActionEvent e) {
+            this.action.execute(DocumentContextMenu.this.item,
+                DocumentContextMenu.this.seleteds);
+        }
+    }
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/DocumentContextMenu.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ObjectSelectionStep.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ObjectSelectionStep.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ObjectSelectionStep.java	(revision 38262)
@@ -0,0 +1,62 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ */
+package org.gvsig.app.project.documents.gui;
+
+import org.gvsig.utils.swing.objectSelection.ObjectSelection;
+import org.gvsig.utils.swing.wizard.Step;
+import org.gvsig.utils.swing.wizard.WizardControl;
+
+/**
+ * Control ObjectSelection como paso de un asistente
+ * 
+ * @author Fernando Gonz�lez Cort�s
+ */
+public class ObjectSelectionStep extends ObjectSelection implements Step {
+
+    private static final long serialVersionUID = 1721757595450180255L;
+    private WizardControl w;
+
+    /**
+     * @see org.gvsig.utils.swing.wizard.Step#init(org.gvsig.utils.swing.wizard.Wizard)
+     */
+    public void init(WizardControl w) {
+        this.w = w;
+    }
+
+    /**
+     * @see org.gvsig.utils.swing.objectSelection.ObjectSelection#seleccion()
+     */
+    protected void seleccion() {
+        if (w != null) {
+            w.enableNext(getCombo().getSelectedIndex() != -1);
+        }
+    }
+
+    /**
+     * Obtiene el elemento seleccionado
+     * 
+     * @return
+     */
+    public Object getSelectedItem() {
+        return getCombo().getSelectedItem();
+    }
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/gui/ObjectSelectionStep.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentActionGroup.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentActionGroup.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentActionGroup.java	(revision 38262)
@@ -0,0 +1,10 @@
+package org.gvsig.app.project.documents;
+
+public interface DocumentActionGroup {
+
+	public String getTitle();
+	
+	public String getDescription();
+	
+	public int getOrder();
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentActionGroup.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentManager.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentManager.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentManager.java	(revision 38262)
@@ -0,0 +1,122 @@
+package org.gvsig.app.project.documents;
+
+import java.util.Iterator;
+
+import javax.swing.ImageIcon;
+
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.gui.IDocumentWindow;
+import org.gvsig.app.project.documents.gui.WindowLayout;
+import org.gvsig.tools.extensionpoint.ExtensionBuilder;
+import org.gvsig.tools.persistence.PersistenceFactory;
+
+public interface DocumentManager extends ExtensionBuilder, PersistenceFactory{
+
+	/**
+	 * Returns the type of document priority.
+	 *
+	 * @return Priority.
+	 */
+	public int getPriority();
+
+	/**
+	 * Returns tdocumenthe icon for the type of document.
+	 *
+	 * @return Image.
+	 */
+	public ImageIcon getIcon();
+
+	/**
+	 * Returns the icon for the type of document when is selected
+	 *
+	 * @return Image.
+	 */
+	public ImageIcon getIconSelected();
+
+	/**
+	 * Create a new ProjectDocument.
+	 *
+	 * @param project Opened project.
+	 *
+	 * @return ProjectDocument.
+	 */
+	public AbstractDocument createDocument();
+
+	        /**
+     * Uses a gui to be able from the characteristics that we want a
+     * ProjectDocument
+     * 
+     * @return a new Document
+     * 
+     * @deprecated user {@link #createDocumentsByUser()} instead
+     */
+	public AbstractDocument createDocumentByUser();
+
+    /**
+     * Uses a gui to be able from the characteristics that we want a
+     * ProjectDocument
+     * 
+     * @return the created documents
+     */
+    public Iterator<? extends Document> createDocumentsByUser();
+
+	/**
+	 * Returns the title of type of document.
+	 *
+	 * @return String title for type of document
+	 */
+	public String getTitle();
+
+	/**
+	 * Returns the type name of the document factory.
+	 *
+	 * @return Name of registration
+	 */
+	public String getTypeName();
+
+	/**
+	 * Return the main window asociated to the passed document. 
+	 * If the window alreade exists return it. If not, a new
+	 * window is created.
+	 * 
+	 * @param doc
+	 * @return Window asociated to document
+	 */
+	public IWindow getMainWindow(Document doc) ;
+	
+	/**
+	 * Return the main window asociated to the document.
+	 * 
+	 * @param doc, layout
+	 * @return Window asociated to document
+	 */
+	public IWindow getMainWindow(Document doc, WindowLayout layout) ;
+	
+	/**
+	 * Return the windows properties asociated to the document.
+	 * @param doc
+	 * @return
+	 */
+	public IWindow getPropertiesWindow(Document doc) ;
+	
+	/**
+	 * Return true if the name exists to another document.
+	 *
+	 * @param project
+	 * @param documentName
+	 *
+	 * @return True if the name exists.
+	 * @deprecated use instead  project.getDocument
+	 */
+	public boolean existName(Project project, String documentName);
+	
+	/**
+	 * Return the class that implement the main window for this type of
+	 * documents.
+	 * 
+	 * @return the class of main window 
+	 */
+    public Class<? extends IDocumentWindow> getMainWindowClass();
+
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/documents/DocumentManager.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/Project.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/Project.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/Project.java	(revision 38262)
@@ -0,0 +1,200 @@
+package org.gvsig.app.project;
+
+import java.awt.Color;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Iterator;
+import java.util.List;
+
+import org.cresques.cts.IProjection;
+
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.tools.persistence.Persistent;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+public interface Project extends Iterable<Document>,  Persistent{
+
+    public static final String FILE_EXTENSION = ".gvsproj";
+        
+	public void addPropertyChangeListener(PropertyChangeListener arg0);
+
+	/**
+	 * Return the creation date of the project
+	 *
+	 * @return
+	 */
+	public String getCreationDate();
+
+	/**
+	 * Return the name of the project
+	 *
+	 * @return
+	 */
+	public String getName();
+
+	/**
+	 * Set the name of he project.
+	 *
+	 * @param string
+	 */
+	public void setName(String name);
+
+	/**
+	 * Return the comments associateds with the project
+	 *
+	 * @return comments
+	 */
+	public String getComments();
+
+	/**
+	 * Set the comments associateds with the project
+	 *
+	 * @param comments as string
+	 */
+	public void setComments(String string);
+
+	/**
+	 * Retuen the modification date of the project.
+	 *
+	 * @return modification date as string
+	 */
+	public String getModificationDate();
+
+	/**
+	 * Return the author of the project,
+	 *
+	 * @return author as string
+	 */
+	public String getOwner();
+
+	/**
+	 * Sets the author of the project
+	 *
+	 * @param author name as string
+	 */
+	public void setOwner(String owner);
+
+	/**
+	 * Obtiene el color de selecci�n que se usar� en el proyecto
+	 *
+	 * @return
+	 */
+	public Color getSelectionColor();
+
+	/**
+	 * Sets the selecction color
+	 *
+	 * @param selection color as string
+	 */
+	public void setSelectionColor(String selectionColor);
+
+	/**
+	 * Sets the selecction color
+	 *
+	 * @param selection color as Color
+	 */
+	public void setSelectionColor(Color selectionColor);
+
+	public IProjection getProjection();
+
+	public void setProjection(IProjection projection);
+
+	/**
+	 * Sets the modified state of project.
+	 * 
+	 * Can't set to not modified.
+	 *
+	 * @param modified as boolean
+	 */
+	public void setModified(boolean modified);
+
+	public boolean hasChanged();
+
+	/**
+	 * Return a list of documents in the project.
+	 *
+	 * @return documents as List of IProjectDocument
+	 */
+	public List<Document> getDocuments();
+
+	/**
+	 * Return a list with all documents of especified type.
+	 *
+	 * @param type of document
+	 *
+	 * @return List of IProjectDocument
+	 */
+	public List<Document> getDocuments(String type);
+
+	/**
+	 * Adds a document to the project
+	 *
+	 * @param document as IProjectDocument
+	 */
+	public void add(Document document);
+
+	/**
+	 * Remove a document of the project
+	 *
+	 * @param document as IProjectDocument
+	 */
+	public void remove(Document doc);
+
+	public Iterator<Document> iterator();
+
+	public boolean isEmpty();
+
+	/**
+	 * Return the view that contains the especified layer.
+	 *
+	 * @param layer
+	 *
+	 * @return name of the view that contains the layer
+	 *
+	 * @throws RuntimeException 
+	 *             Si la capa que se pasa como par�metro no se encuentra en
+	 *             ninguna vista
+	 */
+	public String getViewName(FLayer layer);
+
+	public void addExtent(ProjectExtent arg1);
+
+	public ProjectExtent removeExtent(int arg0);
+
+	public ProjectExtent[] getExtents();
+
+	/**
+	 * Obtiene un documento a partir de su nombre y el nombre de registro en el
+	 * pointExtension, este �ltimo se puede obtener del
+	 * Project****Factory.registerName.
+	 *
+	 * @param name
+	 *            Nombre del documento
+	 * @param type
+	 *            nombre de registro en el extensionPoint
+	 *
+	 * @return Documento
+	 */
+	public Document getDocument(String name, String type);
+
+	public void saveState(File out) throws PersistenceException;
+	
+	public void saveState(OutputStream out) throws PersistenceException;
+
+	public void loadState(InputStream in);
+
+	public void loadState(File in);
+	
+	public String exportDocumentsAsText(List<Document> documents);
+	
+	public void importDocuments(String data, String doctype);
+	
+	public boolean canImportDocuments(String data, String doctype);
+	
+	public Document getActiveDocument();
+
+	public Document createDocument(String type);
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/Project.java
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectPreferences.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectPreferences.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectPreferences.java	(revision 38262)
@@ -0,0 +1,281 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2009 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2004-2009 IVER TI
+*   
+*/
+
+package org.gvsig.app.project;
+
+import java.awt.Color;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.app.imp.DefaultPreferencesNode;
+import org.gvsig.fmap.crs.CRSFactory;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.utils.StringUtilities;
+import org.gvsig.utils.XMLEntity;
+
+/**
+ * Clase que representa las preferencias para el proyecto
+ *
+ * @author 2009-         Joaquin del Cerro
+ * 
+ */
+
+public class ProjectPreferences extends DefaultPreferencesNode {
+
+	private IProjection defaultProjection = null;
+
+	private IProjection defaultFactoryProjection = CRSFactory
+			.getCRS("EPSG:23030");
+
+	private Color defaultSelectionColor = Color.YELLOW;
+	
+	private Color defaultViewBackColor = Color.WHITE;
+
+	private Color defaultOverviewBackColor = Color.WHITE;	
+
+	private int defaultMapUnits = -1;
+
+	private int defaultDistanceUnits = -1;
+
+	private int defaultDistanceArea = -1;
+
+	
+	public ProjectPreferences() {
+		// 
+	}
+
+	/**
+	 * Sets the projection used when no projection is defined
+	 *
+	 * @param defaultProjection
+	 */
+	public void setDefaultProjection(IProjection defaultProjection) {
+		this.defaultProjection = defaultProjection;
+	}
+
+	public int getInt(String name, int defaultValue) {
+		if( name.equalsIgnoreCase("DefaultDistanceUnits")) {
+			return this.getDefaultDistanceUnits();
+		} else if( name.equalsIgnoreCase("DefaultDistanceArea")) {
+			return this.getDefaultDistanceArea();
+		} else if( name.equalsIgnoreCase("DefaultMapUnits")) {
+			return this.getDefaultMapUnits();
+		}
+		
+		return super.getInt(name, defaultValue);
+	}
+	
+	public IProjection getDefaultProjection() {
+		if (defaultProjection == null){
+			XMLEntity xml = PluginServices.getPluginServices("org.gvsig.app")
+			.getPersistentXML();
+
+			// Default Projection
+			String projCode = null;
+			if (xml.contains("DefaultProjection")) {
+				projCode = xml.getStringProperty("DefaultProjection");
+				setDefaultProjection(CRSFactory.getCRS(projCode));
+			} else {
+				setDefaultProjection(defaultFactoryProjection);
+			}
+
+		}
+		return defaultProjection;
+	}
+
+	/**
+	 * Sets the default selection color that will be used in subsequent
+	 * projects.
+	 *
+	 * @param color
+	 */
+	public void setDefaultSelectionColor(Color color) {
+		defaultSelectionColor = color;
+	}
+
+	/**
+	 * Returns the current default selection color defined which is the color
+	 * defined when the user does not define any other one
+	 *
+	 * @return java.awt.Color
+	 */
+	public Color getDefaultSelectionColor() {
+		XMLEntity xml = PluginServices.getPluginServices("org.gvsig.app")
+				.getPersistentXML();
+		if (xml.contains("DefaultSelectionColor")) {
+			defaultSelectionColor = StringUtilities.string2Color(xml
+					.getStringProperty("DefaultSelectionColor"));
+		}
+		return defaultSelectionColor;
+	}
+
+	public Color getDefaultViewBackColor() {
+		XMLEntity xml = PluginServices.getPluginServices("org.gvsig.app").getPersistentXML();
+		if (xml.contains("DefaultViewBackColor")) {
+			defaultViewBackColor = StringUtilities.
+				string2Color(xml.getStringProperty("DefaultViewBackColor"));
+		}
+		return defaultViewBackColor;
+	}
+
+	public void setDefaultViewBackColor(Color color) {
+		defaultViewBackColor = color;
+	}
+
+	public Color getDefaultOverviewBackColor() {
+		XMLEntity xml = PluginServices.getPluginServices("org.gvsig.app")
+				.getPersistentXML();
+		if (xml.contains("defaultOverviewBackColor")) {
+			defaultOverviewBackColor = StringUtilities.string2Color(xml
+					.getStringProperty("defaultOverviewBackColor"));
+		}
+		return defaultOverviewBackColor;
+
+	}
+
+	public void setDefaultOverviewBackColor(Color color) {
+		defaultOverviewBackColor = color;
+	}
+
+	/**
+	 * Returns the user's default map units. This is the cartography data
+	 * distance units.
+	 *
+	 * @return int (index of the <b>Attributes.NAMES array</b>)
+	 */
+	public int getDefaultMapUnits() {
+		if (defaultMapUnits == -1) {
+			XMLEntity xml = PluginServices.getPluginServices(
+					"org.gvsig.app").getPersistentXML();
+			if (xml.contains("DefaultMapUnits")) {
+				defaultMapUnits = xml.getIntProperty("DefaultMapUnits");
+			} else {
+				// first app run case
+				String[] unitNames = MapContext.getDistanceNames();
+				for (int i = 0; i < unitNames.length; i++) {
+					// meter is the factory default's map unit
+					if (unitNames[i].equals("Metros")) {
+						defaultMapUnits = i;
+						break;
+					}
+				}
+			}
+			if (defaultMapUnits == -1 || defaultMapUnits >= MapContext.getDistanceNames().length){
+				defaultMapUnits = MapContext.getDistancePosition("Metros");
+			}
+		}
+		return defaultMapUnits;
+	}
+
+	/**
+	 * Returns the user's default view units for measuring distances. This is
+	 * the units that the user will see in the status bar of the view.
+	 *
+	 * @return int (index of the <b>Attributes.NAMES array</b>)
+	 */
+	public int getDefaultDistanceUnits() {
+		if (defaultDistanceUnits == -1) {
+			XMLEntity xml = PluginServices.getPluginServices(
+					"org.gvsig.app").getPersistentXML();
+			if (xml.contains("DefaultDistanceUnits")) {
+				defaultDistanceUnits = xml
+						.getIntProperty("DefaultDistanceUnits");
+			} else {
+				// first app run case
+				String[] unitNames = MapContext.getDistanceNames();
+				for (int i = 0; i < unitNames.length; i++) {
+					// meter is the factory default's distance unit
+					if (unitNames[i].equals("Metros")) {
+						defaultDistanceUnits = i;
+						break;
+					}
+				}
+			}
+			if (defaultDistanceUnits == -1 || defaultDistanceUnits >= MapContext.getDistanceNames().length){
+				defaultDistanceUnits = MapContext.getDistancePosition("Metros");
+			}
+		}
+		return defaultDistanceUnits;
+	}
+	/**
+	 * Returns the user's default view units for measuring areas. This is
+	 * the units that the user will see in the status bar of the view.
+	 *
+	 * @return int (index of the <b>Attributes.NAMES array</b>)
+	 */
+	public int getDefaultDistanceArea() {
+		if (defaultDistanceArea == -1) {
+			XMLEntity xml = PluginServices.getPluginServices(
+					"org.gvsig.app").getPersistentXML();
+			if (xml.contains("DefaultDistanceArea")) {
+				defaultDistanceArea = xml
+						.getIntProperty("DefaultDistanceArea");
+			} else {
+				// first app run case
+				String[] unitNames = MapContext.getAreaNames();
+				for (int i = 0; i < unitNames.length; i++) {
+					// meter is the factory default's distance unit
+					if (unitNames[i].equals("Metros")) {
+						defaultDistanceArea = i;
+						break;
+					}
+				}
+			}
+			if (defaultDistanceArea == -1 || defaultDistanceArea >= MapContext.getAreaNames().length){
+				defaultDistanceArea=getDefaultDistanceUnits();
+			}
+		}
+		return defaultDistanceArea;
+	}
+	/**
+	 * Sets the default map unit (the units used by the data).
+	 *
+	 * @param mapUnits
+	 */
+	public void setDefaultMapUnits(int mapUnits) {
+		defaultMapUnits = mapUnits;
+	}
+
+	/**
+	 * Sets the default distance units (the units shown in the status bar)
+	 *
+	 * @param distanceUnits
+	 */
+	public void setDefaultDistanceUnits(int distanceUnits) {
+		defaultDistanceUnits = distanceUnits;
+	}
+	/**
+	 * Sets the default distance area (the units shown in the status bar)
+	 *
+	 * @param distanceUnits
+	 */
+	public void setDefaultDistanceArea(int distanceArea) {
+		defaultDistanceArea = distanceArea;
+	}
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/project/ProjectPreferences.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLocator.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLocator.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLocator.java	(revision 38262)
@@ -0,0 +1,91 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA  02110-1301, USA.
+*
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 IVER T.I   {{Task}}
+*/
+
+package org.gvsig.app;
+
+import org.gvsig.tools.locator.BaseLocator;
+import org.gvsig.tools.locator.Locator;
+import org.gvsig.tools.locator.LocatorException;
+
+public class ApplicationLocator extends BaseLocator {
+
+	private static final String LOCATOR_NAME = "appgsigLocator";
+
+	public static final String APPGVSIG_MANAGER_NAME = "appgsigLocator.manager.persistence";
+
+	private static final String APPGVSIG_MANAGER_DESCRIPTION = "Manager of appgvSIG";
+	
+	/**
+	 * Unique instance.
+	 */
+	private static final ApplicationLocator instance = new ApplicationLocator();
+
+	/**
+	 * Return the singleton instance.
+	 *
+	 * @return the singleton instance
+	 */
+	public static ApplicationLocator getInstance() {
+		return instance;
+	}
+
+	public String getLocatorName() {
+		return LOCATOR_NAME;
+	}
+
+	/**
+	 * Return a reference to PersistenceManager.
+	 *
+	 * @return a reference to PersistenceManager
+	 * @throws LocatorException
+	 *             if there is no access to the class or the class cannot be
+	 *             instantiated
+	 * @see Locator#get(String)
+	 */
+	public static ApplicationManager getManager()
+			throws LocatorException {
+		return (ApplicationManager) getInstance().get(APPGVSIG_MANAGER_NAME);
+	}
+
+	/**
+	 * Registers the Class implementing the PersistenceManager interface.
+	 *
+	 * @param clazz
+	 *            implementing the PersistenceManager interface
+	 */
+	@SuppressWarnings("unchecked")
+	public static void registerAppgvSIGManager(Class clazz) {
+		getInstance().register(APPGVSIG_MANAGER_NAME,
+				APPGVSIG_MANAGER_DESCRIPTION, clazz);
+	}
+
+	@SuppressWarnings("unchecked")
+	public static void registerDefaultAppgvSIGManager(Class clazz) {
+		getInstance().registerDefault(APPGVSIG_MANAGER_NAME,
+				APPGVSIG_MANAGER_DESCRIPTION, clazz);
+	}		
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLocator.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/PreferencesNode.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/PreferencesNode.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/PreferencesNode.java	(revision 38262)
@@ -0,0 +1,54 @@
+package org.gvsig.app;
+
+import java.awt.Color;
+
+
+public interface PreferencesNode {
+
+	public String name() ;
+
+	public void clear() throws Exception ;
+	
+	public void flush() throws Exception;
+
+	public String[] keys() throws Exception ;
+
+	public String get(String arg0, String arg1) ;
+
+	public void remove(String arg0) ;
+
+	public void sync() throws Exception ;
+
+	
+	
+	public Color getColor(String name, Color value) ;
+
+	public boolean getBoolean(String name, boolean value) ;
+
+	public byte[] getByteArray(String name, byte[] value) ;
+
+	public double getDouble(String name, double value) ;
+
+	public float getFloat(String name, float value) ;
+
+	public int getInt(String name, int value) ;
+
+	public long getLong(String name, long value) ;
+
+
+	public void put(String name, String value) ;
+
+	public void putBoolean(String name, boolean value) ;
+
+	public void putByteArray(String name, byte[] value) ;
+
+	public void putDouble(String name, double value) ;
+
+	public void putFloat(String name, float value) ;
+
+	public void putInt(String name, int value) ;
+
+	public void putLong(String name, long value) ;
+
+
+}

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/PreferencesNode.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLibrary.java
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLibrary.java	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLibrary.java	(revision 38262)
@@ -0,0 +1,70 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2009 IVER T.I   {{Task}}
+ */
+
+/**
+ *
+ */
+package org.gvsig.app;
+
+import org.gvsig.app.project.DefaultProject;
+import org.gvsig.fmap.mapcontrol.MapControl;
+import org.gvsig.installer.lib.api.InstallerLibrary;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.tools.locator.ReferenceNotRegisteredException;
+
+/**
+ * @author 2008-2009 jmvivo
+ * @author 2009- jjdelcerro
+ * 
+ */
+public class ApplicationLibrary extends AbstractLibrary {
+
+    @Override
+    public void doRegistration() {
+        registerAsAPI(ApplicationLibrary.class);
+        require(MapControl.class);
+        require(InstallerLibrary.class);
+    }
+	
+	@Override
+	protected void doInitialize() throws LibraryException {
+		// Do nothing
+	}
+
+	@Override
+	protected void doPostInitialize() throws LibraryException {
+		ApplicationManager manager = ApplicationLocator.getManager();
+		if (manager == null) {
+			throw new ReferenceNotRegisteredException(
+					ApplicationLocator.APPGVSIG_MANAGER_NAME, ApplicationLocator
+							.getInstance());
+		}
+		DefaultProject.registerPersistent();
+		
+	}
+}
\ No newline at end of file

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig/app/ApplicationLibrary.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/src/org/gvsig
___________________________________________________________________
Added: svn:ignore
   + MyGeoprocess.java


Index: tags/v2_0_0_Build_2047/applications/appgvSIG/pom.xml
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/pom.xml	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/pom.xml	(revision 38262)
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.app</artifactId>
+    <packaging>jar</packaging>
+    <version>2.0-SNAPSHOT</version>
+    <name>Application gvSIG</name>
+    <description>gvSIG basic extensions</description>
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>gvsig-base-extension-pom</artifactId>
+        <version>2.0-SNAPSHOT</version>
+    </parent>
+    <dependencies>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.andami</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.i18n</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.utils</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.coreplugin</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.ui</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.control</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.mapcontext</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.mapcontext</artifactId>
+            <classifier>impl</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.mapcontext</artifactId>
+            <classifier>operation</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal</artifactId>
+            <classifier>spi</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal</artifactId>
+            <classifier>impl</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.index.spatial</artifactId>
+            <classifier>gt2</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.index.spatial</artifactId>
+            <classifier>jts</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.index.spatial</artifactId>
+            <classifier>jsi</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.file</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.file</artifactId>
+            <classifier>store.dbf</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.file</artifactId>
+            <classifier>store.dxf</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.file</artifactId>
+            <classifier>store.dxf.legend</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.file</artifactId>
+            <classifier>store.dgn</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.file</artifactId>
+            <classifier>store.dgn.legend</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.dal.file</artifactId>
+            <classifier>store.shp</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.symbology.lib.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.symbology.lib.impl</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.symbology.swing.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.symbology.swing.impl</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.geometry</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.geometry</artifactId>
+            <classifier>impl</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.fmap.geometry</artifactId>
+            <classifier>operation</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.lib</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.lib</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.swing.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.swing.spi</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.swing.serv.field</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.evaluator.sqljep</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.metadata.lib.basic.impl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.metadata.swing.basic.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.metadata.swing.basic.impl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.projection</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.projection</artifactId>
+            <classifier>cresques-impl</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.projection</artifactId>
+            <classifier>cresques-ui</classifier>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.compat</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.compat</artifactId>
+            <classifier>se</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.about.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.about.impl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.timesupport.lib.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+         <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.timesupport.lib.impl</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.opengis</groupId>
+            <artifactId>geoapi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.sun</groupId>
+            <artifactId>jimi</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jpedal</groupId>
+            <artifactId>jpedal_lgpl</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.vividsolutions</groupId>
+            <artifactId>jts</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>zql</groupId>
+            <artifactId>zql</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>xml-apis</groupId>
+            <artifactId>xml-apis-ext</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.geotools</groupId>
+            <artifactId>gt2-main</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>java3d</groupId>
+            <artifactId>vecmath</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.media</groupId>
+            <artifactId>jai_core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.media</groupId>
+            <artifactId>jai_codec</artifactId>
+        </dependency>
+        <!-- org.gvsig.projection dependencies to copy to the extension -->
+         <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>              
+        </dependency>
+        <dependency>
+            <groupId>geojava</groupId>
+            <artifactId>geojava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.remoteclient</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.installer.lib.api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.help</groupId>
+            <artifactId>javahelp</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>jwizardcomponent</groupId>
+            <artifactId>jwizardcomponent</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>castor</groupId>
+            <artifactId>castor</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>jfree</groupId>
+            <artifactId>jcommon</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>net.sf</groupId>
+            <artifactId>flib-jcalendar</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        
+    </dependencies>
+    <properties>
+        <build-dir>${basedir}/../build</build-dir>
+        <eclipse.project.name>appgvSIG</eclipse.project.name>
+        <package.info.state>alpha5</package.info.state>
+
+        <!-- Just in case, those are some available package info property values -->
+        <!-- <package.info.state>alpha3</package.info.state> <package.info.official>true</package.info.official> 
+            <package.info.operatingSystem>all</package.info.operatingSystem> <package.info.architecture>all</package.info.architecture> 
+            <package.info.javaVM>j1_5</package.info.javaVM> <package.info.gvSIGVersion>2.0.0</package.info.gvSIGVersion> 
+            <package.info.baseDownloadURL> http://gvsig-desktop.forge.osor.eu/gvSIG-desktop/pool/${project.artifactId} 
+            </package.info.baseDownloadURL> -->
+    </properties>
+    <build>
+        <sourceDirectory>src</sourceDirectory>
+        <testSourceDirectory>src-test</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>resources</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>**/andami-theme.xml</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>resources</directory>
+                <filtering>false</filtering>
+                <excludes>
+                    <exclude>**/andami-theme.xml</exclude>
+                </excludes>
+            </resource>
+        </resources>
+        <!-- TODO: MAKE TESTS WORK AND REMOVE THIS OPTION -->
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skipTests>true</skipTests>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SelEspacial2b.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SelEspacial2b.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomPrevio.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomPrevio.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/salir.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/salir.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_round.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/high-density-sample.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/high-density-sample.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/delante.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/delante.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/MapContents3.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/MapContents3.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/QuantitiesByCategory.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/QuantitiesByCategory.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/tirar.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/tirar.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editpaste.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editpaste.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/QuitarFiltro.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/QuitarFiltro.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Vista.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Vista.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/zoommenos.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/zoommenos.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/label-polygon-always-horizontal.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/label-polygon-always-horizontal.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/new.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/new.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/underlined.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/underlined.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/statistics.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/statistics.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Hand.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Hand.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Link.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Link.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/jdbc.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/jdbc.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/DelCommand.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/DelCommand.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/mapas_sel.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/mapas_sel.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/label-line.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/label-line.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/inLayout.PNG
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/inLayout.PNG
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/forward.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/forward.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_round.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editdelete.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editdelete.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/add.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/add.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/orderdesc.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/orderdesc.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomOut.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomOut.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/gvsig.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/gvsig.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Select.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Select.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/gnome-util.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/gnome-util.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/bold.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/bold.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/symbolTag.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/symbolTag.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/fileopen.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/fileopen.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/unavailable.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/unavailable.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/single-symbol.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/single-symbol.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/nuevoencuadre.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/nuevoencuadre.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/shapeseleccion.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/shapeseleccion.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/LimpiaSeleccionCapa.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/LimpiaSeleccionCapa.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ModifyCommand.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ModifyCommand.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/encuadre.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/encuadre.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/AddCommand.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/AddCommand.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ResultConsulta.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ResultConsulta.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/icon_gvsig.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/icon_gvsig.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Vista_sel.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Vista_sel.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ValoresUnicos.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ValoresUnicos.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/desagrupar.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/desagrupar.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Poligono16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Poligono16.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logoGVA.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logoGVA.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Filtro.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Filtro.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/down-arrow.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/down-arrow.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Distancia.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Distancia.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/broken-chain.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/broken-chain.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/locked.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/locked.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_butt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_butt.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/agrupar.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/agrupar.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editcut.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editcut.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/add-layer.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/add-layer.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SimboloUnico.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SimboloUnico.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/unlocked.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/unlocked.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/icolayer.PNG
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/icolayer.PNG
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_square-selected.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_square-selected.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/add-text.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/add-text.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/transform.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/transform.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Identify.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Identify.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/stock_toggle-info.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/stock_toggle-info.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/bordear.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/bordear.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/backward.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/backward.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logoGVA.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logoGVA.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editcopy.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/editcopy.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Find.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Find.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logo_horiz_bicolor_gva.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logo_horiz_bicolor_gva.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Select1.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Select1.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/chain.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/chain.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_square.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/zoommas.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/zoommas.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/label-polygon-always-straight.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/label-polygon-always-straight.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream
Added: svn:executable
   + *

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Intervalos.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Intervalos.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/print.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/print.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/low-density-sample.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/low-density-sample.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/disconn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/disconn.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/conn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/conn.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SelectedZoom.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SelectedZoom.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/save.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/save.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/LimpiaSeleccion.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/LimpiaSeleccion.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_round-selected.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_round-selected.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/orderasc.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/orderasc.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Thumbs.db
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Thumbs.db
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomPixelCursor.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomPixelCursor.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/italic.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/italic.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomSeleccion.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomSeleccion.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/delselection.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/delselection.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomIn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/ZoomIn.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/up-arrow.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/up-arrow.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_bevel.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_bevel.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/medium-density-sample.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/medium-density-sample.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/invertSelection.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/invertSelection.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Pan.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Pan.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SelectByPolygon.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/SelectByPolygon.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/detras.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/detras.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_miter-selected.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_miter-selected.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/addlayer.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/addlayer.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logoIver.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/logoIver.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_butt-selected.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/cap_butt-selected.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/layerGroup.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/layerGroup.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/MapContents.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/MapContents.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/RectCursor.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/RectCursor.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/fullsheet.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/fullsheet.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_round-selected.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_round-selected.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Graficos.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/Graficos.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_miter.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_miter.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/medir.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/medir.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/open.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/open.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/mapas.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/mapas.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_bevel-selected.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/join_bevel-selected.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/delete.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/delete.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/mundo.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/mundo.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/commandstack.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/commandstack.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/dxfseleccion.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/dxfseleccion.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/posicionar.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/posicionar.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/RulerCursor.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/images/RulerCursor.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 38262)
@@ -0,0 +1,2 @@
+org.gvsig.app.ApplicationLibrary
+org.gvsig.app.imp.AppgvSIGDefaultImplLibrary
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/nordRosas.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/nordRosas.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/nordRosas.svg	(revision 38262)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   sodipodi:docname="nordRosas.svg"
+   sodipodi:docbase="D:\Download\datos\PRUEBAS\northimages"
+   viewBox="0 0 450 500"
+   height="500"
+   width="450"
+   inkscape:version="0.40+cvs"
+   sodipodi:version="0.32"
+   id="svg2">
+  <metadata
+     id="metadata7">
+    <rdf:RDF
+       id="RDF4">
+      <cc:Work
+         id="Work6"
+         rdf:about="">
+        <dc:format
+           id="format8">image/svg+xml</dc:format>
+        <dc:type
+           id="type10"
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs5" />
+  <sodipodi:namedview
+     inkscape:document-units="cm"
+     inkscape:current-layer="Extras"
+     inkscape:window-y="110"
+     inkscape:window-x="110"
+     inkscape:cy="301.29578"
+     inkscape:cx="234.01902"
+     inkscape:zoom="0.78504222"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="769"
+     inkscape:window-height="544" />
+  <g
+     transform="matrix(1.135655,0,0,1.075187,44.53582,78.01662)"
+     id="Extras"
+     style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4">
+    <path
+       style="stroke:none"
+       d="M 8.9172838,200.65588 L 135.55805,170.74063 L 160.94769,20.875289 L 186.82912,170.74063 L 313.90022,201.23396 L 186.82912,231.07696 L 160.94769,380.43648 L 135.55805,231.07696 L 8.9172838,200.65588 z M 160.94769,201.23396 L 20.228887,201.23396 L 137.40234,229.415 L 160.94769,201.23396 z M 160.94769,34.098699 L 137.40234,171.89677 L 160.94769,201.23396 L 160.94769,34.098699 z M 160.94769,201.23396 L 160.94769,366.63499 L 184.98484,229.415 L 160.94769,201.23396 L 160.94769,201.23396 z M 184.98484,171.89677 L 160.94769,201.23396 L 302.15829,201.23396 L 184.98484,171.89677 z M 133.22196,-60.994251 L 133.22196,-62.656211 L 145.88604,-62.656211 L 178.83724,-16.771691 L 178.83724,-52.684451 L 178.83724,-54.057371 L 178.71428,-55.285781 L 178.59133,-56.369661 L 178.4069,-57.381291 L 178.09952,-58.320661 L 177.79214,-58.970991 L 177.42327,-59.549071 L 176.99294,-59.910361 L 176.68557,-60.271651 L 176.31671,-60.632951 L 175.94786,-60.921991 L 175.45605,-61.138761 L 174.84128,-61.355541 L 174.22653,-61.427801 L 173.4888,-61.572321 L 172.75111,-61.572321 L 172.2593,-61.572321 L 172.2593,-62.656211 L 189.2267,-62.656211 L 189.2267,-61.572321 L 187.81275,-61.572321 L 186.8906,-61.500061 L 186.02994,-61.427801 L 185.29223,-61.283281 L 184.61599,-60.994251 L 184.00122,-60.705211 L 183.44793,-60.343921 L 183.0176,-59.838101 L 182.58726,-59.332291 L 182.58726,-2.8979511 L 181.17332,-2.8979511 L 146.86966,-49.360531 L 146.86966,-13.953581 L 146.86966,-12.291631 L 146.86966,-10.774181 L 146.93114,-9.5457811 L 146.93114,-8.4618911 L 147.05409,-7.5947811 L 147.11556,-6.9444511 L 147.17704,-6.5109011 L 147.3,-6.2218611 L 148.09917,-5.4992711 L 149.0828,-4.9934611 L 150.25084,-4.7044211 L 151.54183,-4.5599011 L 153.87794,-4.5599011 L 153.87794,-3.4760211 L 135.98838,-3.4760211 L 135.98838,-4.5599011 L 137.40234,-4.5599011 L 138.32448,-4.6321711 L 139.12367,-4.7766811 L 139.86138,-5.0657111 L 140.47615,-5.4270111 L 141.58271,-6.1496011 L 142.62781,-6.7999311 L 142.68928,-7.1612311 L 142.81224,-7.6670411 L 142.87371,-8.3173711 L 142.93519,-9.1122211 L 142.99666,-10.123851 L 143.05815,-11.280001 L 143.05815,-12.508411 L 143.05815,-13.953581 L 143.05815,-54.924491 L 142.68928,-54.996741 L 142.3819,-55.213521 L 142.19748,-55.430301 L 142.13599,-55.502551 L 141.09091,-56.514181 L 140.16877,-57.309031 L 139.554,-58.031621 L 139.06219,-58.537441 L 138.63186,-58.898731 L 137.95563,-59.260031 L 137.09496,-59.621321 L 135.98838,-59.910361 L 135.68102,-60.416171 L 135.06625,-60.705211 L 134.26706,-60.921991 L 133.22196,-60.994251 L 133.22196,-60.994251 z "
+       id="path1336" />
+  </g>
+</svg>

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/nordRosas.svg
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/norte_flecha2.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/norte_flecha2.svg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_10.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_10.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_10.svg	(revision 38262)
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(9.9999996,-8.5714284)"
+       id="g2421">
+      <path
+         d="M 192.21377,222.50546 L 272.13382,222.50546 C 258.81383,206.42742 258.81383,189.75388 272.13382,172.48489 L 313.52105,172.48489 C 271.61562,159.8309 243.63861,147.1769 232.17374,134.52287 C 226.08119,155.03599 192.2695,164.94696 152.25369,172.48489 L 192.21377,172.48489 C 181.48991,189.15839 188.45745,205.83196 192.21377,222.50546 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:8.94164085px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 167.98065,223.03506 C 168.29339,223.95394 169.73159,224.74802 170.9564,225.54571 C 172.26781,226.51525 174.28937,226.91162 176.79205,227.34859 C 178.64749,227.45078 180.55298,227.48053 182.41431,227.52071 C 182.67753,227.56744 182.94076,227.61417 183.20398,227.66091 L 171.40965,230.47679 C 171.21587,230.46098 171.0221,230.44521 170.82822,230.42941 C 168.88661,230.38145 166.91017,230.40754 165.05773,230.15541 C 162.49911,229.58616 160.22429,229.06905 158.84954,228.03347 C 157.48154,227.16482 156.03584,226.3065 155.21122,225.3472 L 167.98065,223.03506 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1921" />
+      <path
+         d="M 203.0194,229.79735 C 206.88579,228.8782 211.64035,228.02117 194.37669,231.50224 C 191.62805,232.05648 199.78374,230.33895 202.49766,229.76342 C 210.63418,227.69271 219.54793,226.32166 228.5949,224.92722 C 231.58652,224.42931 234.58146,224.51218 237.68539,224.55656 C 240.01401,225.13262 240.10576,225.93561 240.58194,226.84756 C 240.73134,228.01424 240.61677,229.18335 240.57315,230.35068 C 240.86092,231.57574 240.3409,232.76181 239.77833,233.95279 C 236.74856,236.12035 228.5277,236.535 223.09911,237.52065 C 221.16822,237.56674 219.23154,237.5485 217.29787,237.544 C 211.75513,238.01521 203.7885,239.99611 224.37858,235.82034 C 222.56612,236.34925 222.33184,237.05089 221.82221,237.79995 C 221.46028,238.09371 222.35349,238.31671 222.56162,238.51914 L 210.36463,241.11846 C 209.98919,240.77895 209.01313,240.47947 209.19319,240.05926 C 209.54826,239.23079 209.62479,238.40709 211.25966,237.72526 C 218.23202,236.22174 221.68953,234.80018 228.76199,234.58808 C 230.65012,234.584 232.55293,234.60952 234.42112,234.49221 C 231.97503,235.04101 224.74984,236.72795 226.94557,236.05869 C 227.79526,234.93044 228.56179,233.81168 228.14723,232.59773 C 228.13769,231.4544 228.15923,230.31038 228.04605,229.16766 C 227.76407,228.46873 227.95581,227.82319 226.10498,227.43619 C 223.19921,227.49146 220.33085,227.51972 217.62283,228.00411 C 212.81586,228.73404 195.67096,231.67668 215.26666,228.01572 C 207.49487,229.64009 199.8772,231.78926 191.44338,232.78615 L 203.0194,229.79735 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1923" />
+      <path
+         d="M 282.33947,229.79499 C 284.06769,229.87638 285.37728,229.54781 286.89769,229.28988 C 283.35315,230.0082 272.74193,232.17706 276.26386,231.4448 C 281.26675,230.40465 296.37487,227.34524 291.34754,228.37043 C 272.21763,232.27148 279.29931,230.84036 283.45915,229.95797 C 324.23816,221.44646 276.44059,231.61501 289.80613,228.61925 C 291.54464,228.1499 291.68665,227.53933 292.12779,226.83392 C 295.33686,224.37062 303.00008,223.15241 309.48758,224.0353 C 311.45823,224.66023 311.72778,225.44634 312.25777,226.30132 L 299.74213,228.63136 C 299.37345,227.91483 299.30625,227.26991 297.61651,226.76434 C 300.06109,226.06853 305.97016,223.60358 304.88328,224.64747 C 304.50259,225.38837 304.36712,226.15301 302.93513,226.74983 C 295.23387,228.65989 272.59124,232.98846 296.57486,228.15771 C 249.97188,237.94928 315.77948,224.07552 275.8806,232.40261 C 274.15913,232.58448 272.62233,232.88479 270.74513,232.78851 L 282.33947,229.79499 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1925" />
+      <path
+         d="M 293.4825,219.52611 C 292.42252,219.56854 291.57733,219.29553 290.62496,219.18028 L 302.41608,216.37674 C 303.28924,216.4279 304.12929,216.63623 305.07684,216.5326 L 293.4825,219.52611 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1927" />
+      <path
+         d="M 138.31572,229.15616 C 138.6245,229.50424 139.96506,229.61301 140.74177,229.81868 C 142.54179,230.11957 144.34643,230.39414 146.19254,230.65305 C 148.40638,230.77329 150.502,231.06005 152.6332,231.30426 C 153.54838,231.46095 154.57395,231.37236 155.50671,231.40512 L 144.02018,234.35879 C 143.00726,234.28616 141.94804,234.27512 140.96919,234.13998 C 138.82417,233.88812 136.68503,233.64493 134.47688,233.47522 C 132.60118,233.18 130.71531,232.89153 128.86769,232.57145 C 127.62916,232.23579 126.12976,232.03683 125.5464,231.4683 L 138.31572,229.15616 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1929" />
+      <path
+         d="M 162.84261,201.18277 C 187.42888,196.75566 160.64421,201.88631 155.97314,202.88743 C 142.26228,206.12508 128.8529,209.47559 115.84008,212.9447 C 109.60509,214.66577 103.59914,216.45098 97.039304,218.06799 C 90.834004,219.35042 83.900984,220.30263 77.271264,221.38578 C 99.936394,217.65079 77.661594,221.3261 70.340594,222.43778 C 88.053854,219.02417 81.290164,220.49413 77.599434,221.5729 C 75.926414,222.04126 75.039524,222.65804 74.004954,223.24591 C 72.812614,223.75075 72.260234,224.31017 71.685654,224.88045 C 75.102654,227.63843 83.798944,229.81834 90.383754,231.99051 C 108.79441,237.91169 124.40347,244.47289 139.29885,251.14552 C 147.06024,254.67637 155.03342,258.16483 163.94814,261.4627 C 173.06049,264.8153 181.14373,268.37996 189.99768,271.78836 C 195.08417,273.43356 199.35461,275.82436 206.78986,276.5234 C 189.33276,279.88861 209.62382,274.55736 215.90211,272.7312 C 230.04672,268.78795 243.60603,264.68169 256.76643,260.46665 C 267.97226,256.66138 279.97205,253.06636 292.22918,249.54397 C 304.47537,246.04595 316.72852,242.55205 328.69284,238.97378 C 333.4355,237.57927 337.67926,236.05964 341.77908,234.50886 C 343.52134,233.96638 344.87208,233.34629 346.25316,232.73096 C 347.12836,231.85732 345.35362,231.18893 343.97619,230.42537 C 341.49463,229.02941 338.86645,227.65649 336.22798,226.28483 C 334.43599,225.32469 331.84018,224.52334 329.59548,223.65291 C 326.61565,222.49845 323.87419,221.2879 321.15566,220.08028 C 316.97556,218.00405 312.1672,216.04367 307.53579,214.05127 C 304.39691,212.62035 300.56203,211.35403 296.23189,210.2168 C 291.80754,209.22349 287.04077,208.37697 282.61235,207.39075 C 279.93111,206.47994 278.75378,205.32011 276.44617,204.32925 C 274.89082,203.72869 272.61557,203.38877 270.45843,203.00458 C 268.4238,202.6522 266.65185,202.80699 264.44959,202.91352 C 262.06888,203.02705 259.66138,203.05859 257.25805,203.0998 C 255.38965,203.11808 253.51995,203.11477 251.65091,203.11553 C 251.35521,203.11542 251.05961,203.11526 250.76391,203.11515 L 261.37341,200.89434 C 261.66858,200.89442 261.96363,200.89445 262.2588,200.89453 C 264.10791,200.89217 265.95799,200.89487 267.80571,200.86966 C 270.1727,200.82049 272.54452,200.78145 274.88418,200.65725 C 277.33841,200.61581 279.30263,200.51469 281.45548,200.96621 C 283.7004,201.38985 286.03952,201.77658 287.61759,202.42616 C 289.75458,203.41127 290.91155,204.54558 293.52097,205.43377 C 297.90931,206.42738 302.61736,207.29481 307.00141,208.29466 C 311.4219,209.45072 315.36813,210.73028 318.43198,212.21544 C 322.89181,214.23729 327.55955,216.22059 331.91338,218.26212 C 334.76953,219.44331 337.7695,220.59369 340.79413,221.73934 C 343.00153,222.63648 345.51503,223.47641 347.29545,224.4546 C 349.84614,225.83742 352.53176,227.19964 355.12886,228.5753 C 356.75398,229.41656 358.70888,230.17906 358.13645,231.17488 C 356.82214,231.83649 355.63045,232.51786 353.61189,233.0448 C 349.26471,234.64216 344.80317,236.21378 339.78667,237.64413 C 327.53233,241.25024 314.93321,244.75393 302.52261,248.31509 C 290.42625,251.81962 278.76182,255.44055 267.49522,259.16826 C 254.21724,263.35775 240.58516,267.44969 226.6145,271.44825 C 217.01374,274.3243 209.59606,277.24027 196.14446,278.66903 C 189.07414,277.5236 185.05438,275.29777 179.96136,273.50296 C 171.19197,270.07605 162.7081,266.58847 153.52041,263.25213 C 144.6507,259.92718 137.1013,256.36693 129.8565,252.72963 C 115.53088,245.96513 100.14656,239.35176 80.867674,233.65571 C 73.531874,231.483 64.264124,229.38598 59.980924,226.56724 C 60.393874,225.9393 60.670714,225.33608 62.118124,224.79928 C 63.149054,224.1902 64.046664,223.55856 65.489364,223.01754 C 70.016594,221.63034 72.536204,220.97917 80.535214,220.08009 C 96.806944,217.69996 49.314084,225.16591 87.357844,219.04115 C 99.880764,217.04445 74.885624,221.21077 85.105534,219.43592 C 92.155814,217.83216 98.525624,216.01012 105.02298,214.22091 C 118.04791,210.77873 131.44636,207.45241 144.91575,204.15618 C 153.89274,202.16408 163.00005,200.26625 173.18278,198.79929 L 162.84261,201.18277 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1933" />
+      <path
+         d="M 173.35447,253.60167 C 176.08608,253.57094 178.42027,253.09195 180.79552,252.66447 C 159.72142,257.4547 177.35998,252.99057 181.89557,251.74928 C 189.63553,249.74907 197.65586,247.71264 206.91247,246.77368 C 210.69023,246.67241 213.84872,247.26405 217.03207,247.89911 C 219.91244,248.60204 220.14694,249.54724 220.73844,250.69633 C 221.10242,252.74354 220.31113,254.77494 219.42778,256.78996 C 219.28535,257.22465 218.8486,257.63359 218.55901,258.0554 L 205.88315,260.1829 C 206.22687,259.76954 206.7724,259.37763 206.91419,258.94287 C 207.97384,256.98611 208.93875,255.01077 208.42023,253.00649 C 207.86913,252.02385 207.71608,251.20856 205.22616,250.62251 C 202.21729,250.03575 199.3455,249.54629 195.80353,249.78765 C 184.98043,251.17908 211.27552,246.28761 194.64303,249.94346 C 186.66557,252.08581 179.387,254.34231 169.92418,255.7671 C 167.29268,256.16435 164.72356,256.61686 161.77846,256.59047 L 173.35447,253.60167 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1935" />
+      <path
+         d="M 204.02493,273.5121 C 205.72882,268.78056 211.38988,264.32253 216.49447,259.95186 C 223.38881,253.98909 232.15466,248.46721 245.13179,243.94058 C 254.9454,241.09424 266.08521,238.61002 278.78915,237.9852 C 280.95025,237.88857 283.12593,237.90552 285.29658,237.89055 L 273.975,240.81571 C 271.89567,240.83304 269.80959,240.81414 267.74344,240.92482 C 248.64836,242.26213 275.74973,238.43802 257.17274,242.17937 C 243.743,246.62811 234.47267,252.11998 227.50406,258.14689 C 222.73889,262.30975 217.26529,266.6523 216.7741,271.20361 L 204.02493,273.5121 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1937" />
+      <path
+         d="M 140.3734,249.45153 C 137.63183,249.33354 135.68111,248.58433 133.58474,247.99558 C 125.88251,245.35475 119.38869,242.31046 112.56895,239.38855 C 109.47723,238.033 106.42753,236.66633 103.43998,235.28168 L 115.1011,232.828 C 117.90194,234.24369 120.78284,235.63802 123.83983,236.9861 C 130.58594,239.89964 137.15982,242.91658 145.26064,245.37859 C 147.43579,245.89368 149.22028,246.52501 151.96774,246.45801 L 140.3734,249.45153 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1943" />
+      <path
+         d="M 92.383024,234.93722 C 89.989454,236.77362 86.107634,238.47782 82.907244,240.1848 C 76.019014,243.8448 69.280834,247.53606 63.536924,251.44062 C 60.363864,253.70089 57.560774,256.0184 54.929374,258.3628 C 52.945114,259.80192 52.937394,260.58464 54.781154,262.01869 C 61.874194,266.88288 67.812624,271.93995 74.751014,276.83069 C 81.498724,281.74836 93.248264,285.1515 105.58308,288.2258 C 111.87241,289.83588 118.37009,291.30223 125.63129,292.25878 C 129.75747,292.33454 133.3333,292.73597 137.12746,293.29067 C 142.94735,294.32012 149.37043,294.72811 155.55151,295.41356 C 166.29605,296.53068 176.58155,298.20963 187.48118,299.13351 C 191.51798,299.45778 195.60633,299.35597 199.67871,299.24247 C 202.91994,298.93884 205.83867,299.09081 208.97433,299.41459 C 223.28989,297.22105 194.50316,303.25356 217.01106,297.64248 C 232.08071,293.92489 247.27521,290.27019 261.15156,285.99554 C 271.12336,282.80397 277.56284,278.67741 284.06276,274.5839 C 293.27597,268.86043 304.5625,263.60832 316.04152,258.44397 C 321.4953,255.94965 327.59653,253.6572 333.80462,251.40291 C 336.85989,250.70444 337.42236,249.69571 338.17184,248.80253 C 336.14213,248.03778 334.00043,247.31211 331.89259,246.57487 C 330.07391,245.86496 328.08343,245.2331 326.01107,244.62143 C 324.9586,244.28363 324.08297,243.88913 323.14185,243.51473 L 335.25621,240.91008 C 336.16528,241.27046 336.9914,241.65689 338.03358,241.9729 C 340.0649,242.60545 342.00704,243.25795 343.83258,243.96724 C 346.05959,244.72933 348.34009,245.47613 350.41717,246.29036 C 350.88886,247.75666 350.23508,248.39272 346.46408,249.53681 C 340.00284,251.83002 333.63067,254.15587 327.80703,256.6594 C 316.10529,261.72012 304.7835,266.93369 295.92419,272.69807 C 289.52855,276.88626 282.9612,281.03251 272.92971,284.29561 C 259.12324,288.58484 243.91963,292.21727 228.94891,295.96768 C 219.5804,298.372 209.04411,302.08456 197.3353,302.23927 C 194.32857,302.07389 191.50469,301.91979 188.44277,302.20365 C 184.32226,302.27251 180.21505,302.33136 176.21287,301.88289 C 165.5904,300.71716 155.40939,299.06754 144.62348,298.07248 C 138.19547,297.47204 131.51784,297.1499 125.59978,296.01983 C 121.78344,295.54618 118.03462,295.28783 114.06674,295.03516 C 107.0559,293.90947 100.81609,292.33476 94.662244,290.69269 C 82.344884,287.49868 70.253784,284.11393 63.733494,279.05866 C 56.971834,274.15047 51.064914,269.07452 42.823054,264.44258 C 40.403334,262.90988 39.998954,262.02707 42.354154,260.43641 C 45.150384,258.0506 48.104924,255.69055 51.392124,253.38271 C 57.202374,249.47412 64.057164,245.79149 70.776374,242.07577 C 73.682034,240.46222 76.421784,238.78963 79.613604,237.24936 L 92.383024,234.93722 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1945" />
+      <path
+         d="M 99.225274,257.95306 C 98.116324,257.81843 97.237154,258.12647 96.263244,258.21144 C 93.357904,258.34399 101.41649,257.22111 103.99023,256.72407 C 102.07563,257.08045 100.57709,257.61775 99.010704,258.13047 C 97.323214,258.79825 95.775804,259.5104 94.164944,260.20248 C 92.516144,260.76776 91.414264,261.45881 90.264574,262.14495 C 89.190884,262.6483 90.005104,263.20445 90.032654,263.65033 C 91.059184,263.91881 92.244774,264.11899 93.302924,264.35947 C 95.086014,264.52976 96.690344,264.27968 98.403984,264.09374 C 100.57044,264.00027 102.65299,263.81902 104.74078,263.63955 C 106.61412,263.32587 108.63825,263.26676 110.65199,263.17173 C 112.80184,263.00323 114.61559,263.22521 116.58667,263.39184 C 119.70593,264.02145 122.01601,264.96928 124.26136,265.93597 C 125.79923,266.68323 126.31443,267.56833 126.93948,268.44475 C 127.46797,269.13382 127.53624,269.84509 127.67589,270.5521 C 127.55553,271.29548 127.89314,272.01681 128.17383,272.74716 C 128.87037,273.55624 130.18725,274.2797 131.32032,275.01908 C 132.45971,275.63948 133.36985,276.30326 134.32029,276.95896 C 135.12015,277.62499 135.1747,278.33923 135.34672,279.04704 C 135.29292,279.79305 135.45915,280.53155 135.59794,281.27284 C 135.92461,281.99063 136.11828,282.71496 136.32567,283.43743 C 136.12579,284.02104 137.5911,284.51552 138.08079,284.84916 C 139.0143,284.30639 140.687,284.26202 142.18425,284.04401 C 146.74557,283.99674 163.32201,280.31549 134.91255,285.90048 C 136.12085,285.40786 135.92794,284.7963 136.15965,284.1943 C 136.37551,283.59759 136.64248,283.00096 136.90989,282.40642 C 137.09916,281.75453 137.06958,281.09878 137.10634,280.44464 C 138.11819,277.68559 139.86003,278.69333 151.04324,276.50744 C 152.37298,276.85529 153.91792,276.8746 155.45173,276.9996 C 157.68207,276.97386 159.79355,277.13904 161.9061,277.28754 C 163.55651,277.70928 163.79144,278.37047 164.43172,279.00385 C 164.34833,279.67803 165.99874,280.02374 166.7448,280.42788 C 157.0418,281.43574 155.88976,284.30166 154.62218,281.0917 C 154.14739,280.3514 153.13661,279.68934 152.29538,279.00225 C 151.45448,278.53214 150.26578,278.18079 149.16111,277.7976 C 147.89633,277.42271 147.03248,276.93813 146.05,276.47816 C 145.20834,276.07958 144.22146,275.72289 143.31143,275.34701 C 142.20633,274.93232 141.0619,274.5321 139.94823,274.11993 C 138.26203,273.78168 137.29905,273.24591 136.16694,272.71376 C 134.95617,272.07618 134.73056,271.34705 134.36381,270.61517 C 134.55286,269.98655 133.62986,269.54291 132.99173,269.014 C 132.1803,268.50443 130.78572,268.22316 129.57849,267.86145 C 127.81233,267.40197 127.31664,266.72711 126.50863,266.05495 C 126.0213,265.21738 125.3746,264.39409 124.76573,263.56768 C 124.10606,262.86772 123.97873,262.13645 123.77703,261.40941 C 124.70839,260.66318 122.53828,260.67502 122.02094,260.36831 C 120.11245,260.4609 118.72462,260.10459 117.07068,259.9073 C 115.47107,259.52659 114.03073,259.07807 112.55684,258.64126 C 111.51894,258.22641 109.99425,258.20516 108.70588,258.00159 C 106.95173,257.91699 105.1786,257.93886 103.41405,257.92815 C 102.13983,257.92861 100.86561,257.93067 99.591494,257.93223 L 111.04801,254.97223 C 112.32587,254.97143 113.60384,254.96823 114.88171,254.97211 C 116.72139,255.00026 118.58551,254.9704 120.38725,255.13482 C 121.83638,255.38536 123.40009,255.54349 124.59243,255.969 C 125.99912,256.38411 127.33239,256.83445 128.94186,257.15438 C 130.54361,257.28209 132.15822,257.45988 133.80992,257.55033 C 135.19785,258.0706 136.60443,258.20912 136.36114,259.09944 C 136.54592,259.79175 136.55053,260.49376 137.17493,261.16322 C 137.77652,261.98902 138.43008,262.81017 138.8963,263.64812 C 139.60462,264.22384 140.00021,264.79503 141.58599,265.16619 C 142.88261,265.57715 144.35833,265.92054 145.25475,266.47394 C 146.00252,267.07172 147.10826,267.57572 146.91727,268.28475 C 147.25016,268.93668 147.24684,269.604 148.38451,270.17283 C 149.56421,270.63722 150.48389,271.16172 152.06399,271.49384 C 153.17841,271.89942 154.31019,272.29865 155.41293,272.7082 C 156.40034,273.10605 157.42667,273.49317 158.30637,273.92386 C 159.22284,274.34651 160.01251,274.79719 161.21417,275.13331 C 162.40512,275.56803 163.71299,275.96592 164.59066,276.4991 C 165.5426,277.22275 166.45317,277.94591 167.03021,278.72384 C 168.5669,281.577 166.78252,282.06516 154.82807,283.18793 C 153.53005,282.63685 152.2957,282.168 151.97074,281.4026 C 151.52232,280.93166 151.43626,280.38328 150.15132,280.10974 C 148.06952,280.04012 145.96147,279.9526 143.8636,279.89261 C 142.55787,279.76452 141.00135,279.57675 139.74213,279.58403 C 152.24662,277.01225 152.61648,275.93881 149.73151,278.16144 C 149.71061,278.82827 149.73644,279.49593 149.60633,280.16173 C 149.38576,280.75204 149.29809,281.34962 148.80347,281.92439 C 148.70519,282.60405 148.76167,283.29446 147.98121,283.93283 C 143.00833,285.02272 137.47353,286.83204 130.98646,287.12905 C 129.40272,287.39817 127.88017,287.798 126.14798,287.6177 C 125.21319,287.04339 123.85323,286.54357 123.81593,285.79395 C 123.59472,285.06904 123.38251,284.33948 123.09464,283.61534 C 122.90065,282.86087 122.63388,282.11334 122.75199,281.35092 C 122.60023,280.70249 122.67686,280.04054 121.977,279.42326 C 121.05978,278.78546 120.17526,278.14061 119.0901,277.53309 C 117.88822,276.74648 116.54273,275.9732 115.74941,275.1199 C 115.36325,274.36665 114.89714,273.62895 115.07859,272.85415 C 114.95191,272.17822 114.97388,271.49517 114.49116,270.83329 C 113.9556,270.01652 113.54993,269.18588 112.20144,268.4767 C 110.09628,267.56209 107.94718,266.6838 104.82888,266.1897 C 103.00656,266.15519 101.14502,266.02711 99.289794,266.17675 C 97.362124,266.33329 95.392864,266.42763 93.562294,266.71976 C 91.433764,266.84838 89.286914,266.96584 87.183794,267.1466 C 85.150874,267.29357 83.480844,267.49859 81.473754,267.1573 C 80.247984,266.85988 78.926924,266.60092 77.818504,266.23971 C 77.374904,265.55395 76.332074,265.03075 77.417884,264.25389 C 78.444524,263.49776 79.372774,262.74645 81.174624,262.15862 C 82.801884,261.4641 84.449834,260.78105 85.981274,260.06552 C 87.497284,259.5224 88.861314,258.92154 90.787274,258.546 C 96.278994,257.37243 101.37995,255.89085 107.43145,255.09053 C 108.55294,255.04437 109.65504,254.8991 110.81962,254.95955 L 99.225274,257.95306 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1947" />
+      <path
+         d="M 91.426054,274.04433 C 91.766014,274.43281 92.259564,274.85809 92.700054,275.25317 C 93.351904,275.78551 94.536304,276.16386 95.584924,276.58647 C 97.274024,277.1433 98.655744,277.8008 100.07615,278.44138 C 100.5474,278.62321 100.861,278.84389 101.25337,279.04517 L 89.025294,281.58104 C 88.652864,281.39019 88.361014,281.17953 87.907874,281.00852 C 86.542774,280.38404 85.230824,279.73725 83.500354,279.23016 C 82.357644,278.74646 81.057694,278.30777 80.331474,277.71225 C 79.780154,277.25867 79.321334,276.79176 78.656734,276.35643 L 91.426054,274.04433 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1949" />
+      <path
+         d="M 143.1004,288.66696 C 143.04038,289.09795 143.05088,289.52966 143.03577,289.961 C 142.99376,290.53581 143.04981,291.11065 143.0736,291.68485 C 142.14835,290.25293 135.29217,292.70771 131.65878,293.40866 C 135.47244,291.69224 142.21019,291.04788 147.27685,290.07537 C 153.26608,289.80282 158.90002,288.13999 139.48716,292.07448 C 140.9723,291.82409 138.79373,291.8097 138.49417,291.69532 C 136.88952,291.47263 135.40513,291.15525 133.87765,290.87383 C 132.94533,290.60006 131.93765,290.36369 130.97564,290.11072 L 142.9197,287.37189 C 143.85996,287.62368 144.7746,287.88888 145.76705,288.11572 C 147.23055,288.38382 148.65653,288.69255 150.24403,288.86143 C 151.69359,289.31988 153.15226,289.34224 152.68497,290.19401 C 144.76688,291.85201 142.87758,292.76397 136.02386,293.15234 C 138.89404,292.54946 147.42786,290.70518 144.72144,291.3971 C 140.67757,292.34189 133.80724,296.03224 130.35777,293.98728 C 130.38145,293.40847 130.43772,292.82909 130.39571,292.24972 C 130.38059,291.82619 130.39185,291.40224 130.33108,290.9791 L 143.1004,288.66696 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1951" />
+      <path
+         d="M 78.172834,265.43444 C 74.401184,266.19374 64.891104,268.11374 87.791374,263.46401 C 86.334744,263.79876 85.022904,264.20476 83.666904,264.58784 C 82.180904,264.95302 80.875494,265.39319 79.514144,265.81024 C 78.338204,266.18284 77.219714,266.57678 76.077214,266.96199 C 65.993844,269.58397 66.265104,269.76956 58.726534,269.62735 C 57.098734,269.36085 56.183234,268.80696 55.061634,268.33868 L 67.217154,265.74664 C 68.211424,266.13752 68.938294,266.62964 70.464914,266.77936 C 76.159204,266.42348 82.677774,265.33316 62.884114,268.82451 C 64.031654,268.46376 65.357854,268.13712 66.373884,267.70552 C 67.733094,267.28199 68.976774,266.80945 70.529864,266.46918 C 71.863674,266.07079 73.236714,265.69743 74.547484,265.29355 C 78.859834,264.40849 84.235264,262.67268 89.767174,262.44092 L 78.172834,265.43444 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1953" />
+      <path
+         d="M 119.80475,257.23162 C 119.83208,256.26543 120.64983,255.34057 121.30329,254.41239 C 121.95792,253.21147 123.56064,252.24726 125.42068,251.27479 L 138.54636,249.40179 C 136.22514,250.23845 134.54193,251.03797 133.86908,252.28436 C 133.26782,253.1479 132.4178,254.01849 132.57417,254.91952 L 119.80475,257.23162 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1955" />
+      <path
+         d="M 76.258984,262.71393 C 74.754864,262.72272 73.685784,262.34365 72.485624,262.07494 C 70.946674,261.55643 69.459604,261.01826 67.991184,260.47564 C 66.339594,259.99993 65.691064,259.36411 64.881134,258.70589 C 64.208384,257.89807 64.518454,257.07531 64.613514,256.25389 C 64.662174,255.20658 65.732004,254.32167 66.952644,253.39673 C 68.988244,252.25541 71.717704,251.31074 74.433874,250.37773 C 79.585304,248.64706 85.905394,247.66579 92.446904,246.95524 C 94.102674,246.76858 95.807954,246.66498 97.505414,246.53278 C 99.803494,246.62213 100.57055,247.13848 101.85538,247.71915 C 102.71097,248.37493 102.70411,249.08666 102.84344,249.7907 C 102.84108,250.64978 103.53698,251.48156 104.0958,252.31049 C 104.58463,253.35993 106.02669,254.1913 107.63519,255.02498 C 108.8406,255.34994 110.30742,255.26931 111.69567,255.34182 L 100.16607,258.26934 C 98.485544,258.13805 96.870824,258.11105 95.560804,257.64532 C 93.917684,256.71467 92.347444,255.8026 91.779734,254.67626 C 91.120064,253.82795 90.268544,252.97564 90.241644,252.0884 C 90.123104,251.46294 90.253754,250.82091 89.558074,250.2279 C 88.397454,249.93181 88.123404,249.34957 86.165934,249.56225 C 84.522384,249.72176 82.868124,249.87129 81.214814,250.01952 C 75.515924,250.75247 70.663404,251.71134 87.454624,248.49452 C 84.689474,249.3861 81.886814,250.27828 79.763324,251.38056 C 78.415154,252.22997 77.324104,253.02587 77.254324,254.03141 C 77.112534,254.78865 76.765494,255.53862 77.321524,256.29251 C 78.096734,256.85353 78.479784,257.44285 80.049704,257.83884 C 81.457684,258.3633 82.843574,258.90059 84.409644,259.36673 C 85.558784,259.51935 86.492294,259.85756 87.853324,259.72041 L 76.258984,262.71393 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1957" />
+      <path
+         d="M 59.034124,256.59283 C 58.508314,256.21497 57.117164,256.37813 56.212274,256.27678 C 54.688984,256.12874 53.628894,255.71207 52.430234,255.37378 L 64.469894,252.69631 C 65.555704,252.95016 66.376564,253.34759 67.800404,253.35849 C 68.723194,253.46406 69.659384,253.59085 70.628474,253.59931 L 59.034124,256.59283 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1959" />
+      <path
+         d="M 87.269104,247.70989 C 87.347454,247.20996 87.326554,246.70912 87.346384,246.20874 C 87.092374,245.44167 87.874014,244.80447 88.590804,244.11655 C 89.468474,243.62362 90.600254,243.18235 91.688524,242.74435 C 92.376494,242.39787 92.600274,241.97389 93.054814,241.58982 L 105.87846,239.45136 C 105.47473,239.8718 105.11558,240.29628 104.66908,240.71085 C 103.68445,241.19132 102.92329,241.70016 101.51531,242.05197 C 100.76711,242.67854 99.635974,243.18235 99.961154,243.92459 C 99.980874,244.41564 99.958894,244.90719 100.03842,245.39779 L 87.269104,247.70989 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1961" />
+      <path
+         d="M 98.752304,261.99248 C 98.279554,261.53963 99.704564,261.35361 100.15385,261.05212 C 109.72599,258.78629 110.13165,258.19564 117.73174,258.56931 C 120.56077,258.90318 120.2416,259.51733 121.02956,260.28257 C 118.75367,262.7642 109.3289,262.5166 104.41025,263.31604 C 102.75813,263.1111 101.2822,262.77308 99.788704,262.4533 C 98.236894,262.10416 97.016804,261.61142 95.692954,261.16851 C 95.359204,260.5819 93.262834,261.00977 93.166384,261.00348 C 97.075854,260.21051 100.98543,259.41758 104.8949,258.62465 C 103.68402,259.21241 104.00588,259.88708 104.00716,260.568 C 103.92474,261.56995 106.00675,260.91695 106.42913,260.99068 C 90.144754,264.9291 93.446214,264.21303 96.813484,262.26172 C 100.80859,260.42052 107.79392,259.69645 113.64136,258.70844 C 115.57417,258.42267 117.56969,258.155 119.51312,257.90801 C 115.55049,258.72166 111.58786,259.53531 107.62522,260.34896 C 108.53987,260.36156 106.83533,260.16347 106.71197,260.13453 C 104.9531,259.86663 103.34556,260.10292 101.65464,260.16439 C 132.606,251.43079 111.33899,258.23037 109.01016,259.26139 C 107.67581,259.78047 108.37267,260.42041 108.26389,260.9254 C 109.61367,261.18546 111.11124,261.04793 112.52779,261.04999 C 114.47947,260.82364 116.38582,260.89074 118.3673,260.91786 C 120.35564,261.06225 121.65965,261.52306 123.17523,261.94849 C 125.07011,262.56516 126.30961,263.35333 127.65638,264.11629 C 128.94229,264.84557 129.52972,265.65245 130.18532,266.46313 C 130.52389,267.37759 131.58815,268.19067 132.67578,269.01301 C 134.19061,269.87678 135.1553,270.82876 136.15858,271.77495 C 136.88856,272.61085 138.22976,273.3385 139.49337,274.07967 C 140.52163,274.70605 141.40797,275.36666 142.29229,276.01871 C 143.32257,276.67068 145.0001,276.63991 146.65512,276.84577 C 149.83011,276.64894 140.8424,277.83588 137.93685,278.33146 C 138.78183,277.83736 137.71135,277.5412 137.41115,277.12651 C 136.18634,276.69011 135.20503,276.1869 134.11398,275.71246 C 133.38196,275.28234 132.34482,274.9383 131.42439,274.56444 C 130.37266,274.26854 129.15953,274.07822 128.01864,273.83199 C 127.24504,273.34581 125.75668,273.08442 124.71986,272.72385 C 122.63796,272.34584 121.34177,271.70979 119.88567,271.09331 C 118.46119,270.45105 117.65157,269.70006 116.75847,268.96167 C 116.03964,268.12375 116.15186,267.24657 116.08144,266.38192 C 115.89517,265.55571 116.13514,264.74796 116.41208,263.93248 C 116.60071,263.62976 116.66609,263.32012 116.79288,263.0142 L 129.49146,260.77332 C 129.38021,261.09123 129.35438,261.41383 129.1575,261.72793 C 128.85655,262.52109 128.32227,263.2919 128.61218,264.10539 C 128.68388,264.91874 128.60072,265.7434 129.16157,266.53945 C 129.96282,267.23591 130.69559,267.94021 132.04955,268.53913 C 133.41744,269.09451 134.62339,269.65648 136.60626,269.96468 C 137.69345,270.3339 138.94474,270.66674 139.92808,271.07381 C 141.16693,271.34065 142.47288,271.5683 143.54582,271.92292 C 144.48833,272.32021 145.55206,272.68584 146.31622,273.13424 C 147.40331,273.61093 148.39191,274.11509 149.62744,274.54974 C 150.31358,275.11563 151.34376,275.52732 150.82696,276.21082 C 146.64547,277.26198 142.22359,280.26026 135.05499,279.74811 C 133.10095,279.45343 131.21582,279.24433 130.01116,278.54791 C 129.16103,277.89499 128.30416,277.23471 127.31503,276.60617 C 125.99054,275.83262 124.59318,275.0726 123.79857,274.20357 C 122.87053,273.27409 121.99672,272.33521 120.50858,271.49338 C 119.29019,270.63578 118.09121,269.79261 117.71406,268.82497 C 117.15331,268.06125 116.63822,267.30885 115.45028,266.62206 C 114.15987,265.90477 112.99305,265.15758 111.1435,264.59352 C 109.74721,264.27743 108.61896,263.8691 106.83619,263.84004 C 104.94249,263.89637 103.02039,263.90033 101.13826,264.04537 C 99.241464,263.94566 97.453434,264.03802 96.002264,263.48442 C 95.682454,262.72406 94.700284,262.12693 96.130664,261.31469 C 99.908954,259.12945 104.73543,257.8193 112.89809,257.10647 C 114.83133,257.10205 116.72396,257.02763 118.55496,257.34466 C 123.7841,259.33661 122.10004,258.5292 108.39336,261.05677 C 106.43171,261.28677 104.41754,261.46487 102.62201,261.84547 C 92.508854,263.50652 115.76077,258.30811 109.80766,260.23634 C 106.42956,262.48076 105.4923,262.39582 95.269394,264.12992 C 93.447074,263.80093 91.929454,263.84736 91.483064,262.90253 C 91.370534,262.12248 91.110094,261.36081 91.786694,260.59108 C 103.21245,258.11836 101.38723,256.92967 107.82211,258.546 C 109.05356,258.95437 110.17602,259.41777 111.68314,259.70533 C 113.04256,259.97658 114.32075,260.32028 115.91457,260.37592 C 113.25648,261.02546 105.42918,263.04414 108.15382,262.43045 C 107.81182,262.26283 108.6554,261.36093 106.12197,261.43466 C 99.686994,261.58655 94.854404,262.34669 113.43365,259.23362 C 112.82049,259.3769 111.7065,259.46199 111.52162,259.68038 L 98.752304,261.99248 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1963" />
+      <path
+         d="M 96.216514,264.90636 C 95.581604,264.80436 95.021924,264.6532 94.453784,264.51151 C 93.733454,264.30874 92.898434,264.18481 92.068684,264.05268 C 91.383824,263.93701 90.704114,263.81628 90.028684,263.69767 C 89.733844,263.56662 89.507274,263.40589 89.294414,263.25975 C 88.917054,263.18666 88.604734,263.26367 88.225764,263.30465 C 87.553874,263.25042 87.558694,263.13216 87.373494,262.92268 C 87.404364,262.70322 87.631144,262.49664 87.817524,262.28937 C 88.064144,261.94929 88.574514,261.64795 89.078244,261.34943 C 90.382584,260.58491 91.866004,260.41203 94.200634,259.96188 C 94.842614,260.13533 94.707794,260.35585 94.659244,260.62497 C 94.543274,260.95683 94.350574,261.28399 94.157654,261.61089 C 94.017254,261.87358 93.671824,262.10694 93.328754,262.34113 C 92.239414,262.95075 90.974734,263.06791 88.979324,263.48172 C 88.160174,263.5641 90.459534,263.18255 91.202904,263.03508 C 93.134874,262.94923 87.655374,264.03589 89.414884,263.28706 C 89.921074,262.95281 90.029644,262.58306 90.115284,262.21278 C 90.234574,261.9953 89.900714,261.86562 89.665354,261.72218 C 93.653604,260.75599 92.472304,260.99297 91.774374,261.5391 C 91.453804,261.84406 91.455304,262.13836 91.609534,262.44915 C 91.953464,262.70616 92.473374,262.72543 93.172274,262.79193 C 94.072554,262.78069 94.971334,262.75742 95.871084,262.74104 C 96.633214,262.70067 97.339404,262.77018 98.049234,262.83512 C 98.528634,262.96412 99.069124,263.06147 99.587534,263.16849 C 100.21355,263.27118 100.5832,263.43411 100.97718,263.61841 C 101.23001,264.239 98.402484,264.25976 97.151524,264.47613 C 96.643934,264.48325 96.135814,264.48032 95.627904,264.47952 C 95.135744,264.47857 94.643484,264.47785 94.151224,264.47712 C 93.470544,264.50089 93.068854,264.37573 92.554724,264.25252 C 91.964614,263.74791 93.031764,263.26535 93.699794,262.80937 C 95.668094,261.49309 98.076234,260.26917 100.56701,259.07293 C 101.91251,258.4205 103.41083,257.81222 104.9232,257.20896 C 105.61438,256.89467 106.93522,256.85208 107.98405,256.70991 C 107.39233,256.95362 106.88721,257.22149 106.37222,257.48555 C 106.05048,257.69841 105.65628,257.89205 105.25587,258.0845 C 104.05796,258.5316 102.48129,258.74085 100.90312,258.91297 C 100.36649,258.94854 99.818064,258.94591 99.274574,258.95163 C 98.008824,259.00003 94.728904,259.72963 100.90119,258.56245 C 100.25835,258.80724 99.749694,259.08969 99.233954,259.36826 C 98.164334,260.01874 97.485164,260.00606 95.108524,260.49129 C 94.524524,260.36895 94.608974,260.2184 94.554314,260.00092 C 94.631584,259.7094 95.081624,259.47296 95.513544,259.23339 C 96.684444,258.66685 98.152334,258.49119 99.996734,258.11158 C 100.68834,258.09581 100.87782,258.26191 101.26891,258.43646 C 102.05119,258.68125 99.653014,258.91586 98.716514,259.07846 C 98.721654,258.85085 98.832584,258.63295 98.951764,258.41311 C 99.170614,257.65187 103.77534,257.39437 101.8079,258.07928 C 101.00215,258.343 100.21933,258.61547 99.427094,258.88429 C 98.171094,259.27224 96.295504,259.51832 95.045074,259.74901 C 94.530844,259.47601 95.092234,259.33196 95.653944,259.1122 C 97.331684,258.62861 99.132994,258.25273 101.22926,258.15763 C 101.90254,258.19625 102.32717,258.36059 102.80571,258.51427 C 103.19155,258.62096 103.49764,258.76207 103.81607,258.89297 C 105.96227,259.40193 108.38896,259.74578 110.76045,260.09915 C 112.82414,260.32302 114.75385,260.49654 116.47542,260.97126 C 118.06913,261.45279 119.32899,262.05339 120.97201,262.50734 C 123.23354,262.34913 119.16898,263.07838 118.88775,263.14637 C 118.14319,262.88101 118.87842,262.52224 119.29845,262.21202 C 120.59625,261.15701 121.13009,261.06922 124.2725,260.48283 C 124.70657,260.78898 124.62962,261.14433 124.64119,261.48037 C 123.3868,262.2079 121.60606,262.44461 120.59571,261.7624 C 120.1684,261.42766 119.86262,261.07539 119.54335,260.72648 C 118.65303,260.26867 122.5117,259.52567 122.06456,260.36678 C 121.93499,260.89813 122.26863,261.41493 122.7267,261.91441 C 121.82438,262.11585 119.84548,263.00343 120.0758,261.97649 C 120.1326,261.6315 120.09916,261.28673 120.04397,260.94247 C 124.12942,259.87321 124.24164,260.69806 126.42782,261.90698 C 127.63859,262.65005 129.14817,263.35059 129.98479,264.16237 C 130.37427,265.87388 130.90083,267.58117 131.58879,269.28476 C 132.4641,271.51684 133.83757,273.71724 135.01608,275.92982 C 135.49152,277.17994 135.67832,278.44081 136.08634,279.69437 C 136.48911,280.58834 136.66488,281.50734 137.56323,282.3606 C 138.27639,282.9145 139.27838,283.41005 140.50437,283.82249 C 137.14428,284.58785 138.10876,284.18763 137.37439,283.0475 C 136.9115,282.35801 136.33789,281.67877 135.78111,280.99835 C 135.50856,280.71064 135.45336,280.41105 135.3838,280.11176 C 135.06517,279.49555 134.72102,279.9604 138.10683,279.31411 C 137.50622,279.59614 137.41865,279.97259 137.24878,280.31568 C 137.27161,280.79534 135.01672,280.88588 133.7245,281.02463 C 133.55194,280.48867 133.55827,279.94764 133.53447,279.4089 C 133.5125,278.93804 133.52172,278.4674 133.38914,277.99858 C 132.72101,276.26422 131.65353,274.55618 130.42443,272.86253 C 129.13713,271.25153 127.75799,269.65012 126.79683,268.00945 C 126.54057,267.40395 125.91134,266.9308 124.69671,266.50597 C 123.48508,266.11886 122.0143,265.85057 121.01413,265.38717 C 120.41126,265.06111 119.79028,264.73985 119.15269,264.42239 C 118.17385,264.03364 117.6803,263.57142 117.27635,263.08253 C 117.32361,262.15283 119.78085,261.99504 121.95578,261.56915 C 123.75131,261.51727 126.6635,260.91504 121.56276,261.92667 C 122.09275,261.77946 122.11108,261.59509 122.20379,261.37917 C 122.20293,261.14037 121.78451,261.08495 121.393,260.94993 C 120.72722,260.90476 120.32745,260.75017 119.86573,260.58868 C 118.94937,260.16846 117.74653,259.8659 116.52622,259.57115 C 115.61072,259.34602 114.57358,259.24809 113.50931,259.15855 C 112.18611,259.06634 110.83698,259.05172 109.49384,259.03515 C 108.51264,259.0478 107.55491,259.02407 106.58872,258.97486 C 105.48255,258.88212 104.39385,258.76679 103.29165,258.66883 C 102.84205,258.6771 102.46521,258.60065 102.05484,258.55301 C 101.64264,258.53918 101.27824,258.63432 100.91405,258.69877 C 100.28643,258.78739 99.793094,258.68266 99.202014,258.60431 C 98.703754,258.44496 98.115894,258.46838 97.592874,258.44138 C 102.12493,257.45458 100.29736,257.76415 99.578954,258.35061 C 99.063864,258.75971 98.901174,259.20688 98.747804,259.64766 C 98.606334,260.07557 98.466034,260.50283 98.275804,260.92837 C 98.207954,261.13545 97.878924,261.28841 97.569084,261.4563 C 97.019374,261.74804 96.698804,262.0786 96.369134,262.40626 C 96.079114,262.72524 96.011274,263.05858 95.952964,263.39058 C 96.030674,263.58238 95.854154,263.7561 95.747404,263.93545 C 94.625484,264.39226 93.413424,264.50637 91.668484,264.85281 C 91.152854,264.91935 90.690284,264.88084 90.195124,264.85247 C 89.680684,264.66523 89.812614,264.44022 89.843484,264.19372 C 89.836414,263.96177 89.922794,263.7326 89.983024,263.50297 C 90.680744,263.67741 89.726014,263.62504 89.605334,263.68236 C 89.130114,263.61815 88.637534,263.57728 88.144734,263.53398 C 87.457734,263.47395 86.777484,263.40699 86.099594,263.33954 C 85.612374,263.25998 85.238864,263.13246 84.855384,263.00468 C 84.606954,262.90371 84.302464,262.82918 84.021764,262.74089 C 83.668304,262.58554 83.232094,262.45817 82.814214,262.32574 C 82.352604,262.15173 81.968374,261.95482 81.565504,261.76385 C 81.252114,261.6681 80.983424,261.55837 80.700904,261.45154 C 79.814454,260.85216 82.941964,260.76753 84.039454,260.57154 C 84.694514,260.67719 85.285704,260.82882 85.883204,260.96863 C 86.653694,261.13469 84.267524,261.25333 83.438404,261.37879 C 83.536904,261.22522 83.254494,261.11957 83.114624,260.99442 L 86.161974,260.35124 C 86.367964,260.50351 86.638694,260.63929 86.614584,260.82165 C 86.433024,261.39334 84.521964,261.90667 82.922464,261.65172 C 82.366854,261.51628 81.829044,261.35518 81.158654,261.30345 C 81.985844,261.11473 83.803874,260.45396 83.749324,260.80273 C 84.034734,260.90964 84.317684,261.01704 84.604484,261.12319 C 84.984424,261.30882 85.342074,261.50231 85.802504,261.66448 C 86.226064,261.79672 86.662484,261.92488 87.037604,262.07509 C 87.328374,262.16338 87.633504,262.24412 87.882474,262.34856 C 88.244944,262.45535 88.561544,262.58081 89.023364,262.63832 C 89.693754,262.70037 90.364464,262.76458 91.039254,262.82209 C 91.489824,262.86079 91.966434,262.92443 92.423544,262.91518 C 92.834244,262.92889 93.031014,262.68791 93.216214,262.97075 C 93.095214,263.18384 92.902944,263.40364 92.970784,263.63361 C 92.956524,263.80215 92.797054,264.0213 93.133044,264.14386 C 93.576114,264.13426 94.033004,264.15258 94.451644,264.07405 C 89.182094,265.16364 91.454664,264.74171 92.502104,264.4462 C 92.678294,264.28463 92.913764,264.14626 92.812594,263.9516 C 92.881614,263.60943 92.954604,263.26497 93.219114,262.93327 C 93.536994,262.60088 93.842024,262.26606 94.338894,261.96003 C 94.635234,261.80586 94.973054,261.65522 95.124064,261.47481 C 95.353744,261.04823 95.540124,260.62025 95.674304,260.18835 C 95.809994,259.74562 95.917274,259.29022 96.393564,258.8745 C 97.181314,258.13897 97.669074,258.1267 100.42222,257.6836 C 101.01351,257.73608 101.59333,257.7862 102.12707,257.90743 C 102.70775,257.96369 103.11556,258.0316 103.68874,257.91795 C 104.1451,257.85171 104.49181,257.77802 104.99426,257.84196 C 105.3877,257.88607 105.75253,257.95546 106.17813,257.96167 C 107.25686,258.07075 108.32701,258.19309 109.43168,258.26599 C 110.39134,258.29604 111.34907,258.30731 112.31419,258.31283 C 113.66815,258.34003 115.02811,258.36246 116.36214,258.4557 C 117.45705,258.55327 118.50373,258.66342 119.42577,258.90878 C 120.67877,259.20372 121.82824,259.54784 122.85263,259.93941 C 123.31842,260.08323 123.75098,260.20373 124.35932,260.26357 C 124.84879,260.42467 125.26464,260.54667 125.34791,260.80623 C 125.294,261.04629 125.29625,261.27093 124.84279,261.47294 C 122.56143,261.93733 121.5051,262.18265 119.22675,262.33591 C 124.00574,261.31614 120.4298,261.84296 120.33173,262.50049 C 120.68788,262.97951 121.14553,263.42349 122.1368,263.79236 C 122.7865,264.10661 123.41531,264.42529 123.98034,264.76011 C 125.07086,265.18097 126.34722,265.51293 127.62048,265.86752 C 128.9231,266.3155 129.53433,266.81006 129.7056,267.45879 C 130.46023,269.12235 131.71773,270.74604 132.99698,272.36698 C 134.24055,274.04566 135.38734,275.73318 136.4367,277.42861 C 136.65674,277.90253 136.5651,278.37736 136.57389,278.85649 C 136.5949,279.38266 136.60251,279.91219 136.82511,280.43344 C 136.50272,280.51586 133.12913,281.76496 134.12062,280.86002 C 134.29982,280.49674 134.46241,280.1292 134.80387,279.7798 C 137.28543,279.29049 138.23909,278.73164 138.51721,279.53912 C 138.56212,279.83293 138.59299,280.12707 138.81902,280.41295 C 139.30335,281.10389 139.81726,281.79216 140.3286,282.48065 C 141.21945,283.71227 141.73036,283.89318 137.54598,284.48265 C 136.39062,284.01891 135.34254,283.51288 134.59649,282.94684 C 133.6559,282.07689 133.66276,281.13451 133.25657,280.2216 C 132.84094,278.97174 132.52037,277.71914 132.16304,276.4673 C 131.28688,274.21933 130.19518,271.98264 129.14496,269.74435 C 128.35303,268.08391 127.52863,266.425 126.97646,264.75329 C 126.21325,263.94113 124.87023,263.21652 123.62205,262.49062 C 121.4454,261.34939 118.6989,261.15476 123.23236,260.38602 C 123.19956,260.72457 123.16698,261.07691 123.17255,261.42118 C 123.11918,262.07308 121.76125,263.00217 119.66703,262.51614 C 119.26437,261.99526 118.94702,261.46262 118.95945,260.91862 C 119.03308,260.30348 121.83295,259.36335 122.61663,260.12451 C 122.90397,260.47114 123.18381,260.82124 123.63148,261.14711 C 124.7085,261.82277 121.54926,262.08168 121.49824,262.04025 C 121.52965,261.76644 121.56834,261.48928 121.38249,261.21917 C 126.58805,260.12505 123.27769,260.80992 122.4027,261.71015 C 122.19746,261.86634 121.41379,262.30952 121.78387,262.40462 C 120.66559,262.72916 119.22139,263.45929 118.02723,263.17089 C 116.53222,262.66274 115.27065,262.06828 113.62592,261.61222 C 111.91957,261.17948 109.97849,261.00622 108.0326,260.74567 C 105.60045,260.37436 103.10334,260.03097 100.82734,259.54841 C 100.4922,259.42013 100.16199,259.2885 99.789454,259.17344 C 99.359784,259.0369 99.026674,258.90291 98.403554,258.90097 C 95.798954,259.08752 97.295454,259.13719 98.885094,258.6411 C 98.618654,258.73152 97.997574,258.93304 97.914724,259.00335 C 97.075644,259.17939 96.242344,259.35889 95.397574,259.53146 C 95.129534,259.58627 96.471484,259.3165 96.182324,259.35546 C 96.986574,259.0906 97.794684,258.82731 98.563244,258.54889 C 99.792024,258.3486 101.15916,258.21042 102.17573,257.89369 C 101.98314,258.09894 101.82312,258.29478 101.88764,258.52433 C 100.88468,258.78816 99.047044,259.7991 98.215134,259.06547 C 97.832194,258.91259 97.822764,258.83622 97.245944,258.89945 C 102.47754,257.81214 99.681634,258.30461 98.726044,258.73602 C 98.297664,258.95353 97.852884,259.17264 97.707654,259.43761 C 97.723094,259.51295 97.545394,259.75252 97.898754,259.7099 C 93.120404,260.71791 95.117844,260.42483 96.034424,259.86948 C 96.548974,259.5881 97.056994,259.30496 97.648814,259.04265 C 99.028074,258.73274 100.36488,258.19396 102.12997,258.21084 C 102.66028,258.20093 103.19723,258.20192 103.71082,258.14639 C 104.84871,258.00136 107.72608,257.49579 101.9871,258.56417 C 102.4471,258.38722 102.86337,258.20908 103.16658,257.98738 C 103.67374,257.7191 104.1869,257.45123 104.74346,257.19471 C 105.9059,256.96257 109.70155,255.96138 108.10966,256.73226 C 106.51423,257.34322 104.92995,257.95874 103.50751,258.62271 C 100.99111,259.79529 98.582324,261.00581 96.710064,262.3259 C 96.190044,262.70383 95.234244,263.17489 95.564234,263.59141 C 96.038704,263.68472 96.423044,263.76951 97.011874,263.73881 C 97.505524,263.73904 97.999074,263.73896 98.492724,263.74067 C 98.993024,263.74045 99.495044,263.74498 99.993514,263.7262 C 99.280684,263.89112 97.199324,264.41595 97.886754,264.23794 C 97.517524,264.09359 97.222154,263.92661 96.643184,263.85265 C 96.125094,263.74852 95.605074,263.64534 95.101234,263.53253 C 94.428494,263.48816 93.753174,263.44299 93.057064,263.47517 C 92.135774,263.49387 91.208164,263.532 90.286874,263.50758 C 89.496664,263.42463 88.886614,263.33585 88.532394,263.04822 C 88.344084,262.71515 88.292214,262.40036 88.597454,262.06691 C 89.183164,261.48562 90.681924,260.88092 92.651074,261.03818 C 93.028984,261.23124 93.303884,261.3898 93.234974,261.65126 C 93.161024,262.03735 93.046554,262.42264 92.608204,262.78321 C 91.741574,263.31258 89.802864,263.97944 88.136594,263.68145 C 88.365414,263.14096 89.319284,262.96191 91.728284,262.69229 C 86.737294,263.73336 89.183594,263.32762 90.116994,262.84715 C 90.472184,262.62496 90.835614,262.4034 90.989094,262.14967 C 91.206444,261.82791 91.421974,261.50512 91.526684,261.17537 C 91.559374,261.03753 91.753904,260.78003 91.387684,260.72861 C 96.887114,259.58722 93.177634,260.25325 92.225584,260.85407 C 91.739644,261.13823 91.261424,261.42807 91.007524,261.74991 C 90.833794,261.94697 90.634984,262.14194 90.517194,262.34429 C 90.633054,262.38764 90.527914,262.65699 91.031214,262.53659 C 91.546624,262.52703 91.892164,262.45257 92.332224,262.60626 C 92.529324,262.74493 92.746674,262.89309 93.000474,263.01866 C 93.661964,263.13444 94.324634,263.2527 94.993524,263.36495 C 95.834214,263.50168 96.662904,263.64161 97.400924,263.8432 C 97.931764,263.96999 98.464864,264.13061 99.110494,264.15917 L 96.216514,264.90636 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1987" />
+      <path
+         d="M 81.056734,270.86133 C 81.026724,271.07682 81.031974,271.2927 81.024364,271.50835 C 80.923294,271.80881 81.088774,272.10959 81.159734,272.39977 C 81.672464,272.57318 82.397834,272.52938 83.055464,272.55482 C 83.943104,272.66265 84.826344,272.77504 85.728764,272.87075 C 88.427364,273.79463 87.855894,273.08575 80.740134,274.42131 C 80.886534,274.36433 80.255804,274.07518 80.033944,273.94461 C 79.391534,273.68357 79.340624,273.35617 79.104084,273.04112 C 79.118554,272.8922 78.973334,272.75093 78.908274,272.60647 L 85.156554,271.41016 C 85.230184,271.56273 85.409164,271.71051 85.377874,271.86872 C 85.559324,272.1495 85.567034,272.43287 86.143754,272.66383 C 86.578144,272.90884 87.101374,273.14174 87.324194,273.42496 C 80.961344,274.65208 82.536944,275.13407 79.866114,274.28191 C 79.014164,274.1881 78.170684,274.06939 77.291304,274.02086 C 76.361874,273.93315 75.534684,273.96012 74.955934,273.62948 C 74.834924,273.31058 74.551014,272.98974 74.704384,272.65271 C 74.696774,272.44094 74.702454,272.22899 74.672024,272.01738 L 81.056734,270.86133 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1989" />
+      <path
+         d="M 80.171674,272.84752 C 79.604174,272.82227 79.326264,272.62943 78.926384,272.50843 C 78.634114,272.40217 78.254494,272.33956 77.922254,272.25603 L 83.881364,270.87923 C 84.254124,270.98317 84.673184,271.06905 85.005004,271.19261 C 85.302094,271.24136 85.538314,271.43716 85.968844,271.35078 L 80.171674,272.84752 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1991" />
+      <path
+         d="M 106.9723,257.19765 C 106.93854,257.48566 107.48053,257.70847 107.88116,257.94396 C 108.30665,258.1897 108.86761,258.39194 109.42975,258.59547 L 106.44885,259.24642 C 105.903,259.02784 105.35587,258.81021 104.90905,258.56299 C 104.44251,258.32022 103.87791,258.07349 103.78005,257.77569 L 106.9723,257.19765 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1993" />
+      <path
+         d="M 81.734624,270.95982 C 82.030324,270.96351 82.326234,270.96252 82.622044,270.96359 C 83.076684,270.99958 83.495964,270.93628 83.898194,270.90977 C 82.909274,271.11167 81.920364,271.31357 80.931334,271.51547 C 81.099174,271.61514 80.681504,271.47959 80.607774,271.469 L 83.609884,270.79174 C 84.853674,271.26939 85.298024,270.91012 81.105174,271.68949 C 80.656854,271.69676 80.205114,271.71367 79.752824,271.70442 C 79.447264,271.70529 79.141494,271.70468 78.836034,271.70819 L 81.734624,270.95982 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1995" />
+      <path
+         d="M 85.716544,260.91124 C 85.420844,260.90754 85.124934,260.90853 84.829124,260.90746 C 84.359584,260.90686 83.889944,260.90693 83.420404,260.90686 C 82.881734,260.92952 82.576814,260.80928 82.170294,260.72122 C 81.960334,260.65761 81.794324,260.5798 81.605794,260.50892 L 84.637284,259.85387 C 84.821944,259.92216 84.984534,259.99764 85.190954,260.05847 C 85.554394,260.11651 85.841624,260.19775 86.285124,260.16725 C 86.756164,260.16717 87.227304,260.16725 87.698344,260.16664 C 88.003904,260.16576 88.309684,260.16637 88.615134,260.16287 L 85.716544,260.91124 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1997" />
+      <path
+         d="M 74.325624,291.14268 C 98.470544,285.28667 90.417944,287.29537 86.114174,291.42525 C 83.861964,293.72566 82.999094,296.13569 82.137924,298.5379 C 81.617264,299.99446 80.926944,301.43879 80.195674,302.88305 C 79.023384,303.93211 79.971464,304.91944 80.266094,305.91328 C 84.464404,306.35387 89.485304,305.49897 93.833014,305.18072 C 104.02259,304.32117 114.22697,305.01241 124.30412,305.68472 C 131.40734,306.04689 136.97634,307.35643 142.65047,308.79421 C 147.17942,310.2358 151.13027,311.8735 154.9077,313.55751 C 158.63529,315.34467 161.96023,317.22574 165.28355,319.10838 C 168.30271,320.96096 172.17467,322.55703 176.30675,324.09727 C 180.64933,325.60772 183.17783,325.64554 188.34459,324.78279 C 194.24122,324.2065 200.20259,324.81383 206.06739,325.18012 C 211.07724,325.51029 216.15719,325.61709 221.23553,325.69711 C 224.72884,325.72773 228.22343,325.71672 231.71727,325.71562 C 235.00577,325.86191 237.89621,325.57614 241.00336,325.27587 C 222.90319,329.60753 225.25572,329.39984 230.80563,326.13667 C 232.03269,324.43784 233.59972,322.79104 235.40543,321.16126 C 236.89497,319.82197 239.04921,318.61222 241.15212,317.39073 C 243.46081,316.34285 245.30328,315.19738 247.17372,314.05005 C 250.15944,311.75859 254.67189,309.82755 259.14136,307.88988 C 266.09003,305.15832 273.40171,302.53623 280.90149,299.99534 C 285.23913,298.53752 289.27368,296.97805 293.23899,295.3947 C 297.3401,293.55952 300.97498,291.59752 304.75135,289.6771 C 307.87318,288.19746 310.81732,286.68202 313.65042,285.1331 C 316.08525,283.37284 320.23801,282.10908 324.18693,280.79032 C 328.05921,279.70991 329.93351,278.27864 331.94896,276.76038 C 332.62364,275.62059 333.59101,274.52426 334.63116,273.4264 C 336.21823,272.50805 337.76896,271.5945 339.21917,270.65261 C 340.47903,269.68219 340.78759,268.64014 341.20065,267.60444 C 341.4852,266.5732 339.2181,266.56467 337.88043,266.06017 C 334.59526,266.03027 331.93064,265.4707 329.06249,264.97332 C 326.39733,264.38484 323.58835,264.00949 320.65289,263.6602 C 317.96437,263.74669 315.91441,263.29483 313.55053,263.01938 C 313.07156,262.83615 312.47544,262.70349 311.93795,262.54554 L 328.95253,258.73602 C 329.42271,258.85869 329.85056,259.00198 330.36297,259.10405 C 332.59309,259.28645 334.84133,259.54098 337.17317,259.63426 C 340.10605,260.06913 342.98867,260.51711 345.75082,261.09021 C 348.66655,261.51194 351.4764,261.91384 354.59695,262.10888 C 356.60018,262.82609 358.82237,263.16735 359.05023,264.36648 C 358.76707,265.47485 358.64157,266.59251 357.37239,267.64534 C 356.12346,268.66143 354.88804,269.62491 352.86776,270.49459 C 351.60822,271.55474 350.35029,272.59101 349.96725,273.7621 C 348.21941,275.43202 346.32829,276.94838 342.3619,278.13943 C 338.50752,279.39523 334.30481,280.57718 331.86322,282.25324 C 329.01898,283.85799 326.01332,285.40862 322.72472,286.90711 C 318.95533,288.81816 315.28979,290.75522 311.45394,292.64875 C 307.45959,294.28363 303.36577,295.88252 298.92502,297.36963 C 291.21539,299.85377 283.94015,302.52038 276.81228,305.21305 C 272.55995,307.08533 268.12424,308.92561 265.37409,311.14985 C 263.56935,312.33108 261.79054,313.5101 259.43223,314.56842 C 257.26941,315.74862 254.97412,316.90741 253.41267,318.21623 C 251.53205,319.81695 249.77639,321.41393 248.80087,323.12224 C 245.3738,326.84657 236.57579,328.12926 225.17673,329.60581 C 221.9788,329.79023 218.85257,330.01266 215.56118,329.88823 C 212.07248,329.88461 208.58207,329.89253 205.09701,329.82386 C 200.01942,329.70236 194.94998,329.53878 189.94656,329.19131 C 184.1824,328.84617 178.43806,328.3408 172.78965,329.14405 C 166.95733,329.66035 163.88276,329.37531 159.518,327.73678 C 155.33008,326.1519 151.26124,324.53241 148.20392,322.63317 C 144.97277,320.7604 141.77162,318.88065 138.0063,317.13384 C 134.25952,315.52021 130.42582,313.92265 126.04735,312.51618 C 120.54652,311.18748 115.08556,310.01059 108.34513,309.64115 C 98.373764,308.92904 88.371414,308.38783 78.339814,309.36978 C 72.747664,309.85208 67.692374,310.76521 62.844144,309.43758 C 62.022634,308.26637 61.132534,307.23067 62.242554,305.98321 C 63.078644,304.53545 63.779364,303.08525 64.430674,301.62538 C 65.420874,299.19985 66.245164,296.75391 68.333824,294.40681 C 72.705444,289.61094 72.564824,289.63417 90.121824,286.65246 L 74.325624,291.14268 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1999" />
+      <path
+         d="M 313.00596,273.8166 C 307.31672,275.50492 303.07939,277.73864 298.8187,279.87082 C 289.7728,284.64646 281.43962,289.5842 273.25799,294.55055 C 268.27579,297.55968 263.7299,300.65489 259.25904,303.76244 C 257.83252,304.80373 256.26206,305.81818 254.56825,306.80642 C 253.63528,307.28997 252.23941,307.56983 250.90163,307.88736 C 248.86485,308.41593 247.25346,309.10416 245.67528,309.79373 C 244.17857,310.42631 242.84433,311.10262 241.49712,311.77516 C 240.49566,312.31889 239.41683,312.84297 238.34035,313.3678 C 237.41702,313.88064 236.45008,314.37962 235.44894,314.87304 C 234.50697,315.25486 233.68375,315.67111 232.82805,316.07719 C 232.13183,316.48152 231.19918,316.81604 230.34295,317.17269 C 229.3968,317.52625 228.48569,317.89169 227.55326,318.25009 C 226.6279,318.56941 225.70253,318.89086 224.76678,319.20451 C 224.18781,319.55933 223.32901,319.82003 222.5628,320.11467 C 221.77634,320.32106 221.09116,320.56931 220.36826,320.80107 C 217.8016,322.34032 211.60669,322.34272 208.60415,322.818 C 207.31224,322.59382 206.11498,322.30067 204.90238,322.0253 C 203.4092,321.76071 202.26552,321.32446 201.06214,320.92642 C 197.98747,319.81108 194.97956,318.67396 191.89931,317.5603 C 189.06846,316.52429 185.7804,315.74671 182.13629,315.14185 C 180.41247,314.96753 178.73269,314.74952 177.04584,314.54214 C 174.78313,314.15548 172.58752,313.7235 170.38954,313.29171 C 168.3861,312.7578 166.13657,312.37674 163.92241,311.9814 C 161.2429,311.63965 158.81149,311.10807 156.37494,310.59778 C 153.87956,309.99087 151.24634,309.47829 148.57732,308.97779 C 147.18885,308.7284 145.65409,308.6694 144.14419,308.58809 C 142.21758,308.39384 141.78309,307.93467 140.88174,307.40236 C 140.70232,306.49944 142.05403,305.75671 143.26759,305.00213 C 144.10153,304.46651 145.09473,303.97009 146.09362,303.47423 C 147.1134,303.07238 147.95399,302.62779 148.79254,302.17852 C 149.54727,301.83577 150.01552,301.43666 150.55569,301.05034 C 150.78966,300.74946 151.18257,300.47081 151.50442,300.18231 L 160.6098,298.70251 C 160.29342,298.98657 159.77426,299.24335 159.66162,299.55376 C 159.15982,299.95908 158.7563,300.39765 157.95923,300.74157 C 157.14426,301.20509 156.34751,301.67192 155.29128,302.07423 C 154.24513,302.55969 153.17584,303.03475 152.33386,303.57276 C 151.17817,304.24275 149.8539,304.91026 149.66452,305.71134 C 150.46406,306.07599 150.67412,306.48942 152.35583,306.55131 C 153.92993,306.65441 155.48774,306.73908 156.885,307.04492 C 159.51028,307.57391 162.09527,308.12091 164.61542,308.71198 C 167.07233,309.1982 169.5331,309.68674 172.20168,310.01905 C 174.42752,310.42654 176.56215,310.88716 178.65017,311.38134 C 180.85189,311.7966 183.04193,312.22676 185.3488,312.56531 C 187.02868,312.76493 188.70749,312.96709 190.35329,313.20117 C 193.96106,313.88624 197.25899,314.71779 200.11545,315.77474 C 203.19924,316.89168 206.27338,318.01128 209.50078,319.07642 C 210.72002,319.44152 211.88814,319.83576 213.31294,320.10073 C 214.45726,320.35534 215.57276,320.65295 216.87495,320.79254 C 214.94845,321.254 209.38461,322.73699 211.10768,322.18325 C 211.82276,321.93576 212.42906,321.65517 213.22924,321.4388 C 214.10122,321.1859 215.00129,320.9794 215.56879,320.61525 C 216.42513,320.25872 217.25714,319.9079 218.29171,319.60632 C 219.25255,319.25893 220.24608,318.91939 221.0828,318.52984 C 221.97773,318.19121 223.01144,317.90152 223.63306,317.4805 C 224.48576,317.0689 225.36043,316.66503 226.22652,316.2581 C 227.31875,315.79051 228.35054,315.31507 229.20581,314.78384 C 230.29236,314.25942 231.32919,313.72388 232.38027,313.18956 C 233.73358,312.5083 235.03374,311.80913 236.59434,311.18363 C 238.11474,310.4649 239.73353,309.78341 241.62616,309.18137 C 242.93082,308.87039 244.30814,308.6085 245.43167,308.21274 C 247.34048,307.23992 249.01319,306.20788 250.55578,305.15337 C 255.37121,302.0147 260.18183,298.87406 265.32897,295.80182 C 273.59849,290.86453 281.99244,285.95361 290.74039,281.12099 C 294.69263,279.03508 298.65837,276.93318 303.60767,275.12337 L 313.00596,273.8166 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2001" />
+      <path
+         d="M 201.19086,316.28975 C 201.27542,314.56785 202.52982,312.89514 203.67285,311.23296 C 205.97318,308.05735 208.98795,304.95795 212.76849,301.96828 C 216.03501,299.56469 219.93248,297.27765 223.93509,295.0218 L 232.73181,293.6496 C 228.53199,295.88313 224.55039,298.17638 221.23499,300.59334 C 217.40837,303.56115 214.2009,306.63057 212.01922,309.8063 C 211.02762,311.39768 209.85072,313.01367 210.2059,314.65743 L 201.19086,316.28975 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2889" />
+      <path
+         d="M 178.51201,312.74211 C 177.5903,312.29768 177.83005,311.83149 177.79522,311.31446 C 178.61737,310.09298 179.89598,308.91925 181.13816,307.74625 C 182.31378,306.8917 182.94247,305.98237 183.42434,305.0545 C 183.63076,304.35705 184.46909,303.7269 185.20722,303.08773 C 185.77793,302.72602 186.15316,302.33383 186.60008,301.95285 L 195.66517,300.46415 C 195.22628,300.85435 194.84881,301.25422 194.28184,301.62481 C 193.5255,302.23309 192.6115,302.83064 192.3502,303.50006 C 191.86898,304.45547 191.29194,305.40284 190.0726,306.28147 C 188.78434,307.41547 187.49972,308.5503 186.71176,309.74532 C 186.71208,309.90292 186.73995,310.79199 186.71047,310.62536 L 178.51201,312.74211 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2891" />
+      <path
+         d="M 161.93783,309.58692 C 162.018,308.65592 162.69749,307.75082 163.35073,306.85429 C 164.27867,305.45925 165.61291,304.10891 166.97394,302.76208 C 167.38593,302.29891 167.83628,301.84019 168.27463,301.38018 L 177.32536,299.88938 C 176.84435,300.35088 176.33751,300.81005 175.91738,301.28047 C 174.45882,302.62265 172.97818,303.96369 172.07672,305.37115 C 171.47363,306.21451 170.86133,307.07531 170.96712,307.952 L 161.93783,309.58692 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2893" />
+      <path
+         d="M 217.75787,317.55131 C 216.73991,317.07335 216.66328,316.51584 216.45718,315.94153 C 215.95066,314.19745 217.10238,312.48217 218.10533,310.78669 C 219.95263,308.22896 222.25349,305.71988 223.80594,303.13564 C 224.53163,301.95971 224.79807,300.7613 225.04233,299.56404 C 225.30545,298.69467 226.27164,297.91088 227.25584,297.12217 C 227.89386,296.62826 228.58172,296.14277 229.25747,295.65533 L 238.24582,294.20849 C 237.55474,294.692 236.84577,295.17277 236.21943,295.66748 C 235.25602,296.42237 234.31298,297.17157 233.93518,297.99707 C 233.59747,299.22587 233.23425,300.45729 232.41146,301.66076 C 230.73736,304.23978 228.39105,306.75024 226.62264,309.32042 C 225.70896,310.96246 224.67021,312.6285 225.23707,314.31 C 225.36311,314.62261 225.71615,315.48311 225.95633,315.43459 L 217.75787,317.55131 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2895" />
+      <path
+         d="M 249.94187,304.3398 C 249.23836,303.94613 248.90076,303.49724 248.46605,303.06396 C 248.01848,302.41233 248.00776,301.74261 247.96522,301.07659 C 247.9516,300.2848 247.95075,299.49297 247.95107,298.70114 C 247.79641,298.07408 248.10605,297.46484 248.37731,296.85054 C 248.72306,296.25947 249.1224,295.6743 249.53063,295.08883 C 250.14668,294.54144 250.31227,293.9637 250.53359,293.38692 C 250.53788,292.81713 250.82875,292.25935 251.08019,291.69963 C 251.46485,291.12451 252.23148,290.59716 252.90369,290.06101 C 253.26434,289.81333 253.52296,289.54958 253.83237,289.29413 L 262.88706,287.79682 C 262.59362,288.06313 262.35215,288.33712 262.00618,288.59631 C 261.31886,289.11097 260.54312,289.61273 260.10627,290.16571 C 259.80435,290.70468 259.42109,291.24369 259.47382,291.80219 C 259.28615,292.40115 259.19216,293.00681 258.55553,293.57457 C 258.09414,294.14896 257.69212,294.72243 257.37359,295.31008 C 257.05635,295.90206 256.66848,296.48818 256.80941,297.09799 C 256.80137,297.8878 256.78069,298.67768 256.81295,299.46745 C 256.87897,300.10152 256.8555,300.7415 257.24444,301.36471 C 257.65386,301.77784 257.94634,302.20857 258.73109,302.56137 L 249.94187,304.3398 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2897" />
+      <path
+         d="M 269.53993,288.84726 C 269.629,288.12753 269.62557,287.40693 269.63725,286.68667 C 269.65558,285.76546 269.63135,284.84421 269.61935,283.92304 C 269.56308,283.12862 270.45758,282.43293 271.34157,281.72604 L 280.4178,280.27028 C 279.52727,280.92964 278.49656,281.56649 278.4613,282.32202 C 278.4494,283.2454 278.42518,284.16878 278.4434,285.09216 C 278.45497,285.80065 278.45036,286.50956 278.54071,287.21748 L 269.53993,288.84726 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2899" />
+      <path
+         d="M 287.12576,280.70169 C 287.17699,280.28673 287.16991,279.87132 287.17742,279.45609 C 287.07678,278.84449 287.59926,278.26523 288.02572,277.68155 L 297.0369,276.14459 C 296.61548,276.70226 296.03072,277.2592 296.08924,277.84243 C 296.09664,278.25144 296.08892,278.66065 296.14079,279.06932 L 287.12576,280.70169 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2901" />
+      <path
+         d="M 303.01616,275.47083 C 302.11899,275.25141 301.27486,275.00134 300.39377,274.77521 C 299.28781,274.46747 298.45334,274.06188 297.56495,273.68063 C 296.78942,273.28312 295.87114,272.93009 294.94663,272.5768 C 292.9822,271.66599 295.87757,272.98928 294.10766,272.20507 L 302.69602,270.36936 C 302.96847,270.49105 303.26652,270.6055 303.51324,270.73442 C 304.4355,271.09244 305.36686,271.44699 306.14796,271.84671 C 307.01009,272.21364 307.81895,272.60095 308.89575,272.89517 C 309.5939,273.05586 310.43105,273.35461 311.21462,273.35408 L 303.01616,275.47083 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2903" />
+      <path
+         d="M 159.3358,300.86585 C 160.9413,301.164 162.59514,301.42779 164.25809,301.68224 C 166.05544,301.82724 167.7126,302.08174 169.41156,302.32016 C 170.82414,302.53787 172.33748,302.6495 173.82616,302.78071 C 175.87247,303.13534 177.82844,303.55052 179.82868,303.93646 C 183.53323,304.63619 186.95902,305.49912 190.63517,306.21577 C 194.11143,306.87189 197.97525,307.08765 201.79084,307.33103 C 204.82586,307.76179 207.5222,308.43707 210.42057,308.97398 C 212.78317,309.32294 215.30042,309.39343 217.81928,309.44778 C 219.83034,309.49528 221.50508,309.88651 223.25323,310.2067 C 225.17201,310.61241 226.80131,311.1556 228.63199,311.60606 C 230.70606,311.8874 232.67522,312.24176 234.64265,312.60302 C 235.57627,312.85988 236.43239,313.15474 237.29055,313.44264 L 228.80079,315.32033 C 227.99793,315.04747 227.2403,314.74937 226.29597,314.5373 C 224.31974,314.17586 222.32123,313.83978 220.29774,313.51291 C 218.52139,313.05336 216.86895,312.52425 214.92713,312.15192 C 213.25078,311.85065 211.67625,311.51057 209.7325,311.50802 C 207.15041,311.41349 204.57924,311.29584 202.19693,310.89836 C 199.41098,310.34751 196.74197,309.68221 193.69998,309.32572 C 189.85042,309.05941 185.99968,308.78477 182.53274,308.09242 C 178.85927,307.3586 175.34549,306.52591 171.56645,305.85878 C 169.5989,305.48667 167.67745,305.06668 165.57861,304.79501 C 164.05853,304.65516 162.52108,304.53012 161.10528,304.27981 C 159.40836,304.06085 157.70929,303.84547 155.99136,303.64406 C 154.29615,303.37125 152.60716,303.09386 150.88665,302.84142 L 159.3358,300.86585 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2905" />
+      <path
+         d="M 226.45266,296.7079 C 226.83635,297.11201 227.98646,297.3304 228.85888,297.60119 C 231.10476,297.93293 233.23103,298.33201 235.33501,298.76201 C 236.664,299.12204 238.2007,299.23402 239.77823,299.36568 C 241.9314,299.57996 243.84857,300.00806 245.80207,300.38329 C 247.17125,300.80419 248.72863,301.0129 250.38944,301.21077 C 251.66923,301.32651 252.37681,301.68887 253.25287,302.00206 C 254.27276,302.15151 255.37893,302.25892 256.44694,302.36206 C 256.93234,302.38982 257.29707,302.50702 257.72213,302.57953 L 249.33986,304.53 C 248.93999,304.47017 248.57108,304.3844 248.14023,304.3505 C 246.94447,304.23091 245.68236,304.17888 244.7078,303.87826 C 243.89037,303.59912 243.34409,303.3004 242.13557,303.22511 C 240.49931,302.97152 238.9116,302.71516 237.50801,302.30348 C 235.58473,301.93819 233.68128,301.54905 231.52821,301.37919 C 229.90396,301.21221 228.33404,301.06661 226.98597,300.67351 C 224.86302,300.23955 222.65808,299.88283 220.46879,299.49522 C 219.30614,299.15468 218.07318,298.84492 217.42337,298.34282 L 226.45266,296.7079 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2907" />
+      <path
+         d="M 252.58216,288.98567 C 254.65474,288.96872 256.63857,289.1884 258.62327,289.36136 C 261.02691,289.64141 263.22628,290.00674 265.3368,290.49117 C 266.81637,291.0734 268.627,291.42441 270.53549,291.7686 C 271.85955,291.91368 273.2417,291.87963 274.60455,291.896 C 275.25243,291.94049 275.88392,291.85807 276.50608,291.83963 L 268.47685,293.97654 C 267.81611,293.97913 267.15494,293.99627 266.49344,293.98435 C 265.04528,293.95258 263.59003,293.95167 262.23007,293.74055 C 260.3636,293.34388 258.55328,292.94214 256.98947,292.38721 C 254.92354,291.95934 252.78569,291.59733 250.48504,291.34588 C 248.4742,291.19894 246.47193,291.02343 244.39667,291.09903 L 252.58216,288.98567 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2909" />
+      <path
+         d="M 275.51384,284.1748 C 275.91521,284.44917 276.90306,284.44312 277.55908,284.56987 C 278.84981,284.62262 280.11299,284.70573 281.38378,284.8027 C 282.50163,284.8388 282.96999,285.14338 283.72162,285.36459 L 275.11653,287.19829 C 274.51667,287.08745 274.03588,286.78611 273.1716,286.83886 C 271.8663,286.76055 270.55511,286.68339 269.26535,286.57987 C 268.72625,286.48503 267.41827,286.26653 267.31549,286.29151 L 275.51384,284.1748 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2911" />
+      <path
+         d="M 287.98906,277.6686 C 288.43513,278.12176 289.47656,278.40783 290.38896,278.73522 C 291.76928,278.99745 293.2286,279.196 294.64665,279.44056 C 295.27802,279.54906 295.88014,279.67319 296.49737,279.78962 L 288.08606,281.72802 C 287.48405,281.61269 286.87764,281.50064 286.28046,281.38207 C 284.79113,281.14936 283.21039,280.95912 281.90305,280.60971 C 280.9121,280.24716 279.82029,279.91561 279.19985,279.44699 L 287.98906,277.6686 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2913" />
+      <path
+         d="M 139.05985,307.11218 C 138.29579,306.79149 137.42937,306.50934 136.58375,306.21763 C 135.23504,305.80862 133.93585,305.38029 132.62991,304.95444 C 131.56854,304.56093 130.53643,304.15919 129.5025,303.75707 C 128.49826,303.52337 127.73012,303.20572 126.87603,302.91131 C 125.24856,302.43412 123.5944,301.97197 121.90433,301.52296 C 119.9324,301.00095 117.90408,300.50639 115.87759,300.01149 C 114.20489,299.7616 113.38692,299.33011 112.42158,298.83639 C 111.9066,298.37272 111.9455,297.87835 111.88752,297.39004 C 111.88463,296.90782 111.89888,296.42564 111.90842,295.94346 C 111.91281,295.7029 111.91314,295.46238 111.9156,295.22183 L 120.84093,293.6066 C 120.839,293.8475 120.83889,294.08844 120.83514,294.32934 C 120.82635,294.80984 120.81596,295.29038 120.80846,295.77093 C 120.85593,296.21018 120.75647,296.65858 121.14745,297.08352 C 122.08278,297.47646 122.75917,297.90711 124.27025,298.11384 C 126.26513,298.62348 128.2824,299.12136 130.25284,299.64277 C 132.00067,300.10133 133.75794,300.55765 135.41981,301.05499 C 136.30177,301.343 137.14632,301.64256 138.07457,301.91237 C 139.07539,302.30954 140.06773,302.70888 141.10541,303.0942 C 142.42894,303.51937 143.74892,303.94552 145.11263,304.35461 C 145.89395,304.61947 146.65822,304.90527 147.50899,305.13661 L 139.05985,307.11218 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2915" />
+      <path
+         d="M 140.61937,309.1352 C 140.11843,308.95734 139.45693,308.84712 138.85439,308.69781 C 137.99612,308.39499 137.11095,308.10271 136.22042,307.81248 L 144.77513,305.94885 C 145.63426,306.22925 146.47163,306.51894 147.36248,306.7868 C 147.78336,306.8538 148.75374,307.12197 148.81783,307.01849 L 140.61937,309.1352 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2917" />
+      <path
+         d="M 151.4459,301.92143 C 150.38721,301.90814 149.32756,301.90955 148.26834,301.90669 C 146.71246,301.97955 145.26782,301.86487 143.80647,301.76318 C 142.78026,301.60192 142.23323,301.25761 141.5727,300.95459 C 140.8169,300.67317 140.31338,300.33119 139.7208,300.0108 C 139.17903,299.63873 138.11584,299.45896 137.20462,299.21958 C 135.95988,298.97655 134.89754,298.64458 133.80692,298.32945 C 132.74533,297.99364 131.85148,297.59468 130.9153,297.21514 C 130.45187,297.00152 129.94664,296.80133 129.46156,296.59406 L 138.05485,294.76829 C 138.52311,294.97064 138.99704,295.17106 139.45951,295.3752 C 140.39151,295.74415 141.28933,296.12776 142.32519,296.4606 C 143.41442,296.74946 144.46282,297.06451 145.64691,297.30888 C 146.71428,297.58101 147.83524,297.81094 148.44025,298.24673 C 149.0056,298.54118 149.50065,298.85608 150.2004,299.11976 C 150.81131,299.36047 151.15963,299.68047 152.12926,299.76845 C 153.52384,299.79576 154.93932,299.85514 156.35265,299.81941 C 157.44982,299.81652 158.54752,299.81762 159.64425,299.80467 L 151.4459,301.92143 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2919" />
+      <path
+         d="M 135.09571,296.14566 C 134.08472,296.5316 133.27339,296.98331 132.39851,297.40962 C 131.24626,297.97022 130.3777,298.5894 129.46992,299.20081 L 120.40054,300.66239 C 121.2856,300.03994 122.12244,299.40518 123.25529,298.83243 C 124.10199,298.39645 125.01106,297.97627 125.76022,297.51984 L 135.09571,296.14566 z "
+         style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.03800011;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2921" />
+      <path
+         d="M 190.50345,329.49376 L 195.77288,349.58861 L 184.35313,388.94686 L 117.96046,420.4378 C 164.12744,411.75136 233.17348,397.01344 236.5893,401.83128 L 229.82272,329.49376 L 190.50345,329.49376 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.92336035px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2923" />
+      <path
+         d="M 268.18715,307.25756 L 259.02646,385.75407 C 274.49523,398.03489 297.87694,408.79936 323.50529,419.28544 C 381.36329,439.48495 256.12155,408.99261 226.48964,402.88431 L 234.60943,327.66129 L 268.18715,307.25756 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.92336035px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2925" />
+      <path
+         d="M 325.70313,317.72961 L 325.70313,277.64368 L 331.14453,277.64368 L 352.19922,309.11633 L 352.19922,277.64368 L 357.28516,277.64368 L 357.28516,317.72961 L 351.84375,317.72961 L 330.78906,286.22961 L 330.78906,317.72961 L 325.70313,317.72961 z "
+         transform="matrix(1.726659,0,0,1,-359.61779,-200.99515)"
+         style="font-size:56px;font-family:Arial Rounded MT Bold"
+         id="flowRoot3162" />
+      <path
+         d="M 81.221524,253.06212 C 85.765984,249.95232 84.357314,251.20241 83.434784,252.06839 C 83.872574,252.68047 84.672954,252.70134 85.388504,252.82715 C 86.141164,252.92777 86.900514,252.92033 87.657804,252.92847 C 88.434584,252.84278 88.992094,253.21392 89.632644,253.55328 C 90.779384,255.32895 89.017284,255.24709 86.839154,256.45832 C 86.013994,256.44921 85.186384,256.42939 84.363684,256.41773 C 83.476794,254.62879 86.764614,255.5238 87.075174,255.40972 C 87.913794,255.70795 88.646674,255.42652 89.443244,255.21102 C 89.247334,255.85676 88.153624,255.61132 87.521324,255.84703 C 86.039464,255.37896 85.354544,256.44901 89.182434,254.3401 C 88.744404,255.32261 89.145534,256.11354 89.558504,257.02782 C 90.104974,257.90711 90.613114,257.9154 91.396774,257.89231 C 87.550644,260.51695 89.693294,258.04005 89.444564,255.27322 C 89.132094,253.24127 88.033164,251.76025 86.567404,250.43742 C 84.610544,249.33493 82.815544,250.8692 86.971714,248.58155 C 86.407494,249.48625 86.898274,250.23689 87.336484,251.11221 C 87.833794,251.80497 88.594474,252.15172 89.319544,252.53448 C 89.710124,252.9698 89.337604,253.15983 89.243634,253.56578 C 85.619864,255.66512 86.543704,254.95718 84.659064,252.85591 C 83.084384,251.45211 81.492804,253.11971 85.414624,250.99535 C 84.753034,251.85376 84.669964,252.87183 84.649204,253.91186 C 86.035494,254.72778 83.164994,255.32265 82.706534,255.57419 C 82.752254,255.18792 82.201624,255.22674 81.908584,255.13109 C 81.189654,254.9851 83.261484,254.56255 83.947544,254.30275 C 84.180384,254.63661 84.228564,255.05327 84.368304,255.409 C 85.135804,256.03168 82.609784,256.31165 81.734044,256.76976 C 81.548304,255.92439 80.974664,255.53995 80.275084,255.12272 C 79.618984,254.74388 79.162994,254.99245 78.550134,255.11877 C 82.171544,252.84142 80.957424,253.10975 80.834244,254.87451 C 80.528564,256.01577 74.231634,259.60663 80.685994,255.06491 C 81.876724,255.21014 83.023874,255.59202 84.174574,255.91725 C 85.638184,256.38453 87.031804,257.04363 88.450894,257.62877 C 90.854674,258.22235 89.699164,258.0376 87.728514,258.81593 C 87.515434,257.07334 89.603434,256.99726 91.032304,256.22322 C 91.642934,256.29827 92.098194,256.7627 92.593154,257.10465 C 93.321114,257.73546 94.117364,257.8682 94.956464,257.98496 C 91.498534,260.08454 93.242824,259.50167 91.154174,258.48876 C 90.336044,258.14849 89.539764,258.19303 88.702704,258.27363 C 87.608134,258.10241 86.961154,257.11474 86.213674,256.35245 C 85.200824,255.23619 83.929284,254.48225 82.607174,253.80138 C 82.173484,252.7515 84.547954,252.58533 85.619154,252.20736 C 83.548064,253.76343 83.320284,253.94017 81.525704,254.04797 C 80.928714,253.9425 80.497874,254.22367 79.978514,254.41958 C 79.488464,254.70673 78.931724,254.72203 78.384744,254.79129 C 77.616904,254.89935 77.639454,254.52661 77.270334,254.08318 C 77.517114,252.48258 79.769494,252.3243 81.019484,251.68492 C 81.578514,251.56776 82.096604,251.6949 82.635424,251.78219 C 83.562704,252.37795 84.398494,253.13721 85.260854,253.83185 L 82.571944,255.51706 C 81.741384,254.84391 80.932754,254.08251 79.968874,253.61472 C 79.457344,253.5794 78.946064,253.50859 78.433664,253.63842 C 79.000294,253.27398 80.667144,252.13581 80.140544,252.55602 C 80.307744,252.617 80.493354,253.18838 80.981074,252.86256 C 81.512304,252.76146 82.040164,252.69599 82.510314,252.39761 C 83.046464,252.23575 83.554434,252.08142 84.130904,252.13323 C 85.608914,251.94528 87.146254,251.09059 82.612234,253.48272 C 82.794574,253.38848 85.919484,251.85364 85.298994,252.0529 C 86.593984,252.8049 87.853494,253.61302 88.891404,254.71131 C 89.605874,255.41031 90.228304,256.32812 91.282944,256.32277 C 92.149724,256.33626 92.998474,256.35736 93.818224,256.7179 C 96.165524,257.96897 95.518124,258.5261 92.361054,259.91994 C 91.492264,259.66882 90.632214,259.42881 89.889784,258.8347 C 89.426354,258.52821 89.028234,258.12481 88.453324,258.1884 C 89.109004,257.78228 90.841164,256.60153 90.604184,257.33548 C 89.584054,258.15335 87.912504,260.72729 85.839154,259.37262 C 84.428284,258.77451 83.018724,258.15793 81.551874,257.70888 C 80.435894,257.38878 79.280424,256.92721 78.110384,257.07088 C 78.967014,256.4438 81.553164,254.59803 80.631154,255.1243 C 79.710814,255.64963 78.818654,256.22286 77.912404,256.77214 C 77.925994,256.69327 78.167394,256.61988 77.977984,256.39132 C 77.950114,254.24237 78.246224,254.50475 81.090824,253.10488 C 81.758314,253.04315 82.335494,252.99633 82.961394,253.36369 C 83.708704,253.86398 84.373554,254.36034 84.614574,255.28117 C 84.173294,255.62561 82.058214,258.66939 81.463054,256.8846 C 81.348544,256.55244 81.346894,256.13829 81.089494,255.82608 C 81.170754,254.19674 82.745804,253.14672 84.567754,253.28623 C 85.158384,253.52342 85.550304,253.57754 85.687074,254.26887 C 83.870234,255.38953 82.784724,257.22571 81.799124,255.38608 C 81.809394,254.28853 81.891304,253.2045 82.442894,252.2198 C 85.020604,250.61629 85.418944,249.43951 87.371704,251.20073 C 89.193314,253.24651 89.813454,253.21076 86.225284,254.80835 C 86.327194,254.65251 86.774024,254.50448 86.579994,254.26589 C 85.829254,253.84955 85.076984,253.45647 84.587004,252.71164 C 84.093034,251.74207 83.582154,250.87677 83.963744,249.77601 C 86.641784,248.22741 86.933124,247.39779 89.242944,248.75705 C 90.704294,250.18435 91.827184,251.75616 92.177904,253.84428 C 92.584254,257.23142 92.299054,258.22062 88.852414,259.88376 C 87.974414,259.6849 87.310014,259.53292 86.798534,258.61689 C 86.348484,257.64417 85.889514,256.71551 86.204784,255.61706 C 88.513884,254.16556 88.623344,253.15878 90.330494,254.21625 C 90.532614,256.01646 88.960254,256.29706 86.905604,257.1932 C 86.054674,257.39634 85.244324,257.51823 84.393974,257.19443 C 82.849484,255.63763 84.279864,255.68241 86.966504,254.51394 C 87.770794,254.54366 88.594364,254.6368 89.386274,254.46598 C 88.549214,254.96484 87.712154,255.46371 86.875094,255.96257 C 86.881504,255.83668 87.595224,255.63457 86.909474,255.28795 C 86.298834,255.00977 85.759854,254.72742 85.047044,254.82287 C 84.286374,254.80182 83.523554,254.7965 82.770844,254.66561 C 81.861214,254.47521 81.015154,254.38752 80.528604,253.52515 C 81.366974,252.06349 80.393864,252.57412 83.873334,251.13546 L 81.221524,253.06212 z "
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2023" />
+      <path
+         d="M 113.29893,252.49261 C 114.32786,252.91362 115.39564,253.24769 116.45044,253.60207 C 118.87044,254.5393 119.11703,253.81369 115.33831,255.95334 C 113.92377,255.0721 112.70152,253.91458 111.53717,252.73097 C 110.58646,251.81454 109.76762,251.24793 110.13618,250.02315 C 114.29946,247.34613 116.80142,249.11769 120.29468,251.87189 C 122.19717,253.75218 124.68967,255.87065 124.85398,258.72278 C 123.78161,261.84955 120.63818,261.84637 118.50384,260.52917 C 117.87548,259.51008 118.13154,258.5475 118.38376,257.4583 C 118.60404,256.65285 118.42277,255.88226 118.27771,255.09827 C 117.69922,254.77124 119.19215,254.0833 119.79641,253.80674 C 119.16895,254.80267 118.89551,255.75968 119.16618,256.8664 C 122.18607,256.17375 118.88885,257.44257 118.72639,257.52779 C 118.68138,257.07251 117.5971,257.19587 117.08478,257.19076 C 115.95235,256.37122 117.19953,255.77556 118.10073,255.05953 C 118.8798,254.58648 119.51577,254.04485 120.00932,253.3367 C 119.84914,252.75107 119.44765,252.63981 118.95915,252.39851 C 116.93071,252.95333 120.6767,250.91576 121.24909,250.51166 C 121.91152,250.22658 120.10196,251.38953 119.49036,251.77166 C 118.79207,252.54119 116.01698,253.89522 121.09959,250.99031 C 120.93694,251.10438 120.75522,251.18851 120.58304,251.28761 C 121.10833,252.91296 118.07199,252.35805 117.71453,252.51488 C 116.14677,252.26101 115.05781,253.38298 119.04765,251.13695 C 118.68331,251.20693 118.61913,251.74866 118.47043,252.08855 C 122.01406,250.27159 116.01223,253.75586 119.15321,251.76361 C 120.27131,251.30258 119.62848,250.9308 119.65021,250.66516 C 118.68045,250.43694 117.92287,250.81987 117.08907,251.24605 C 121.45153,248.27401 118.09248,251.06264 117.20959,252.13246 C 116.92956,252.57023 116.78833,253.1163 116.64469,253.60723 C 114.30976,255.31555 113.79728,255.32408 111.55044,255.32638 C 110.6536,255.20678 109.89561,255.51982 109.10521,255.82503 C 107.94564,256.67456 113.96743,252.78335 112.66405,253.38957 C 111.36275,253.99482 110.06745,254.96207 112.98602,252.97588 C 115.26973,251.32387 117.88292,249.75123 118.69015,247.02846 C 117.85861,245.66862 116.41834,245.2232 114.98427,244.74338 C 112.95818,244.12583 110.93411,245.58717 115.06432,243.36775 C 114.53327,244.23946 114.18181,245.21436 113.75795,246.14454 C 113.40278,246.7794 113.0795,247.42853 112.76497,248.08221 C 112.70383,249.70414 110.27638,249.9188 109.45766,250.28963 C 108.68195,250.05566 110.56727,249.05533 111.29402,248.69715 C 111.13161,249.45759 111.81207,250.02749 112.02529,250.32888 C 108.43811,252.51822 109.72416,252.03589 109.32811,249.93057 C 109.33742,248.69852 111.66701,247.18584 111.77969,249.29618 C 112.05234,250.19606 112.54937,251.04217 112.93575,251.87182 C 109.91318,253.98179 110.39038,253.4531 108.09167,252.79969 C 107.67816,250.98463 110.73337,251.92301 111.01624,251.82032 C 107.73313,253.726 108.80321,253.79726 107.06515,252.2016 C 106.41886,251.84581 105.95734,251.43068 105.53356,250.84653 C 104.91854,250.55213 104.20249,250.52227 103.53395,250.39468 C 102.75453,250.11894 101.91185,249.95767 101.13958,249.84228 C 104.42591,247.61553 103.69042,248.33771 105.44829,250.68946 C 107.80111,252.94097 106.35315,252.15502 104.08591,252.85501 C 103.72428,251.6744 103.05807,250.61399 102.52004,249.52231 C 105.59347,246.95834 105.68306,248.03913 108.67383,248.8595 C 109.92827,249.12808 111.10439,249.1575 112.15638,249.84633 C 112.69957,250.6077 112.69956,251.44595 112.74114,252.32023 C 112.36316,254.07105 110.01394,253.97397 108.84407,254.53614 C 108.43912,254.45678 108.16128,254.16049 107.83232,253.94986 C 111.28164,251.50182 111.10286,252.72163 113.19001,255.18696 C 110.52232,258.01504 110.61269,256.7803 108.17545,254.66321 C 107.23428,253.84533 106.23091,253.11016 105.20388,252.40642 C 112.13212,248.43641 105.42007,251.84774 104.94164,252.07468 C 103.68044,250.4388 106.64184,250.24381 108.00531,249.58923 C 110.36854,249.80336 109.24305,249.74719 106.79539,250.98479 C 106.50627,250.33076 105.93897,249.89442 105.42627,249.4231 C 104.52855,249.13679 106.906,248.23321 107.74847,247.81117 C 108.47421,250.32895 104.83388,249.10365 104.23262,249.30198 C 103.67575,248.94293 103.18534,248.49538 102.67644,248.07367 C 101.35478,246.33461 105.01442,245.75001 106.45336,246.203 C 108.87443,247.3503 111.00065,245.93014 106.72442,248.25699 C 106.73518,247.68855 106.25197,247.33496 105.886,246.93232 C 104.5975,245.21327 106.18605,245.40058 108.52898,244.17785 C 109.49196,244.62208 110.29249,245.32653 111.12622,245.96722 C 111.78248,246.37789 112.50304,246.6689 113.18943,247.02571 C 114.07564,247.39291 114.90063,247.83925 115.7268,248.33083 C 117.68609,249.58122 119.65456,250.81464 121.64446,252.01495 C 120.46538,253.66999 119.72947,253.91466 118.26695,252.42942 C 117.66524,251.9373 117.00599,251.53092 116.39083,251.06588 C 116.19198,249.03088 118.91983,248.66432 120.45958,248.96321 C 121.12757,249.16033 121.73018,249.54052 122.32308,249.85442 C 122.44238,250.09557 122.72811,250.13992 122.92037,250.27544 C 123.39081,250.36864 123.87449,250.39544 124.35108,250.43658 C 124.98918,250.64203 125.50764,250.52393 126.07876,250.38501 C 123.15026,252.16327 123.99592,252.52557 123.08349,251.09248 C 122.35709,251.18335 124.27611,250.23582 124.92172,249.89071 C 124.6753,250.31384 124.73261,250.78969 124.69858,251.25115 C 125.54474,251.22801 123.26008,252.14532 122.51829,252.55308 C 122.59494,252.20262 122.18211,252.55641 122.05016,252.55772 C 120.91761,253.25941 123.63995,251.64683 124.44629,251.21219 C 124.79468,251.0244 123.83264,251.71222 123.52346,251.9593 C 121.05915,253.57608 120.97119,254.06498 118.98151,253.38181 C 118.32306,253.15126 117.78757,252.71709 117.23447,252.32172 C 116.74479,251.85818 116.14944,251.53801 115.5725,251.19765 C 114.44074,250.49605 113.35818,249.72814 112.32839,248.88824 C 110.81758,247.0737 114.64706,246.28042 116.25178,246.14533 C 117.26526,246.07741 118.27906,246.20255 119.28855,246.28439 C 119.98526,246.25376 120.56105,246.51433 121.17497,246.77933 C 122.78481,248.18032 118.88042,248.55607 118.04589,248.94597 C 117.06083,248.57382 116.18895,247.97826 115.29747,247.43036 C 114.78861,247.01514 114.21174,246.88727 113.59701,246.75348 C 113.11115,246.74726 112.70792,246.46922 112.29082,246.25778 C 115.15625,244.33394 114.42161,244.13012 115.91652,245.78292 C 116.92165,246.74472 118.06833,247.53395 119.178,248.36645 C 121.30753,250.09768 121.39875,249.46552 117.60545,251.07724 C 115.5193,248.60233 113.29295,249.64081 117.33824,247.53433 C 117.26655,248.57266 117.89969,249.5545 118.35192,250.48301 C 117.03154,252.5397 116.07939,252.76923 114.7277,251.75482 C 117.43527,249.80909 116.84593,249.62867 118.64525,250.60056 C 119.34315,250.47414 117.52156,251.47549 116.90164,251.82009 C 117.1763,251.48524 117.04869,251.08335 117.01951,250.68074 C 118.17,249.06382 119.73724,248.73954 121.42191,248.62342 C 122.02021,248.60802 122.61874,248.61459 123.21714,248.61691 C 123.81416,248.61758 124.02013,249.00518 124.4047,249.3438 C 124.47835,251.01226 121.83608,251.38107 120.41039,251.64145 C 122.6376,250.70145 122.57669,249.86804 121.28098,251.70735 C 121.06065,252.27157 120.90943,252.85883 120.71457,253.42732 C 119.57237,254.90132 118.21942,255.24132 116.67122,255.34025 C 116.11583,255.35086 115.76761,255.0185 115.33917,254.76919 C 114.91022,254.1493 115.13637,253.90223 115.35594,253.29722 C 115.96443,252.89118 123.20387,248.84322 117.11242,252.30907 C 118.49872,251.15722 119.97708,250.45297 121.60374,249.55809 C 122.58277,249.60987 122.85159,250.28065 123.30414,250.99209 C 120.13287,253.65473 119.64493,253.00629 116.58217,251.14611 C 114.56152,249.92279 112.53768,248.82839 110.84415,247.17744 C 110.31553,246.45067 109.80844,246.43455 108.97873,246.40532 C 107.8829,246.47229 106.80937,246.40047 105.72575,246.24898 C 103.32018,245.45236 104.90292,245.17008 107.48924,243.7133 C 109.2134,244.19429 110.86893,244.89198 112.52053,245.57571 C 114.83998,246.36269 110.97204,247.83054 109.54166,246.86987 C 108.73233,246.29131 107.84198,245.85055 106.93525,245.45235 C 106.33026,245.32866 105.82977,244.99625 105.31009,244.69711 C 104.91564,244.33175 104.52051,243.95825 104.1398,243.58186 C 103.6463,240.05553 106.60484,242.49418 107.25259,242.21268 C 107.10859,244.24533 104.7035,243.46254 104.30132,243.65838 C 106.7803,242.03723 106.40892,241.48699 107.81837,242.85095 C 108.19989,245.0772 105.21074,244.83451 103.7867,244.20876 C 102.04041,243.86836 102.24407,244.39755 105.13567,243.10821 C 104.89754,243.76861 105.43018,243.82497 105.63424,244.11435 C 104.14325,244.1874 103.0196,246.70882 103.46066,244.42358 C 103.34976,243.78497 102.98744,244.0011 102.59646,243.81973 C 101.89558,243.62938 103.9381,243.26294 104.6045,242.97419 C 102.8934,245.25386 111.51502,239.81496 101.874,245.08217 C 102.15044,244.49006 101.96076,243.91748 101.86418,243.31917 C 100.40558,242.5399 101.28947,242.90538 103.72957,241.54395 C 103.22474,241.80912 103.47337,242.24332 103.41063,242.60285 C 104.26389,242.50977 101.90726,243.43201 101.14402,243.82464 C 101.26224,243.49682 100.86212,243.71447 100.84653,243.70838 C 101.75237,243.20843 102.65821,242.70847 103.56404,242.20851 C 103.17735,242.49143 103.35924,242.83411 103.3485,243.23727 C 103.48849,243.75346 103.86739,244.11432 104.18136,244.51764 C 100.72071,246.59862 102.02635,246.27246 100.15754,244.81141 C 99.482484,244.68026 101.19541,243.8732 101.82505,243.59667 C 101.58289,244.39596 102.25838,244.10959 102.26335,244.11546 C 95.753164,247.30835 102.58635,244.18859 103.16337,243.9539 C 103.53382,244.58406 103.80763,244.36859 104.288,244.42407 C 100.28345,247.02371 101.82903,246.03901 102.55018,244.60487 C 105.55431,242.61692 105.12267,242.50095 106.84319,244.04509 C 107.62133,244.74392 108.59126,244.98197 109.58396,245.1467 C 107.18577,246.91922 107.46203,246.50159 105.40813,245.43516 C 104.53957,245.02328 103.65703,245.06502 102.75072,245.08997 C 104.94814,244.09653 104.58052,242.93218 105.03712,245.19237 C 105.55221,246.24158 106.32955,247.03257 107.29407,247.64507 C 108.02544,248.10516 105.65122,248.1823 104.82099,248.42167 C 104.15676,247.6814 103.23211,247.29731 102.35499,246.87288 C 100.34147,246.26614 104.88172,245.68999 105.0144,245.64058 C 105.88307,246.19417 103.10981,246.42609 102.16316,246.83218 C 101.85093,246.36433 101.43542,245.98111 101.05926,245.56999 C 100.59897,245.27397 100.42457,244.77888 100.16185,244.36659 C 103.15124,241.97612 103.44404,242.49615 106.344,243.66206 C 108.14432,244.47304 109.97798,245.208 111.77479,246.02489 C 112.99051,247.87479 109.28021,248.05703 107.93297,247.59411 C 105.12253,247.44242 108.90777,244.85799 110.02845,246.67291 C 110.95117,247.84101 112.05853,248.82842 113.21775,249.7512 C 113.84492,249.70501 114.76791,250.49584 115.37095,250.89939 C 118.00162,252.46711 118.83069,251.34385 115.66066,252.62109 C 115.61932,251.82345 115.63461,251.06293 115.70095,250.28939 C 116.77987,248.9563 118.56759,248.38395 120.11839,247.70319 C 120.82488,247.55439 121.11265,247.94712 121.63546,248.3516 C 122.33007,249.06043 122.58617,249.95871 122.87487,250.8775 C 121.99583,253.41392 120.25113,253.14888 119.02311,251.0797 C 118.62985,248.14626 122.06899,248.6431 123.53723,250.13526 C 124.27757,251.25168 125.16249,252.19997 126.15769,253.08321 C 128.40257,253.45721 124.99585,254.57193 124.30145,255.00838 C 123.64863,255.34531 125.58654,254.29613 126.23066,253.94284 C 123.47206,256.22417 122.33768,256.18293 123.40179,253.89697 C 123.84277,253.39801 124.09042,252.65781 124.28223,252.14003 C 121.44009,251.6592 118.69975,250.65282 115.98501,249.69826 C 112.64683,248.63397 109.20663,247.92249 105.79201,247.14891 C 103.97549,246.85527 102.20242,246.47518 100.46921,245.87235 C 99.530144,245.33934 99.135154,244.50317 98.764134,243.54557 C 98.727794,243.43618 98.691444,243.3268 98.655104,243.21741 L 101.4798,241.66414 C 101.51516,241.77466 101.55052,241.88518 101.58588,241.9957 C 101.94486,242.86108 102.1967,243.64749 103.10293,244.1107 C 104.79882,244.69557 106.53629,245.06484 108.29805,245.41649 C 111.68702,246.26957 115.12237,246.96708 118.45125,248.03304 C 121.27362,249.06486 124.14765,249.90376 127.08133,250.48701 C 127.10791,251.28173 126.96634,251.86514 126.31085,252.58821 C 125.42574,254.34462 125.89236,253.71377 123.22438,255.14611 C 124.42421,254.4191 125.5995,252.9088 127.03351,253.21287 C 125.99927,253.99714 124.34273,255.722 123.46333,254.76734 C 122.47574,253.85937 121.57672,252.90273 120.83757,251.77336 C 118.89131,249.93162 121.16198,248.49088 121.74969,249.50041 C 122.98286,251.55962 122.15651,253.15304 120.08345,252.40476 C 119.79575,251.55088 119.56075,250.69715 118.89769,250.04421 C 118.37872,249.71714 118.20569,249.46392 117.58754,249.72081 C 114.94189,250.82027 120.55942,247.46099 118.64608,248.95997 C 118.48009,249.70817 118.42947,250.40411 118.55852,251.23388 C 116.03612,253.2237 115.45595,254.54521 112.75335,252.58265 C 112.01033,252.13011 111.24027,251.75869 110.47494,251.46071 C 109.40113,250.42451 108.29448,249.41694 107.31183,248.2916 C 105.88062,246.27204 108.77662,244.92646 110.58156,245.80095 C 113.1725,246.5834 109.70465,247.3574 109.09939,247.77842 C 107.3699,246.8869 105.57539,246.12581 103.7754,245.38557 C 101.15473,244.38596 99.214244,244.86435 103.05796,242.87772 C 103.24616,243.14331 103.42406,243.6558 103.8128,243.86949 C 104.20379,244.30302 104.62392,244.71529 104.96307,245.19383 C 104.14191,246.00333 103.27039,247.92588 102.26585,247.35977 C 101.07828,245.86759 103.44678,244.4909 105.02832,245.10511 C 105.94488,245.57331 106.90644,246.00691 107.59457,246.79891 C 108.62413,248.59715 106.53934,249.67213 104.59874,249.40384 C 103.64167,248.67605 102.81363,247.82287 102.2464,246.73943 C 101.6074,244.43329 102.53932,244.3911 105.33191,243.15507 C 106.26797,243.21211 107.19639,243.24302 108.06695,243.67825 C 110.41375,244.9848 110.3098,245.18517 106.95744,247.01066 C 105.93794,246.75036 104.92657,246.45397 104.11349,245.74456 C 102.54921,244.41335 102.16569,245.13903 105.54917,243.35737 C 104.53078,245.00685 104.34748,245.36456 101.72086,246.40254 C 101.18082,246.26162 100.76553,246.20748 100.40644,245.67298 C 100.74715,245.45053 106.61999,241.71355 99.709684,246.12788 C 99.254894,245.79406 98.842094,245.84555 98.913724,245.01632 C 99.754804,244.39099 101.32563,241.83601 102.86387,243.09288 C 104.79949,244.65556 104.81633,244.72876 101.39552,246.20604 C 101.06471,245.74809 100.68132,245.32072 100.4976,244.77368 C 100.42712,244.29246 100.30509,243.86676 100.52772,243.39795 C 104.01083,241.44494 102.8939,241.01918 104.06369,242.38441 C 103.42069,242.85437 101.76338,245.45925 100.59239,244.22184 C 100.47511,243.67085 100.33372,243.26398 100.70517,242.7286 C 103.0545,241.38731 103.41085,240.15829 104.69212,241.76393 C 104.81785,242.42489 105.01348,243.06436 104.84868,243.75005 C 102.32053,245.28017 101.7608,246.49604 101.67593,244.36401 C 102.55759,243.70064 103.38189,241.5425 105.23333,241.9205 C 105.74327,242.20038 106.1848,242.22973 106.3261,242.93562 C 106.21303,244.85803 105.60184,245.27941 102.9582,245.95387 C 102.48322,245.51067 102.1491,245.26111 102.21804,244.50796 C 103.16901,243.815 104.69809,241.48223 106.44657,242.43089 C 108.982,243.52815 105.42937,243.9214 105.06091,244.53653 C 103.53644,243.08274 103.94561,243.36679 106.98315,241.79946 C 108.10809,243.11953 107.46173,242.9266 104.56544,244.05425 C 103.23575,242.8124 104.37037,242.63223 106.88941,241.85824 C 107.26587,242.23217 107.62511,242.62803 108.04173,242.95798 C 108.54901,243.23066 109.05017,243.51022 109.61327,243.66666 C 110.51477,244.10543 111.39932,244.57821 112.22696,245.14867 C 114.441,246.51804 111.64822,248.1341 109.90986,247.31491 C 108.3132,246.60025 106.65308,245.84614 104.90239,245.67228 C 108.28389,243.55922 106.34027,243.84501 108.33702,244.40992 C 109.41764,244.5389 110.49054,244.57998 111.5801,244.52693 C 112.46981,244.60811 113.03792,244.73083 113.55551,245.53456 C 115.15487,247.21015 117.12727,248.32092 119.11811,249.50084 C 121.78147,250.99178 124.35147,250.6605 120.47354,252.54852 C 120.07631,251.91562 119.93407,251.46064 119.0658,251.55061 C 123.90851,248.69511 121.09995,250.23115 120.10862,251.13441 C 116.46198,253.28932 115.11738,254.00396 118.34221,252.06383 C 118.08478,252.53039 117.76067,252.46483 118.10422,253.06294 C 118.48787,253.23793 118.81864,253.49042 119.28688,253.4256 C 119.94786,253.30152 118.38325,254.54238 117.7324,254.71173 C 117.94999,254.18435 118.26418,253.64071 118.34916,253.02422 C 119.35571,251.29533 120.98731,250.3963 122.96513,249.69206 C 124.32774,249.39969 127.95505,247.75814 121.59095,250.97733 C 121.26696,250.79196 121.08557,250.41968 120.59745,250.51784 C 120.00571,250.51499 119.41355,250.5047 118.82222,250.53324 C 116.11867,250.88715 119.78906,250.21019 119.95376,249.27846 C 119.97657,249.64857 120.03274,250.17093 119.89677,250.56025 C 118.58447,251.37248 117.49041,252.88385 115.9486,252.37961 C 114.15183,251.44007 113.87914,251.98037 117.48844,250.0241 C 119.09898,251.01222 117.08204,251.10453 115.54365,252.05331 C 115.09747,250.96634 114.4785,249.91612 114.32965,248.73684 C 117.99451,246.70506 117.65015,246.94302 120.32471,249.38812 C 117.33994,251.8117 118.54318,251.67368 116.49248,250.05964 C 115.37937,249.20828 114.23443,248.3937 113.1992,247.44599 C 111.53556,245.71435 111.64533,246.03738 114.99226,244.45474 C 115.40694,244.64852 115.76753,244.90085 116.24898,244.8935 C 116.87401,245.08432 117.47656,245.26464 117.99223,245.70258 C 118.85185,246.24202 119.69935,246.8323 120.69117,247.10304 C 120.0057,247.66354 119.19609,249.05993 118.46771,248.55646 C 117.88286,248.34005 117.31963,248.12871 116.67357,248.15198 C 115.68382,248.06135 114.68926,247.93899 113.69492,248.03789 C 111.11179,248.45126 114.33029,246.09561 115.04287,247.2056 C 116.04505,248.04785 117.10284,248.81911 118.25148,249.45754 C 118.85836,249.80098 119.49051,250.11762 119.98663,250.61897 C 120.51637,250.98674 121.03463,251.3809 121.6591,251.59232 C 123.31281,251.95149 124.45617,251.07821 120.50483,253.12151 C 121.83054,252.22178 123.05508,251.07804 124.62488,250.57139 C 125.08668,250.72312 125.37295,250.56122 125.48062,251.20715 C 124.00448,252.20176 122.98604,254.06312 121.82377,252.75364 C 121.82041,252.23758 121.77882,251.71681 121.95912,251.21514 C 123.20105,250.37577 124.32701,248.61018 125.84124,249.39308 C 127.09171,251.11903 126.42045,250.92032 123.53941,252.40249 C 122.93393,252.42292 122.32761,252.44873 121.71806,252.3036 C 121.21234,252.26486 120.69569,252.26592 120.21595,252.08009 C 119.98909,251.91052 119.69343,251.80677 119.53326,251.55002 C 118.98489,251.27069 118.43681,250.94328 117.82558,250.78805 C 115.20883,250.6215 118.8452,250.08155 119.16221,249.37634 C 119.76509,249.8345 120.41371,250.24818 120.9817,250.75925 C 122.89093,252.65813 122.29618,252.9195 118.98899,253.72694 C 117.06292,252.44485 115.13368,251.15871 113.10762,250.03834 C 112.24617,249.59449 111.36199,249.21669 110.49684,248.78456 C 109.79545,248.43415 109.05606,248.14526 108.42182,247.67644 C 107.64997,247.0626 106.89954,246.33806 105.92121,246.09887 C 109.04828,244.17979 107.84373,243.84692 108.64124,245.24567 C 109.10548,245.77142 109.61193,246.22771 109.70017,246.96226 C 106.61963,248.87732 106.75241,249.07023 103.83327,247.99214 C 101.32171,247.4443 104.74973,245.8735 105.41585,246.36504 C 105.91356,246.78032 106.39422,247.22217 106.95676,247.55024 C 106.23732,248.12142 105.78646,249.20246 104.88222,249.36431 C 105.00617,249.27167 107.00605,246.40102 108.16565,247.71782 C 108.72558,248.25828 109.33206,248.76921 109.67053,249.48861 C 108.67814,250.23117 107.25061,252.03429 105.39039,251.48145 C 106.09992,251.00625 107.46223,249.53024 107.69042,250.35315 C 106.90406,251.07667 104.43779,253.11508 105.31776,252.50887 C 106.20335,251.89879 107.09475,251.29719 107.98324,250.69135 C 108.91278,251.47344 109.87753,252.23322 110.80441,253.02597 C 113.26237,255.14424 114.49805,255.53536 110.47888,256.80911 C 108.51677,254.41588 106.75532,254.35738 110.63632,252.25186 C 110.89831,252.37319 111.12811,252.67788 111.47315,252.63942 C 110.93526,253.01718 109.63585,254.3594 109.83157,253.73191 C 109.85798,252.95889 109.92703,252.231 109.42904,251.53853 C 108.4108,250.97597 107.22682,250.94614 106.08531,250.63471 C 103.625,249.93802 101.06436,250.08004 105.37266,247.99314 C 105.85961,249.07018 106.41117,250.20166 106.87706,251.31834 C 105.18459,253.13541 104.59681,255.13967 102.75669,252.29021 C 100.88444,249.89727 99.934584,249.83865 103.75472,247.91808 C 104.55444,248.13249 105.35663,248.36309 106.16315,248.5636 C 106.90716,248.68464 107.69428,248.704 108.31143,249.17465 C 108.76832,249.6827 109.12022,250.19391 109.78106,250.51008 C 111.60606,252.16888 111.9152,252.12412 108.27629,253.57787 C 106.90815,252.06936 108.34036,251.82747 110.72939,250.93358 C 112.75631,251.66833 113.77552,251.36043 109.98697,253.2612 C 109.79449,252.69213 109.25724,251.57393 108.9619,250.80218 C 108.67864,249.00531 110.362,247.02968 112.14148,248.36346 C 112.83722,250.71034 112.1321,250.87983 109.36696,252.20648 C 108.87976,251.59271 108.41632,251.00748 108.38816,250.12122 C 109.21008,249.53863 110.79209,247.17232 112.18264,248.51624 C 111.47177,248.96783 109.50191,250.22143 109.83399,249.44749 C 110.13389,248.76827 110.44118,248.09682 110.84579,247.46667 C 111.29212,246.52251 111.70941,245.57 112.09726,244.60014 C 114.81318,242.89282 115.00198,242.2404 117.59686,242.96306 C 119.097,243.51998 120.72201,244.06648 121.50794,245.58407 C 121.62676,248.50159 117.55056,250.23841 115.72656,251.89821 C 113.74739,253.28962 104.54172,258.55986 111.6243,253.79965 C 112.44866,253.57733 113.2594,253.35269 114.13534,253.44685 C 115.89174,253.41722 118.30296,252.59674 113.62513,254.81345 C 113.84063,254.4278 114.14415,253.93135 114.26966,253.38774 C 115.78388,251.52437 117.19646,250.28109 119.56662,249.24521 C 120.49858,248.86422 121.32987,248.53426 122.34404,248.87794 C 122.96449,249.6523 123.0798,249.8445 122.10233,250.60659 C 120.12277,251.8933 118.11083,253.58027 115.75696,253.86977 C 115.53995,253.20219 115.36112,252.97384 116.02718,252.29874 C 118.10981,251.11872 118.59408,250.11653 120.43006,250.74202 C 121.54194,252.2088 120.81079,252.03659 117.90287,253.14124 C 117.87348,252.63243 117.22819,252.6531 118.08284,252.15845 C 119.67654,251.23611 120.7809,250.14256 122.32555,250.14088 C 122.06928,250.32835 120.08419,252.25429 118.6807,252.4971 C 119.56789,251.72768 120.49294,250.36185 121.64446,250.59232 C 122.21578,250.94193 122.70962,251.17579 122.90616,251.88676 C 122.52345,252.80123 122.02761,253.36701 121.03624,253.89658 C 120.67601,254.16702 118.78196,255.15346 119.67545,255.30909 C 120.65105,255.3712 121.48488,255.29677 121.70268,256.30109 C 120.09684,257.30475 118.30161,259.32991 116.37281,258.45238 C 116.05091,257.2425 116.23482,256.22181 116.86336,255.07758 C 118.11912,254.25607 119.93861,251.67687 121.10378,253.53791 C 121.26604,254.37757 121.47422,255.20557 121.26327,256.07371 C 121.03563,257.02917 120.70047,257.91512 121.20431,258.83787 C 123.55905,260.19047 125.02969,258.81694 122.06967,260.14794 C 122.13726,257.385 119.58133,255.24118 117.78742,253.45126 C 114.4234,250.86155 109.2218,250.91298 113.11308,248.81903 C 112.83452,249.69545 113.11817,250.14574 114.20218,251.10212 C 115.34726,252.28253 116.56324,253.44311 118.05597,254.17013 C 115.11091,256.25326 116.23067,256.28639 113.83582,255.37724 C 112.74666,255.01299 111.64821,254.6733 110.56601,254.29077 L 113.29893,252.49261 z "
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2025" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_11.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_11.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_11.svg	(revision 38262)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       id="g2276">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(29.87327,68.56076)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-153.11321,-216.64025)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <g
+         transform="matrix(6.566357,0,0,6.602753,-2189.5614,-3285.1837)"
+         id="g1993">
+        <path
+           d="M 360.11698,554.78432 L 360.11698,530.68235 L 357.48858,533.04951 L 362.491,515.61862 L 367.15429,532.40393 L 364.86503,530.68235 L 364.86503,554.78432 L 360.11698,554.78432 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.51286328px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1989" />
+        <path
+           d="M 360.60824,550.26871 L 375.72776,550.26871 L 374.24282,547.55972 L 385.17747,552.71553 L 374.6478,557.52181 L 375.72776,555.16236 L 360.60824,555.16236 L 360.60824,550.26871 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.21646953px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1991" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_12.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_12.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_12.svg	(revision 38262)
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <rect
+       width="2.1465743"
+       height="0"
+       x="-672.29156"
+       y="401.89316"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1904" />
+    <g
+       id="g2318">
+      <path
+         d="M 144.63022,264.05769 L 212.21011,91.515571 L 278.94537,264.05769 L 211.3653,436.59979 L 144.63022,264.05769 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:15.19420242px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3529" />
+      <path
+         d="M 495 441.29074 A 62.5 32.5 0 1 1  370,441.29074 A 62.5 32.5 0 1 1  495 441.29074 z"
+         transform="matrix(0.98806,0,0,1.2714034,-214.42615,-299.72441)"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5.22312641;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path3531" />
+      <path
+         d="M 206.82872,312.78865 L 209.45683,408.64233 L 179.88855,307.65363 C 188.60997,308.86183 186.37506,311.20474 206.82872,312.78865 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.3971262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path4418" />
+      <path
+         d="M 215.43536,212.71282 L 212.3496,114.27707 L 242.61824,218.19018 C 233.89682,216.98197 235.88901,214.29673 215.43536,212.71282 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.46815443;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path5305" />
+      <path
+         d="M 169.07202,240.61131 C 169.29219,240.21848 169.50278,240.212 170.00894,239.92591 C 170.25388,239.83239 170.47608,239.89173 170.72095,239.93246 C 170.9907,240.0213 171.21608,240.18691 171.44976,240.33851 C 171.6675,240.5319 171.92875,240.54732 172.19986,240.596 C 172.49683,240.54399 172.74345,240.67487 173.00033,240.7445 C 173.13597,240.88574 173.22349,241.06024 173.33205,241.21724 C 173.40767,241.44499 173.60251,241.40379 173.77391,241.48417 C 174.03057,241.49284 174.26165,241.59581 174.49639,241.68414 C 174.70592,241.75024 174.86058,241.89104 175.033,242.01748 C 175.25891,242.17444 175.42134,242.06056 175.64194,242.03437 C 175.60479,241.99337 174.98997,242.50891 175.6625,241.88921 C 176.06511,241.52567 176.53465,241.35532 177.0335,241.21613 C 177.04865,241.20835 176.99923,241.22108 176.98403,241.22876 C 177.9522,240.62524 177.61269,240.70725 177.97038,241.14628 C 178.06553,241.34939 178.06531,241.57229 178.09541,241.789 C 178.11754,242.04213 178.10283,242.29558 178.09516,242.54808 C 178.04192,242.79942 178.02483,243.05529 177.99595,243.30967 C 177.97028,243.5561 177.98892,243.80391 177.9928,244.0495 C 178.08273,244.27273 178.24428,244.23617 178.44537,244.29044 C 178.69309,244.30688 178.94155,244.30076 179.18961,244.29966 C 179.44426,244.29738 179.69891,244.29692 179.95357,244.29618 C 180.38508,244.35972 181.00703,243.97652 179.98793,244.5444 C 180.20686,244.39634 180.28767,244.16627 180.39614,243.94096 C 180.47264,243.69665 180.46969,243.44097 180.48118,243.18829 C 180.46268,242.94198 180.49758,242.69841 180.51304,242.45503 C 180.56205,242.19303 180.76829,242.08076 180.94238,241.9127 C 181.1931,241.78287 181.37765,241.57581 181.57407,241.38029 C 181.88793,240.96797 182.44944,240.94945 182.84241,240.78967 C 183.03328,240.83435 183.18189,240.96131 183.34727,241.05208 C 183.40672,241.25669 183.60333,241.31693 183.72718,241.4387 C 184.05718,241.50617 184.32998,241.695 184.60665,241.87608 C 184.94382,242.05995 185.04938,242.35167 185.20245,242.67789 C 185.35607,243.01418 185.38802,243.37724 185.43698,243.73755 C 185.39541,244.1036 185.52212,244.2603 185.7194,244.51589 C 186.03387,244.65846 186.38453,244.66563 186.72287,244.69978 C 187.1173,244.71026 187.30479,244.92867 187.57022,245.17126 C 187.6912,245.4316 187.83172,245.69186 187.95265,245.94539 C 188.04834,245.94967 187.85979,246.12964 187.77292,246.17007 C 188.04373,245.76602 188.56204,245.65999 188.96404,245.46325 C 189.56933,245.11895 188.2301,246.0358 189.03654,245.34124 C 189.43145,244.95369 189.93059,244.72975 190.44926,244.58068 C 190.76342,244.47139 190.90095,244.64285 191.13949,244.75608 C 191.31795,244.9964 191.21735,245.19247 191.19933,245.44868 C 191.10851,245.65945 190.98846,245.85771 190.87284,246.05498 C 190.83322,246.2556 190.71685,246.41871 190.6245,246.59398 C 190.21349,247.04624 189.85906,247.07867 189.36226,247.14628 C 189.08374,247.15644 188.805,247.15302 188.52637,247.15238 C 188.26911,247.15103 188.01185,247.15074 187.7546,247.15029 C 187.50134,247.15004 187.24808,247.1501 186.99481,247.15007 C 186.73983,247.1196 186.49976,247.20032 186.25631,247.25092 C 186.04455,247.29912 185.85376,247.3964 185.65422,247.4749 C 186.65813,246.75904 185.96213,247.41901 185.7599,247.71741 C 185.61534,247.89478 185.5243,248.10374 185.4183,248.30415 C 185.31272,248.50077 185.15686,248.65887 185.01429,248.82716 C 184.83146,249.02534 184.792,249.27111 184.72829,249.52027 C 184.72422,249.76056 184.53815,249.86355 184.41874,250.02915 C 183.85846,250.44176 183.01084,250.8746 183.96476,250.33878 C 183.80968,250.43155 183.68592,250.56387 183.54928,250.6795 C 183.17255,251.0417 182.77696,251.13837 182.31899,251.22809 C 182.26142,251.18986 182.45826,251.2409 182.5262,251.22846 C 182.41749,251.38901 182.46913,251.59354 182.4579,251.74991 C 182.6313,251.7972 182.81824,251.79868 182.99716,251.81279 C 183.29978,251.88183 183.34178,252.10229 183.48838,252.32119 C 183.5594,252.56821 183.55199,252.82558 183.55957,253.0797 C 183.57403,253.39294 183.52129,253.70208 183.48106,254.0115 C 183.50081,254.30957 183.34064,254.52157 183.22198,254.76803 C 183.05866,254.98615 182.88766,255.19786 182.716,255.40923 C 182.57701,255.60545 182.42612,255.79257 182.28038,255.98341 C 182.07946,256.12411 182.04288,256.33445 181.95047,256.53744 C 181.88374,256.80152 181.93016,257.06072 181.95913,257.32504 C 181.95645,257.57738 182.08775,257.77296 182.18515,257.9904 C 182.27761,258.2317 182.47417,258.38983 182.63677,258.57477 C 182.83144,258.7336 183.05102,258.86047 183.26092,258.99756 C 183.4813,259.18126 183.47098,259.42308 183.53087,259.67116 C 183.42863,260.31422 182.70076,260.06323 182.33335,260.17087 C 182.08647,260.1672 181.89818,260.02758 181.68822,259.92516 C 181.51489,259.7737 181.35762,259.6052 181.19386,259.44386 C 181.04027,259.29391 180.91869,259.1125 180.78747,258.94237 C 180.68739,258.77653 180.57853,258.61614 180.47162,258.45528 C 180.42431,258.27309 180.25027,258.2042 180.14413,258.09427 C 179.9813,258.03653 179.83472,257.94326 179.68084,257.86978 C 179.51691,257.73684 179.31479,257.74116 179.12036,257.70218 C 178.91043,257.74147 178.69818,257.76418 178.48689,257.79365 C 178.55835,257.65388 177.90715,258.02968 178.04554,257.95598 C 178.22928,257.85514 178.41304,257.7543 178.59678,257.65346 C 178.56799,257.67804 178.5392,257.70262 178.51041,257.7272 C 178.13532,258.06949 176.61891,258.84 177.93339,258.10523 C 177.58063,258.41875 177.12172,258.57891 176.71667,258.78524 C 176.48349,258.85339 176.25033,258.92026 176.01628,258.98327 C 176.09553,258.87017 175.51738,259.21795 175.63748,259.15001 C 175.81857,259.04734 175.99967,258.94467 176.18077,258.842 C 176.14573,258.86381 176.11069,258.88562 176.07565,258.90743 C 175.86103,259.07166 175.68125,259.27353 175.49453,259.46718 C 175.16469,259.87501 174.61825,259.91151 174.19315,260.09371 C 173.9597,260.05801 173.7448,259.92679 173.53416,259.81987 C 173.58275,259.68222 172.97352,259.94624 173.10049,259.87464 C 173.28572,259.77238 173.47094,259.67012 173.65616,259.56786 C 173.62724,259.59014 173.59832,259.61242 173.5694,259.63469 C 173.38211,259.78241 173.35239,260.00155 173.27477,260.21199 C 173.21144,260.47114 173.1682,260.73477 173.11521,260.99638 C 173.05262,261.32436 173.05277,261.65849 173.04045,261.99072 C 173.01247,262.26778 173.05299,262.54179 173.07107,262.81531 C 173.13026,263.04061 173.13473,263.27314 173.1565,263.50322 C 173.16762,263.75409 173.16494,264.00525 173.16637,264.25629 C 173.16618,264.51042 173.1659,264.76456 173.16566,265.0187 C 173.15424,265.27857 173.23294,265.52746 173.2883,265.7776 C 173.38041,266.04581 173.542,266.02901 173.76486,266.11913 C 173.81585,266.11557 173.7471,266.23675 173.70098,266.2588 C 173.88752,266.10392 173.96014,265.87476 174.06408,265.66453 C 174.15854,265.42893 174.22783,265.18141 174.29862,264.93938 C 175.02307,264.31599 174.96591,264.32107 175.36176,264.72958 C 175.45032,265.02065 175.43707,265.32647 175.44677,265.62696 C 175.44956,265.92877 175.44798,266.23059 175.44728,266.53241 C 175.41814,266.81095 175.52722,267.04218 175.62348,267.29211 C 175.70692,267.54596 175.89388,267.60522 176.08011,267.73764 C 176.31805,267.72329 176.50062,267.84527 176.70426,267.91656 C 176.9072,268.116 176.91004,268.36286 176.95279,268.62641 C 176.97336,268.90261 176.9691,269.17973 176.96962,269.45645 C 176.92412,269.69061 177.01459,269.88421 177.07289,270.09781 C 177.17821,270.2985 177.17701,270.52247 177.2092,270.73985 C 177.18147,271.0047 177.25184,271.25753 177.28877,271.51217 C 177.36357,271.75158 177.56153,271.85193 177.72456,272.00446 C 177.92166,272.04797 178.12626,272.01114 178.32567,271.99737 C 178.58862,271.97852 178.85224,271.97963 179.11564,271.97655 C 179.5067,271.96432 179.89445,271.97814 180.28339,272.01532 C 180.57465,272.01406 180.81713,272.15075 181.07697,272.2551 C 181.34181,272.35603 181.57144,272.51343 181.80858,272.66196 C 182.06637,272.86354 182.3016,273.09305 182.54042,273.31511 C 182.79146,273.43682 183.05784,273.3872 183.32314,273.37384 C 183.58907,273.30996 183.86033,273.28659 184.13127,273.25877 C 184.60195,273.20184 185.04548,273.29365 185.49889,273.40502 C 185.95407,273.48336 186.24786,273.74298 186.55205,274.06345 C 186.81969,274.36528 186.90872,274.72515 187.00004,275.10524 C 187.11989,275.72045 187.1594,276.34601 187.2009,276.97008 C 187.20317,277.37129 187.2398,277.76718 187.28568,278.16486 C 187.30006,278.50182 187.43705,278.80665 187.54924,279.11814 C 187.66582,279.39709 187.69009,279.69428 187.72581,279.98997 C 187.74241,280.25281 187.73827,280.51627 187.73834,280.77945 C 187.73608,281.09628 187.7362,281.4131 187.73608,281.72992 C 187.73592,282.06249 187.7352,282.39506 187.73452,282.72763 C 187.77246,283.08617 187.70806,283.42497 187.64645,283.77277 C 187.57575,284.0127 187.42285,284.20672 187.28899,284.41247 C 187.1721,284.6219 187.10701,284.85476 187.02589,285.07921 C 186.95612,285.2971 186.8519,285.49976 186.75935,285.70754 C 186.67015,285.91464 186.53352,286.09628 186.40909,286.28307 C 186.27304,286.48894 186.17607,286.71679 186.07015,286.93871 C 186.0086,287.17365 185.93295,287.40349 185.85718,287.63417 C 185.77488,287.89777 185.55646,288.02187 185.36664,288.19444 C 185.158,288.29891 185.03406,288.48601 184.88065,288.64541 C 184.82051,288.90116 184.65551,289.09472 184.53057,289.30802 C 182.59253,290.45245 184.65077,289.19489 184.02779,289.7275 C 183.93208,289.94916 183.94287,290.19002 183.93147,290.42596 C 183.92818,290.74328 183.93122,291.06061 183.93297,291.37794 C 184.00185,291.64868 183.87209,291.81186 183.78335,292.02424 C 183.02867,292.4871 183.10935,292.46387 182.62676,292.09474 C 182.44006,291.94135 182.26202,291.77785 182.08333,291.6166 C 181.85922,291.47454 181.85042,291.26041 181.76979,291.0389 C 181.73623,290.79183 181.74592,290.54211 181.7428,290.29359 C 181.71269,289.98436 181.85195,289.74296 181.97857,289.47726 C 182.14263,289.26343 182.1656,289.00764 182.23073,288.75933 C 182.26048,288.50935 182.25284,288.25736 182.25623,288.00627 C 182.25538,287.75228 182.25459,287.4983 182.25389,287.24431 C 182.25302,286.97815 182.25368,286.712 182.25408,286.44584 C 182.26175,286.16537 182.24973,285.88498 182.24038,285.60548 C 182.18145,285.35745 182.08806,285.12035 182.00723,284.8797 C 181.95753,284.66252 181.76408,284.62116 181.62484,284.49711 C 181.47219,284.38351 181.29197,284.32751 181.12524,284.24195 C 180.94384,284.13329 180.81235,283.96417 180.66612,283.81535 C 180.51949,283.69507 180.42019,283.53554 180.30091,283.39213 C 180.20328,283.27843 180.11703,283.16115 180.02587,283.04664 C 179.93953,282.84976 179.81073,282.67906 179.6947,282.50108 C 179.56126,282.26522 179.34266,282.12565 179.14256,281.95765 C 178.94594,281.82962 178.71912,281.8428 178.49766,281.8139 C 178.249,281.85604 177.99928,281.8867 177.74901,281.9166 C 177.49521,281.93828 177.39618,281.79297 177.21935,281.66066 C 177.0805,281.53884 176.98832,281.38021 176.87681,281.23646 C 176.77904,281.06131 176.67291,280.8914 176.56611,280.72168 C 176.51557,280.49996 176.39282,280.31607 176.29003,280.11929 C 176.13395,279.92659 175.9402,279.76905 175.75604,279.60443 C 175.54251,279.39529 175.47762,279.11562 175.3808,278.84524 C 175.31338,278.56489 175.29729,278.27575 175.27249,277.98967 C 175.22632,277.66993 175.17452,277.35186 175.11801,277.03374 C 175.05824,276.64858 175.04846,276.25885 175.03702,275.87007 C 175.03025,275.55858 175.03088,275.24702 175.03035,274.93548 C 175.01013,274.65759 175.10066,274.39932 175.16916,274.13681 C 175.29552,273.87532 175.45071,273.62901 175.59707,273.37848 C 175.73598,273.19211 175.81889,272.97737 175.91629,272.76878 C 176.02878,272.57735 175.99374,272.37318 176.00509,272.16907 C 175.96278,271.97479 175.89093,271.78566 175.82626,271.59689 C 175.74478,271.40754 175.6019,271.2631 175.474,271.10658 C 175.31109,270.99629 175.23238,270.81751 175.11889,270.67132 C 175.00759,270.29627 175.16888,270.00569 175.32056,269.66834 C 175.59609,269.43201 175.46629,269.12062 175.48775,268.91098 C 175.28087,268.83422 175.05745,268.8593 174.84134,268.85227 C 174.5853,268.85556 174.32926,268.85774 174.07322,268.8599 C 173.80811,268.89633 173.62894,268.74879 173.41038,268.63974 C 173.21554,268.51446 173.08043,268.32596 172.92536,268.1589 C 172.74872,267.97794 172.57564,267.79211 172.40227,267.60954 C 172.36378,267.36891 172.12284,267.4286 172.02341,267.36422 C 171.86026,267.39688 171.77159,267.22279 171.65448,267.15703 C 171.57262,266.9733 171.45565,266.81032 171.35272,266.63912 C 171.22721,266.48663 171.07618,266.35023 170.92955,266.21731 C 170.7709,266.03982 170.66775,265.82596 170.54396,265.62583 C 170.40712,265.37215 170.39393,265.08733 170.35776,264.80838 C 170.33887,264.54272 170.34196,264.27629 170.34086,264.01018 C 170.3714,263.75702 170.29929,263.5164 170.25601,263.27215 C 170.14264,263.05203 169.96094,263.08066 169.75276,263.02634 C 169.49766,263.05017 169.3843,262.89776 169.20593,262.77009 C 169.06914,262.6203 169.00816,262.42394 168.92852,262.24167 C 168.74394,262.09957 168.70524,261.89251 168.61583,261.69758 C 168.56373,261.45635 168.57448,261.209 168.56645,260.96416 C 168.58859,260.73213 168.53262,260.50971 168.49431,260.28337 C 168.45493,260.01068 168.45348,259.73495 168.44474,259.46021 C 168.44203,259.16433 168.44242,258.86845 168.44219,258.57256 C 168.47296,258.34074 168.3094,258.2073 168.22339,258.02793 C 168.05296,257.8819 167.86619,257.75993 167.68717,257.62609 C 167.48884,257.51589 167.33087,257.35199 167.16298,257.2034 C 167.00394,257.05086 166.85013,256.89318 166.69243,256.73922 C 166.53198,256.58528 166.48099,256.37191 166.40127,256.17224 C 166.34859,256.05271 166.32086,255.81741 166.30372,255.74175 C 168.29208,254.08334 166.48563,255.72799 167.13075,255.67916 C 167.19329,255.91157 167.20164,256.15428 167.22135,256.39298 C 167.27479,256.67859 167.29694,256.96763 167.32243,257.25645 C 167.33747,257.51618 167.33615,257.77641 167.33788,258.03645 C 167.37769,258.25341 167.40595,258.47232 167.43964,258.69019 C 167.4626,258.94565 167.46111,259.20233 167.46447,259.45855 C 167.3827,260.2587 166.65643,259.67299 166.46594,259.69341 C 166.30291,259.51147 166.18933,259.29782 166.06236,259.09133 C 165.97277,258.88604 165.86925,258.6883 165.77107,258.48738 C 165.63644,258.26689 165.6049,258.02011 165.55616,257.77363 C 165.51958,257.48655 165.53403,257.19786 165.53978,256.91058 C 165.58848,256.65357 165.61292,256.39399 165.63895,256.13419 C 165.6274,255.87153 165.67724,255.6207 165.72377,255.36559 C 165.82093,255.163 165.68582,255.05802 165.63138,254.887 C 165.53073,254.71057 165.39354,254.55996 165.26847,254.40094 C 165.12521,254.25382 164.98079,254.10827 164.83452,253.96434 C 164.72599,253.80827 164.60913,253.65911 164.49445,253.50749 C 164.3535,253.29812 164.24146,253.07195 164.12229,252.85 C 163.96532,252.59451 163.94325,252.30863 163.89965,252.02122 C 163.87619,251.73952 163.88024,251.45672 163.87908,251.17436 C 163.86629,250.74222 163.90041,250.31314 163.9396,249.88339 C 163.9774,249.55795 163.98942,249.23083 164.00342,248.90386 C 163.96179,248.60799 164.05723,248.36606 164.1463,248.09668 C 164.26055,247.85612 164.47432,247.71372 164.66774,247.54553 C 164.84306,247.35669 165.0321,247.1853 165.22533,247.01474 C 165.41114,246.88021 165.54707,246.69821 165.69937,246.53205 C 165.83705,246.36688 165.867,246.156 165.92795,245.95654 C 166.00339,245.71171 166.06149,245.46386 166.11826,245.21454 C 166.1144,244.98028 166.23276,244.79343 166.31767,244.58845 C 166.48453,244.38244 166.61553,244.15614 166.74815,243.92782 C 166.89431,243.72179 166.99145,243.49049 167.10637,243.26973 C 167.17709,243.03612 167.16501,242.79175 167.17763,242.55133 C 167.23825,242.31558 167.13178,242.12202 167.0793,241.92296 C 166.74062,241.91028 166.13444,242.32084 167.19807,241.72387 C 166.84284,242.03582 166.3348,242.17712 165.95891,242.34471 C 165.73031,242.30195 165.62583,242.11577 165.48013,241.95448 C 165.36963,241.78566 165.19404,241.69207 165.04727,241.56383 C 164.87708,241.48498 164.67345,241.47444 164.4925,241.45745 C 164.28519,241.34311 164.5181,241.15545 164.52798,241.03892 C 164.78527,240.65996 165.28044,240.56854 165.6578,240.38456 C 165.89197,240.32408 166.1115,240.39169 166.34089,240.42006 C 166.53898,240.38576 166.74334,240.33183 166.94094,240.28058 C 167.2122,240.25258 167.48578,240.23452 167.75648,240.21373 C 168.01639,240.13281 168.28452,240.14492 168.55069,240.13663 C 168.83546,240.22113 169.12266,240.26432 169.41467,240.30428 C 169.70387,240.40437 169.63158,240.54481 169.69054,240.77855 L 169.01212,241.10533 C 168.96846,241.02922 169.07892,240.684 168.80203,240.73902 C 168.51353,240.69316 168.22914,240.6403 167.94393,240.57448 C 167.67958,240.59069 167.41449,240.59393 167.1556,240.66463 C 166.8844,240.68141 166.61132,240.6921 166.34218,240.73332 C 166.14044,240.78745 165.93368,240.86521 165.72416,240.8508 C 165.50085,240.83069 165.2842,240.77111 165.05866,240.8393 C 165.10883,240.80109 165.2642,240.69661 165.22145,240.743 C 165.19321,240.82242 164.9987,240.94319 165.11784,241.03439 C 165.31176,241.05343 165.51197,241.04292 165.68201,241.15831 C 165.83796,241.28751 166.00611,241.39825 166.12508,241.5676 C 166.2632,241.71523 166.3511,241.88357 166.56972,241.90454 C 166.53911,241.92972 166.46692,242.0239 166.4983,241.99968 C 167.06972,241.66104 167.1975,241.44293 167.72497,241.53456 C 167.78839,241.75459 167.91358,241.95075 167.84665,242.21093 C 167.83631,242.45761 167.84765,242.70743 167.78576,242.94905 C 167.67649,243.17742 167.59481,243.41679 167.43132,243.61899 C 167.30378,243.85063 167.18266,244.08365 167.00494,244.28268 C 166.91318,244.47953 166.78672,244.65313 166.79216,244.88451 C 166.73886,245.13694 166.68395,245.38706 166.60598,245.63343 C 166.54878,245.83928 166.51499,246.05727 166.39126,246.23565 C 166.23983,246.40685 166.11233,246.59803 165.91855,246.73004 C 165.7235,246.89802 165.53009,247.06523 165.36471,247.26293 C 165.16971,247.42264 164.95466,247.564 164.82939,247.79041 C 164.72629,248.04923 164.62931,248.27142 164.67213,248.56491 C 164.65769,248.89445 164.64548,249.22419 164.6048,249.55196 C 164.56329,249.97872 164.52607,250.40436 164.54621,250.83382 C 164.54719,251.11406 164.54359,251.39466 164.56328,251.67443 C 164.60286,251.95262 164.62087,252.22892 164.77227,252.47641 C 164.89031,252.69465 165.00074,252.91742 165.14121,253.12259 C 165.25422,253.27191 165.37004,253.41853 165.47733,253.57205 C 165.62459,253.71785 165.77159,253.86376 165.91386,254.01459 C 166.04038,254.17534 166.17885,254.32785 166.28118,254.506 C 166.34582,254.6955 166.49589,254.81783 166.40123,255.04355 C 166.36026,255.29357 166.28431,255.53764 166.30973,255.79764 C 166.28553,256.05856 166.2652,256.3197 166.21121,256.57691 C 166.20181,256.85859 166.18327,257.14225 166.21953,257.4246 C 166.27301,257.66142 166.28673,257.90638 166.42591,258.11757 C 166.52272,258.31627 166.625,258.51187 166.71341,258.71485 C 166.8359,258.91512 166.94332,259.12399 167.10495,259.29746 C 166.99671,259.46192 166.95116,259.921 166.79555,259.80061 C 166.79301,259.5466 166.79581,259.29215 166.77391,259.03877 C 166.74068,258.81824 166.71495,258.5966 166.66952,258.37786 C 166.66827,258.11907 166.66979,257.86011 166.65676,257.60155 C 166.63333,257.31411 166.61434,257.02624 166.55846,256.74251 C 166.53774,256.50959 166.52619,256.27274 166.47198,256.04445 C 166.87312,255.45965 164.53401,256.35655 166.95186,255.34487 C 166.98663,255.49508 167.0089,255.6561 167.05851,255.80553 C 167.13307,255.99581 167.18009,256.19852 167.33253,256.34457 C 167.49023,256.4993 167.64517,256.65652 167.80353,256.81051 C 167.97017,256.95489 168.12769,257.11256 168.32166,257.22219 C 168.50456,257.35944 168.69611,257.48491 168.86718,257.63798 C 168.97909,257.83167 169.12146,257.98362 169.10977,258.23179 C 169.10934,258.5272 169.10768,258.82264 169.11191,259.11804 C 169.11945,259.38904 169.11939,259.66108 169.15806,259.93008 C 169.1984,260.16 169.25605,260.38663 169.23472,260.62237 C 169.24134,260.86152 169.23091,261.10283 169.27684,261.33911 C 169.36263,261.52949 169.40229,261.72549 169.5802,261.86635 C 169.65821,262.04423 169.71978,262.2356 169.85201,262.38227 C 170.02053,262.46791 170.13356,262.63631 170.36579,262.59148 C 170.59714,262.67026 170.79443,262.65405 170.91482,262.91084 C 170.96228,263.16149 171.03984,263.40848 171.00923,263.66902 C 171.00969,263.93341 171.00635,264.19806 171.02243,264.46212 C 171.05468,264.73145 171.0635,265.00646 171.19535,265.25148 C 171.31615,265.44681 171.41628,265.65622 171.57314,265.8279 C 171.72129,265.96143 171.87729,266.0945 171.99872,266.25331 C 172.1003,266.42164 172.21722,266.58152 172.29738,266.76212 C 172.40104,266.80923 172.48458,266.97008 172.62836,266.91256 C 172.76941,267.00472 172.97568,266.99794 173.04843,267.22495 C 173.22089,267.40621 173.39376,267.59015 173.56813,267.77095 C 173.71937,267.93189 173.85136,268.1144 174.0429,268.232 C 174.25505,268.32862 174.42628,268.46023 174.67979,268.41765 C 174.93598,268.4153 175.19216,268.41255 175.44834,268.41043 C 175.67995,268.42373 175.91941,268.39154 176.12873,268.51372 C 176.17243,268.82211 176.27735,269.03293 175.99566,269.36291 C 175.84681,269.67827 175.68675,269.94482 175.77406,270.30004 C 175.88412,270.43944 175.96532,270.60932 176.119,270.71794 C 176.25135,270.88247 176.39932,271.03459 176.48387,271.23258 C 176.55061,271.42557 176.62429,271.61889 176.67035,271.81704 C 176.66588,272.03397 176.71105,272.2481 176.60037,272.45552 C 176.50531,272.66715 176.42476,272.88662 176.28081,273.07181 C 176.13711,273.32168 175.98817,273.56831 175.84742,273.81998 C 175.77587,274.07408 175.68085,274.32357 175.69819,274.59462 C 175.69748,274.90628 175.69559,275.21797 175.70018,275.52961 C 175.7105,275.91498 175.71816,276.30144 175.77707,276.68329 C 175.83492,277.00141 175.88733,277.31965 175.93552,277.6393 C 175.9602,277.92227 175.9767,278.20866 176.038,278.48712 C 176.12941,278.74308 176.18739,279.01018 176.39227,279.2061 C 176.57972,279.37715 176.78019,279.5374 176.93801,279.7377 C 177.04225,279.93687 177.16967,280.12183 177.21816,280.34712 C 177.32361,280.51381 177.42953,280.6801 177.5252,280.8527 C 177.63547,280.99385 177.72707,281.14974 177.8637,281.26986 C 178.02889,281.35563 178.11905,281.53181 178.35155,281.46881 C 178.60332,281.43591 178.85473,281.39413 179.10777,281.37559 C 179.33953,281.41418 179.5762,281.40636 179.77661,281.55393 C 179.97827,281.72937 180.2008,281.87695 180.33783,282.11688 C 180.45904,282.29921 180.59242,282.47436 180.68379,282.67568 C 180.77022,282.78385 180.86277,282.893 180.9484,283.00684 C 181.0668,283.14835 181.1668,283.30511 181.3103,283.42565 C 181.45016,283.56685 181.5746,283.73016 181.75293,283.82565 C 181.92347,283.90914 182.09949,283.97714 182.25669,284.08689 C 182.4198,284.21805 182.59247,284.29051 182.66337,284.5131 C 182.74583,284.76012 182.83902,285.00382 182.90444,285.25685 C 182.91595,285.53876 182.93102,285.8219 182.92105,286.10529 C 182.92158,286.37115 182.92214,286.63702 182.92227,286.90288 C 182.92294,287.1569 182.9236,287.41092 182.92468,287.66494 C 182.92351,287.91901 182.92821,288.1737 182.90377,288.42696 C 182.85398,288.68831 182.82094,288.94662 182.66318,289.17247 C 182.52974,289.42517 182.38519,289.65154 182.41133,289.95244 C 182.41362,290.19696 182.40464,290.44243 182.43336,290.68588 C 182.50526,290.89364 182.50722,291.08358 182.71837,291.21522 C 182.89864,291.37827 183.0764,291.54453 183.26558,291.69819 C 183.694,292.00121 183.87439,291.90535 183.07946,292.29674 C 183.15492,292.12231 183.37713,292.0075 183.26638,291.71862 C 183.26537,291.40099 183.26373,291.08336 183.26342,290.76573 C 183.27167,290.52102 183.26118,290.27221 183.34222,290.03707 C 183.86915,289.64151 184.63303,289.02912 183.83406,289.59055 C 183.97353,289.38731 184.15805,289.2251 184.19435,288.94916 C 184.34337,288.77696 184.44452,288.57403 184.66965,288.4735 C 184.86167,288.31506 185.07904,288.19653 185.17765,287.95199 C 185.25328,287.7206 185.3402,287.49375 185.38785,287.25397 C 185.49237,287.02861 185.5876,286.79699 185.72273,286.58734 C 185.84661,286.40235 185.98027,286.21828 186.07409,286.01683 C 186.16995,285.81179 186.27849,285.61374 186.34416,285.395 C 186.42683,285.16798 186.49897,284.93518 186.60146,284.71561 C 186.73704,284.51589 186.88285,284.32158 186.97141,284.09486 C 187.04167,283.75235 187.11053,283.42253 187.07025,283.06679 C 187.06962,282.73462 187.06879,282.40245 187.06928,282.07028 C 187.07012,281.75354 187.07101,281.4368 187.07089,281.12007 C 187.07052,280.85868 187.07358,280.59709 187.06041,280.33595 C 187.02881,280.04648 187.00893,279.75554 186.89634,279.48208 C 186.78176,279.16579 186.64085,278.85569 186.62434,278.51369 C 186.57817,278.11275 186.54085,277.71398 186.54539,277.30931 C 186.50904,276.68832 186.47339,276.0655 186.3462,275.45481 C 186.25704,275.0886 186.17054,274.73991 185.91336,274.44859 C 185.60228,274.15814 185.34088,273.88793 184.88878,273.82567 C 184.43687,273.72054 183.99486,273.64089 183.52804,273.70533 C 183.25845,273.73665 182.98922,273.76677 182.72302,273.8226 C 182.43977,273.82766 182.16306,273.86893 181.90663,273.71473 C 181.66987,273.49096 181.43723,273.25933 181.1764,273.06244 C 180.94079,272.92085 180.71139,272.77079 180.45111,272.67244 C 180.1972,272.57344 179.96044,272.4436 179.67644,272.44746 C 179.28831,272.41544 178.90112,272.40476 178.51135,272.4173 C 178.24783,272.42247 177.98404,272.42359 177.72108,272.44413 C 177.51002,272.45401 177.2967,272.49982 177.09488,272.41469 C 176.92287,272.247 176.7141,272.12798 176.63108,271.87685 C 176.59047,271.61609 176.51198,271.35868 176.54264,271.08628 C 176.51396,270.87718 176.51765,270.66197 176.41748,270.46866 C 176.35375,270.24493 176.25408,270.04333 176.30138,269.79733 C 176.30166,269.52262 176.30639,269.24758 176.2887,268.97324 C 176.25244,268.73114 176.25774,268.50289 176.0699,268.3216 C 175.87114,268.26295 175.67484,268.17064 175.45611,268.1578 C 175.26403,268.00766 175.05804,267.92618 174.97104,267.66123 C 174.86908,267.40265 174.75217,267.16202 174.77934,266.87313 C 174.78095,266.57128 174.78348,266.26943 174.78192,265.96758 C 174.77298,265.67638 174.78544,265.38011 174.70587,265.09678 C 174.72041,265.07467 174.23641,264.24722 174.9842,264.62991 C 174.90979,264.86708 174.82345,265.11099 174.74596,265.35206 C 174.64512,265.56946 174.56818,265.80367 174.39821,265.97882 C 174.00668,266.219 173.6402,266.6501 173.14858,266.54967 C 172.91584,266.43492 172.7208,266.43088 172.62997,266.13666 C 172.57141,265.88077 172.48857,265.62592 172.49719,265.35994 C 172.49741,265.10583 172.49767,264.85173 172.49792,264.59762 C 172.49674,264.34779 172.49927,264.09786 172.48935,263.84815 C 172.46925,263.62121 172.46645,263.39185 172.40818,263.16965 C 172.38814,262.89072 172.34251,262.61202 172.37435,262.32894 C 172.38572,261.99365 172.3838,261.65627 172.44242,261.32474 C 172.49595,261.06119 172.53836,260.79608 172.59634,260.53364 C 172.66779,260.3155 172.70208,260.08273 172.87175,259.91475 C 173.35264,259.61781 173.62394,259.29054 174.15794,259.40181 C 174.36212,259.50314 174.56353,259.6395 174.79537,259.64463 C 174.79775,259.6818 174.7901,259.79124 174.80252,259.75614 C 174.98935,259.55918 175.17502,259.36222 175.37564,259.17857 C 175.77711,258.9413 176.1589,258.654 176.61005,258.52173 C 176.84478,258.45973 177.07993,258.39812 177.31227,258.32675 C 177.28635,258.34572 177.20933,258.40359 177.23439,258.3835 C 179.35301,257.10938 176.85479,258.66812 177.81417,258.00997 C 178.22977,257.7416 178.59124,257.40775 179.08998,257.34501 C 179.30323,257.31332 179.51783,257.27433 179.73306,257.26667 C 179.93541,257.31582 180.14532,257.32013 180.31507,257.46243 C 180.4668,257.53261 180.61472,257.61427 180.7716,257.67524 C 180.88871,257.80217 181.06561,257.88915 181.12423,258.07926 C 181.22906,258.23738 181.33691,258.39448 181.43436,258.5579 C 181.56374,258.72603 181.68353,258.90473 181.83618,259.05239 C 181.99513,259.20919 182.14661,259.37496 182.31969,259.51659 C 182.52436,259.61038 182.70906,259.73744 182.94671,259.73845 C 182.90325,259.82371 182.94466,260.05824 182.86072,260.01247 C 182.81228,259.78409 182.83351,259.56675 182.62628,259.39806 C 182.41395,259.26355 182.19175,259.13779 182.0007,258.97272 C 181.8252,258.78604 181.63974,258.61022 181.53487,258.36798 C 181.43332,258.14168 181.29502,257.93733 181.29708,257.6748 C 181.26293,257.40333 181.21372,257.13679 181.27379,256.86402 C 181.35705,256.6464 181.37642,256.42435 181.58707,256.27556 C 181.73547,256.08656 181.89819,255.90696 182.02511,255.70067 C 182.19968,255.49295 182.37214,255.28417 182.53144,255.06379 C 182.6627,254.82979 182.8303,254.64074 182.81098,254.34345 C 182.85069,254.03727 182.90613,253.73136 182.89147,253.42155 C 182.88225,253.17549 182.89685,252.92571 182.8313,252.68533 C 182.69582,252.48574 182.66921,252.29569 182.38403,252.24694 C 182.18707,252.22895 181.97334,252.2528 181.80592,252.13277 C 181.80669,251.95167 181.71882,251.73488 181.84211,251.5401 C 182.15381,251.28985 182.3935,250.77563 182.91689,250.77121 C 183.6993,250.59251 182.83159,250.88369 182.85155,250.96362 C 182.98856,250.84536 183.11454,250.716 183.26217,250.61006 C 183.41932,250.5177 183.89243,250.2514 183.72037,250.31144 C 183.85102,250.16108 184.03412,250.08298 184.05472,249.85051 C 184.11264,249.59225 184.14697,249.33444 184.32108,249.12044 C 184.46584,248.95689 184.61649,248.79925 184.73427,248.6135 C 184.83716,248.4103 184.92485,248.1963 185.07354,248.0209 C 185.39455,247.52433 185.61833,247.26854 186.2415,247.00471 C 186.44352,246.93127 186.64078,246.8439 186.85053,246.79071 C 187.09964,246.74942 187.34493,246.67943 187.60177,246.70819 C 187.85503,246.70824 188.10831,246.70816 188.36158,246.70851 C 188.61875,246.7091 188.87591,246.70952 189.13307,246.71106 C 189.41057,246.71148 189.68831,246.71578 189.96555,246.701 C 190.75641,246.54112 190.02466,246.79853 189.9325,246.89168 C 190.02566,246.72259 190.16597,246.57492 190.18987,246.36981 C 190.30329,246.173 190.4047,245.96667 190.5214,245.7699 C 190.54994,245.53601 190.65572,245.37217 190.49665,245.14721 C 190.27751,245.06414 190.12781,244.92423 189.85222,245.03477 C 188.91645,245.35544 190.41728,244.6016 189.72968,245.06134 C 189.32752,245.42142 188.8917,245.7596 188.36566,245.9183 C 188.39407,245.89621 188.48818,245.84644 188.46337,245.87251 C 188.00825,246.18697 187.78592,246.58789 187.30881,246.33415 C 187.17162,246.08056 187.05949,245.81731 186.9299,245.55555 C 186.67129,245.33084 186.48863,245.13575 186.11256,245.13192 C 185.76312,245.09435 185.40269,245.08687 185.08636,244.91598 C 184.88141,244.64013 184.72523,244.47049 184.77415,244.08348 C 184.72977,243.72962 184.70266,243.37331 184.55206,243.04303 C 184.40419,242.72874 184.30224,242.45424 183.97815,242.2768 C 183.70165,242.10136 183.4284,241.92759 183.10246,241.85748 C 182.96136,241.73081 182.78926,241.65204 182.71055,241.455 C 182.55423,241.37453 182.41339,241.25328 182.23074,241.22872 C 182.2425,241.18297 182.29287,241.05264 182.26601,241.09147 C 182.07255,241.29116 181.89199,241.50715 181.64129,241.639 C 181.46685,241.7861 181.2574,241.88605 181.1892,242.12592 C 181.16963,242.36552 181.12575,242.60423 181.15024,242.84834 C 181.14058,243.10742 181.144,243.36911 181.07508,243.62161 C 180.97365,243.85839 180.89618,244.09899 180.68862,244.27143 C 180.10869,244.60592 179.93514,244.77859 179.34674,244.73818 C 179.09216,244.73904 178.83758,244.73966 178.58301,244.7419 C 178.33269,244.74229 178.08161,244.7495 177.83207,244.72523 C 177.60479,244.64252 177.42506,244.66723 177.32792,244.40014 C 177.32172,244.15026 177.29853,243.89766 177.32517,243.64627 C 177.34874,243.3901 177.36752,243.13352 177.42279,242.88136 C 177.42985,242.63395 177.45409,242.38419 177.42885,242.13528 C 177.40173,241.92595 177.40432,241.71074 177.31291,241.5145 C 177.67742,240.97123 175.56871,241.88642 177.68577,240.95876 C 177.27701,241.20676 176.88413,241.49553 176.43918,241.67445 C 176.20052,241.74575 175.82985,241.92516 176.35588,241.60668 C 175.96507,241.97172 175.57757,242.31158 175.05323,242.49994 C 174.81952,242.5041 174.6194,242.5937 174.39835,242.42307 C 174.22808,242.30086 174.07676,242.16327 173.87063,242.09933 C 173.63637,242.02678 173.40993,241.92096 173.1578,241.91563 C 172.95657,241.82604 172.77276,241.82587 172.67626,241.58736 C 172.5751,241.44208 172.49379,241.27851 172.36543,241.14912 C 172.11723,241.09567 171.86357,240.99852 171.5896,241.02934 C 171.30953,240.97049 171.03804,240.94402 170.81531,240.73914 C 170.58811,240.59529 170.36859,240.43612 170.1051,240.35942 C 169.86876,240.34799 169.64841,240.27233 169.41977,240.39555 C 170.36912,239.83091 170.0023,240.05217 169.74833,240.26601 L 169.07202,240.61131 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6202" />
+      <path
+         d="M 198.30994,229.46853 C 198.15135,229.58595 197.9499,229.62978 197.76988,229.7104 C 198.61043,229.09514 199.51024,228.61936 200.48865,228.29986 C 201.03269,228.19395 201.588,228.20894 202.13917,228.19919 C 202.7585,228.30259 203.35659,228.54136 203.95356,228.73045 C 204.66008,228.64133 205.29124,228.2918 205.94819,228.03592 C 206.55425,227.80304 207.19387,227.76435 207.8309,227.70403 C 208.43327,227.62448 208.56971,227.92737 208.96621,228.26655 C 209.24279,228.56485 209.51182,228.87305 209.79478,229.16487 C 210.07684,229.58194 210.16004,230.07981 210.28041,230.55954 C 210.35779,231.11166 210.75762,231.41498 211.06085,231.80297 C 211.44955,231.93261 211.77146,232.18293 212.11537,232.38908 C 212.40096,232.78851 212.83295,233.00352 213.20239,233.28189 C 213.64382,233.42966 213.70639,233.80683 213.91264,234.15407 C 214.11018,234.6823 213.96398,235.11113 213.84732,235.61659 C 213.33762,236.58081 212.14438,236.57941 211.30942,236.9475 C 210.74852,236.91608 210.22577,237.07672 209.68956,237.20773 C 209.15317,237.34784 208.59918,237.41415 208.05325,237.49135 C 208.23928,237.61131 209.25027,236.32294 208.74384,237.71339 C 208.69813,238.27298 208.71281,238.83503 208.7147,239.39582 C 208.78271,239.95923 208.56652,240.41762 208.36901,240.91757 C 207.816,241.77437 206.70887,241.97474 205.85096,242.39358 C 205.21238,243.09439 205.8785,241.28002 205.84674,242.56451 C 205.54634,243.00669 205.41893,243.5082 205.26972,244.00945 C 205.30339,245.10815 204.52598,245.13874 203.73961,245.51746 C 203.64737,245.1022 203.47952,244.71282 203.33745,244.3121 C 203.07244,243.90066 203.01203,243.42735 202.88634,242.97043 C 202.81715,242.4755 202.83174,241.97514 202.82139,241.4771 C 202.82084,240.92005 202.82421,240.36302 202.82695,239.80599 C 202.89324,238.95097 203.08894,238.11064 203.24551,237.26863 C 203.49671,236.72066 203.367,236.20879 203.31825,235.68269 C 203.04823,235.32482 202.81183,234.94367 202.5694,234.56592 C 202.3015,234.12885 201.97432,233.73802 201.66088,233.33493 C 201.36734,232.96971 201.00482,232.67485 200.66483,232.36316 C 200.24569,232.25811 199.80799,232.32881 199.38135,232.34717 C 198.95766,232.62164 198.70324,232.32008 198.34314,232.2596 C 198.17355,231.94337 197.9632,231.64091 197.7856,231.33027 C 197.68306,231.22332 197.6274,231.08357 197.54889,230.96115 L 198.85086,230.20799 C 198.92599,230.32379 198.97801,230.4574 199.07752,230.55733 C 199.24918,230.85487 199.45658,231.14328 199.61603,231.44763 C 199.91332,231.45031 200.25906,231.67691 200.5911,231.45642 C 201.04437,231.44682 201.50688,231.35593 201.93378,231.55409 C 202.27918,231.87998 202.64552,232.18922 202.94782,232.56264 C 203.26307,232.97092 203.59315,233.3665 203.86482,233.80734 C 204.11134,234.18718 204.35202,234.57012 204.62426,234.93141 C 204.6936,235.49967 204.86885,236.02245 204.58541,236.61968 C 204.4276,237.45135 204.23055,238.28162 204.15881,239.12623 C 204.15928,239.68214 204.15957,240.23805 204.15813,240.79396 C 204.16659,241.28492 204.15256,241.77779 204.2137,242.2663 C 204.3324,242.71647 204.38729,243.1801 204.64969,243.58442 C 204.78938,243.96433 204.96581,244.33246 205.03685,244.7331 C 203.54426,245.62144 203.78237,245.78759 203.91971,244.66462 C 204.05906,244.14568 204.17849,243.63139 204.47288,243.16848 C 205.1199,242.33207 205.98055,241.74542 207.03852,241.47852 C 207.02541,241.49681 206.98372,241.54974 206.99918,241.5334 C 207.18055,241.05029 207.47006,240.63703 207.37958,240.07865 C 207.3776,239.51274 207.36631,238.94617 207.39964,238.38088 C 207.67293,237.33305 207.79718,237.01881 209.25038,236.58292 C 209.7961,236.50996 210.34594,236.4494 210.87688,236.29455 C 211.41903,236.17397 211.9507,236.03573 212.51314,236.04911 C 212.50207,236.11159 212.49022,236.2992 212.47995,236.23658 C 212.57617,235.77249 212.81863,235.38977 212.5953,234.88098 C 212.39334,234.5939 212.3711,234.21587 211.94938,234.11451 C 211.557,233.83459 211.16184,233.57008 210.84166,233.19428 C 210.49447,232.99752 210.16516,232.76255 209.79167,232.60917 C 209.47178,232.18843 209.0542,231.8524 208.96219,231.27258 C 208.84667,230.81419 208.76833,230.33549 208.50261,229.93567 C 208.22179,229.64828 207.94909,229.34802 207.6805,229.04838 C 207.28508,228.81579 207.20786,228.43989 206.62404,228.5945 C 205.99718,228.6646 205.368,228.714 204.77497,228.95564 C 204.10843,229.2263 203.46036,229.58746 202.72498,229.58632 C 202.13812,229.3902 201.54828,229.13959 200.92889,229.08207 C 200.38335,229.09797 199.83241,229.08417 199.29761,229.2134 C 197.49448,229.89617 200.46898,228.39822 199.16576,229.1561 C 198.49925,229.57339 197.92249,230.36796 197.0818,230.36267 L 198.30994,229.46853 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6204" />
+      <path
+         d="M 214.25316,264.89764 C 214.0136,264.79202 213.73639,264.76563 213.47959,264.70003 C 213.0052,264.59205 212.5398,264.69275 212.06991,264.7205 C 211.55354,264.92018 211.16723,264.70349 210.69782,264.59037 C 210.33986,264.29897 209.90509,264.27765 209.48244,264.17216 C 208.98204,264.06449 208.50411,264.19555 208.01137,264.25104 C 207.96193,264.26927 208.08877,264.17659 208.13658,264.15439 C 207.74838,264.51093 207.46478,264.95691 207.16028,265.38232 C 206.82885,265.76794 206.60356,266.21947 206.34245,266.64972 C 206.10782,267.04158 205.99888,267.4885 205.85599,267.91789 C 205.71419,268.3993 205.72377,268.90108 205.68787,269.39576 C 205.6077,269.83472 205.54738,270.27719 205.47735,270.71767 C 205.42961,271.20665 205.43747,271.69823 205.42851,272.18872 C 205.42692,272.69655 205.42815,273.20437 205.42873,273.7122 C 205.41047,274.20755 205.44251,274.70376 205.45614,275.19669 C 205.57559,275.67443 205.87237,276.06016 206.13655,276.46265 C 206.36755,276.94282 206.74174,276.97294 207.16229,277.16133 C 207.62042,277.16911 208.05834,277.27666 208.50729,277.34812 C 208.95893,277.4156 209.41699,277.45669 209.86935,277.50049 C 210.21783,277.66457 210.61711,277.73228 210.97076,277.85223 C 211.13698,277.81606 210.82361,278.18865 210.67271,278.26729 C 210.94473,277.83358 211.04678,277.31778 211.18599,276.82939 C 211.43462,275.74022 212.16798,275.79317 213.13983,275.42812 C 213.36832,275.76807 213.5416,276.1477 213.73098,276.51237 C 213.95277,276.98619 213.97311,277.502 214.02808,278.01148 C 214.10453,278.56364 214.01331,279.09958 213.95294,279.64143 C 213.80049,280.28101 213.51892,280.87915 213.26629,281.48319 C 213.02163,282.01285 212.84922,282.56894 212.66748,283.12079 C 212.50938,283.63364 212.56675,284.147 212.59014,284.667 C 212.61594,285.18587 212.94586,285.41563 213.25614,285.77798 C 213.68007,286.17033 213.87712,286.68208 214.11301,287.18527 C 214.27418,287.74977 214.27442,288.33608 214.30153,288.91684 C 214.3544,289.47595 214.47312,290.02447 214.57233,290.57579 C 214.69463,291.17381 215.04569,291.63646 215.37252,292.12502 C 215.76909,292.46944 216.242,292.41187 216.72402,292.46918 C 216.63085,292.73209 217.772,292.10925 217.52878,292.24504 C 217.14795,292.45785 216.76711,292.67065 216.38628,292.88346 C 216.4341,292.84549 216.48192,292.80752 216.52973,292.76954 C 216.96335,292.62914 216.98128,292.22517 217.18833,291.92099 C 217.28689,291.4505 217.26313,290.96822 217.2764,290.49105 C 217.21164,289.88993 217.48322,289.43449 217.7346,288.92286 C 218.19935,288.04679 219.24061,287.81326 220.05649,287.37932 C 219.61956,287.65227 220.95309,286.87179 221.40314,286.62115 C 221.98645,286.39824 222.61124,286.39857 223.22457,286.35718 C 223.32515,286.3432 223.08781,286.5207 222.99195,286.55424 C 223.13447,286.10351 223.09497,285.62792 223.11055,285.16267 C 223.10742,284.65215 223.10393,284.14163 223.10088,283.63111 C 223.09802,283.11212 223.09915,282.59312 223.09952,282.07413 C 223.13539,281.43426 223.2831,280.81197 223.41585,280.18775 C 223.53898,279.63904 223.66364,279.09181 223.77674,278.54108 C 223.80286,277.98956 224.16864,277.70294 224.45672,277.29497 C 224.86708,277.01444 225.21865,276.66632 225.5928,276.34573 C 225.89499,275.87041 226.22906,275.42429 226.56081,274.97422 C 227.01576,274.54547 227.51208,274.16531 228.00363,273.78056 C 228.38087,273.54318 228.54907,273.15059 228.78156,272.8034 C 228.88556,272.35001 228.96211,271.88775 229.04022,271.42791 C 229.10365,270.94125 229.26033,270.47531 229.38869,270.00422 C 229.4205,269.57386 228.97248,270.03454 228.79842,270.04722 C 228.09822,270.44085 229.4162,269.69123 229.73098,269.52407 C 229.96581,269.39938 229.31212,269.85199 229.10269,270.01595 C 228.24206,270.70713 227.61657,270.89853 226.70868,271.14168 C 226.33257,271.11973 226.02259,270.88776 225.69265,270.73281 C 225.40536,270.43539 225.01998,270.37351 224.65177,270.23839 C 224.08627,270.00838 223.8055,269.51709 223.45492,269.06213 C 223.19131,268.2849 223.51967,267.65367 223.77953,266.9324 C 224.1065,266.48982 224.0842,266.02272 224.14145,265.52792 C 224.07979,265.13115 223.84119,264.81987 223.64573,264.48168 C 223.43624,264.04994 223.41235,263.56923 223.33725,263.10411 C 223.36293,262.67843 223.07003,262.36765 222.93384,262.03704 C 222.55569,261.79357 222.17034,261.91806 221.76802,261.92357 C 221.78327,261.9134 221.79726,261.96616 221.78231,261.97676 C 220.9566,262.7647 220.13087,262.93558 219.14028,263.10308 C 218.39588,263.12116 217.08961,263.95848 219.26921,262.73185 C 218.93506,262.9277 218.71681,263.24923 218.46693,263.53429 C 217.36252,264.39359 217.13944,264.38565 216.07596,264.40559 C 215.58023,264.33784 215.112,264.49461 214.63753,264.58903 C 214.27533,264.8022 213.87651,264.9126 213.48865,265.0607 L 214.68233,264.14436 C 215.06012,263.9818 215.44757,263.83091 215.8267,263.66951 C 216.31283,263.59364 216.7921,263.45868 217.29218,263.52122 C 218.05693,263.47175 219.22676,263.12721 217.07108,264.10499 C 217.31922,263.82278 217.56169,263.50973 217.86745,263.28387 C 218.86947,262.69349 219.30825,262.28393 220.34684,262.20785 C 220.71842,262.12613 221.98962,261.74772 220.38733,262.53134 C 221.1929,261.94889 222.00562,261.3005 222.97013,261.01759 C 223.40661,261.04126 223.8309,260.94345 224.21519,261.24351 C 224.39225,261.61253 224.66777,261.92884 224.6624,262.39362 C 224.73275,262.84429 224.75728,263.31121 224.94991,263.73254 C 225.15414,264.08439 225.40178,264.40787 225.47113,264.8201 C 225.43314,265.35034 225.49509,265.83531 225.13652,266.3116 C 224.87555,266.98062 224.53535,267.57848 224.75143,268.31277 C 225.08593,268.73793 225.34797,269.19923 225.89482,269.39239 C 226.26446,269.5404 226.65737,269.61272 226.95385,269.90813 C 227.26942,270.04154 227.55807,270.27375 227.92118,270.24642 C 228.47768,270.03186 230.05204,269.454 227.70026,270.56322 C 228.41372,270.01925 229.14762,269.49218 229.97143,269.10327 C 230.32097,269.1456 230.68482,268.726 230.74789,269.35536 C 230.6168,269.82278 230.45184,270.28509 230.38956,270.77017 C 230.31013,271.23746 230.21928,271.701 230.1461,272.16859 C 229.92313,272.54199 229.78707,272.96277 229.39637,273.2252 C 228.90175,273.60406 228.40882,273.98488 227.94275,274.39988 C 227.59474,274.83723 227.2418,275.2582 226.9756,275.76189 C 226.61065,276.10053 226.29258,276.4776 225.84149,276.7172 C 225.53355,277.09831 225.17614,277.34632 225.12344,277.87967 C 225.01518,278.43513 224.89408,278.9855 224.76245,279.53586 C 224.62648,280.15059 224.48508,280.76314 224.43427,281.3926 C 224.43523,281.91105 224.43607,282.42951 224.43741,282.94796 C 224.44028,283.45867 224.44318,283.96937 224.44752,284.48007 C 224.4368,284.9611 224.46903,285.44857 224.35791,285.9213 C 223.73763,286.39718 223.02853,287.37004 222.01713,287.24428 C 221.41194,287.29419 220.79655,287.29947 220.23152,287.55563 C 222.57593,286.1461 219.71132,287.9998 218.87338,288.30687 C 218.93733,288.26148 219.15796,288.25816 219.10815,288.31878 C 218.84175,288.80239 218.55486,289.22265 218.61362,289.80891 C 218.60381,290.29597 218.62406,290.78638 218.54427,291.26921 C 218.37844,291.65282 218.37488,292.01834 217.9277,292.20826 C 217.08415,292.73409 216.48082,293.36137 215.50644,293.34835 C 214.98834,293.26256 214.49444,293.30659 214.08837,292.89774 C 213.75072,292.38805 213.38757,291.90388 213.25384,291.28506 C 213.14954,290.72539 213.02917,290.16891 212.96733,289.6016 C 212.94541,289.03431 212.95047,288.46146 212.8008,287.90842 C 212.57526,287.42348 212.38538,286.93315 211.97306,286.55869 C 211.65131,286.17404 211.28815,285.91823 211.26347,285.36883 C 211.22951,284.83101 211.16117,284.3024 211.31492,283.76889 C 211.49093,283.20735 211.6602,282.64394 211.90753,282.10669 C 212.15974,281.51023 212.44376,280.91927 212.60371,280.28984 C 212.6735,279.76256 212.77355,279.24386 212.69579,278.70251 C 212.63557,278.21432 212.64473,277.71246 212.4248,277.25708 C 212.24734,276.91765 212.08384,276.56206 211.87121,276.24663 C 212.63163,275.70461 213.17852,274.98389 212.53922,276.18642 C 212.3982,276.69057 212.27527,277.20404 212.06213,277.68335 C 211.31069,278.1508 210.67409,278.79741 209.74294,278.72711 C 209.38029,278.60094 209.00505,278.48239 208.63821,278.36472 C 208.18298,278.32278 207.72361,278.29664 207.27344,278.2091 C 206.82415,278.14327 206.3798,278.05464 205.92601,278.01769 C 205.49935,277.7959 205.07862,277.72841 204.84584,277.22898 C 204.56799,276.80533 204.26029,276.39764 204.12659,275.89838 C 204.10942,275.39986 204.0684,274.897 204.09192,274.39493 C 204.09132,273.88683 204.09024,273.37874 204.09113,272.87065 C 204.09832,272.37616 204.09089,271.88086 204.13204,271.38748 C 204.19688,270.9485 204.23686,270.50589 204.34889,270.07431 C 204.37322,269.56858 204.37535,269.05864 204.50035,268.56409 C 204.63866,268.12446 204.74674,267.66858 204.97014,267.26207 C 205.22845,266.82668 205.44352,266.36492 205.7883,265.98444 C 206.09043,265.5525 206.37044,265.10009 206.74472,264.72459 C 207.52684,264.22539 208.26691,263.54069 209.2104,263.34756 C 209.7125,263.2849 210.20408,263.20247 210.7105,263.30556 C 211.13998,263.42927 211.58792,263.47175 211.95575,263.76452 C 212.39999,263.83767 212.79892,264.00094 213.27004,263.8183 C 213.74974,263.80341 214.23073,263.72268 214.71099,263.83307 C 214.96802,263.88994 215.22376,263.97125 215.48131,264.0035 L 214.25316,264.89764 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6208" />
+      <path
+         d="M 227.43056,285.97413 C 227.60748,285.83224 227.88226,285.93682 228.1081,285.91817 C 227.76031,286.20424 227.70251,286.59935 227.54688,286.98295 C 227.49832,287.47487 227.40908,287.96065 227.32317,288.44727 C 227.28846,288.94451 227.17545,289.42854 227.08146,289.91651 C 226.84696,290.32111 226.16524,290.12267 225.69866,290.14082 C 225.88511,289.74895 225.95706,289.32586 226.06958,288.913 C 226.09049,288.46058 226.19906,288.02369 226.28746,287.58176 C 226.40175,287.20229 226.63506,286.86559 226.83707,286.52529 C 226.96083,286.32793 226.98127,286.09164 227.05274,285.87669 L 228.40525,285.22295 C 228.33972,285.44978 228.32458,285.69503 228.2077,285.90679 C 228.01369,286.2427 227.81058,286.58008 227.63904,286.92248 C 227.54482,287.36246 227.43728,287.79964 227.41859,288.25083 C 227.31725,288.66831 227.2782,289.10118 227.05178,289.48147 C 226.81495,289.68105 226.07608,291.61771 225.72625,290.572 C 225.82739,290.08705 225.94834,289.60594 225.97621,289.10933 C 226.06113,288.62114 226.15834,288.13492 226.19477,287.64037 C 226.33273,287.2297 226.35536,286.8133 226.72741,286.51647 C 227.40448,285.99046 227.24043,284.94797 228.65871,285.08 L 227.43056,285.97413 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6210" />
+      <path
+         d="M 226.43862,258.16303 C 226.72469,258.27632 226.72681,258.61333 226.86432,258.82821 C 227.02218,259.29375 227.17236,259.76078 227.32179,260.22857 C 227.3295,260.70394 227.52105,261.12006 227.6472,261.55495 C 227.90551,261.86548 228.32629,261.94893 228.69316,262.08601 C 229.09785,262.41628 229.17859,262.92664 229.32302,263.40704 C 229.4973,263.92757 229.89757,264.05163 230.29502,264.31512 C 230.686,264.35292 230.91168,264.65713 231.21881,264.84597 C 231.62663,265.17908 232.00023,265.54493 232.3787,265.90524 C 232.71761,266.33695 232.70263,266.85047 232.79053,267.35877 C 232.78031,267.87107 232.87327,268.37312 232.95143,268.87708 C 232.89977,269.40561 233.21442,269.73769 233.42062,270.13904 C 233.71867,270.46104 234.12656,270.35436 234.4504,270.43231 C 232.97891,271.26124 235.59947,269.84404 235.69035,269.79633 C 236.27199,269.62291 236.86356,269.51268 237.45902,269.40467 C 237.88098,269.33701 238.30074,269.46848 238.70242,269.53214 C 238.04354,269.75672 237.48431,270.62844 237.78588,269.36181 C 237.67217,268.80315 237.94176,268.42803 238.11752,267.96338 C 238.49537,267.7065 238.75239,267.33465 239.05533,267.01287 C 239.31492,266.51057 239.39049,265.95596 239.49887,265.41054 C 239.70336,264.949 239.43657,264.5015 239.38232,264.12564 C 238.97875,264.17819 238.57353,264.24462 238.17086,264.31028 C 237.60499,264.48443 237.30837,264.20346 236.83929,264.00641 C 236.31187,263.78485 236.31081,263.38248 236.10251,262.93838 C 235.96384,262.41599 235.87642,261.88205 235.78461,261.35085 C 235.70622,260.81323 235.35776,260.51515 235.021,260.14433 C 234.4911,259.92771 234.63067,259.4746 234.49772,259.13458 C 235.3473,258.27887 236.00134,258.23382 236.9827,258.1632 C 237.39506,258.30154 237.81563,258.26777 238.23185,258.2934 C 238.66851,258.09995 238.97528,258.39047 239.34907,258.47425 C 239.82029,258.81966 240.38802,258.81195 240.94223,258.88891 C 241.62773,258.91417 242.09574,259.23551 242.61785,259.59458 C 242.90642,260.00377 242.89831,260.49427 242.97073,260.96852 C 242.98384,261.52868 243.35162,261.4314 243.66944,261.67168 C 243.57969,261.94532 244.75355,261.30682 244.50186,261.44596 C 244.1432,261.64646 243.78454,261.84697 243.42588,262.04748 C 243.49877,261.99032 243.57166,261.93317 243.64455,261.87601 C 244.08793,261.557 244.53355,261.24063 244.97809,260.92438 C 246.74346,259.66125 246.21918,259.99787 247.29144,260.40622 C 247.5056,260.85691 247.4758,261.35281 247.49918,261.8384 C 247.53,262.50428 247.67312,263.1507 247.81182,263.79951 C 247.95122,264.36111 248.10936,264.91639 248.26441,265.47271 C 248.46392,265.93887 248.78896,265.88943 249.20363,266.02136 C 249.9049,266.13822 250.47961,266.54126 251.05721,266.93054 C 251.64412,267.37175 252.11584,267.93221 252.59709,268.48001 C 252.943,268.74829 252.05835,269.224 251.65634,269.39679 C 251.5567,269.00239 251.39703,268.62288 251.25998,268.23903 C 251.06951,267.81897 250.87203,267.40357 250.6797,266.9848 C 250.49652,266.51535 250.50406,266.01521 250.47321,265.52132 C 250.46031,264.96097 250.46402,264.40043 250.46441,263.83998 C 250.39723,263.31091 250.61192,262.85341 250.75236,262.36494 C 250.92619,261.90794 250.92826,261.42253 250.96481,260.94284 C 250.98202,260.38515 250.9773,259.82713 250.97695,259.26927 C 250.8827,258.71916 251.19088,258.43043 251.42985,258.00437 C 252.80758,256.84918 252.86809,256.96761 253.91361,257.51015 C 254.36847,258.47742 254.65104,259.53163 254.98259,260.55004 C 255.20974,261.49855 255.51757,262.40193 255.92678,263.28332 C 256.96281,264.38578 255.68482,264.25621 255.50473,264.31525 C 255.82011,263.4577 256.02939,262.55942 256.26969,261.67664 C 256.41225,261.06405 256.50273,260.44069 256.60661,259.82145 C 256.71119,259.41318 256.99337,259.11375 257.2298,258.78136 C 257.59611,258.38979 257.92341,257.96516 258.25773,257.5483 C 258.5308,257.13634 258.50782,256.66048 258.57233,256.19477 C 258.57804,255.73382 258.29975,255.39766 258.09105,255.01515 C 257.88856,254.60402 257.86938,254.1443 257.7993,253.70025 C 257.65475,253.23036 257.63414,252.74268 257.5904,252.25747 C 257.57624,251.67549 257.55574,251.09282 257.53462,250.51238 C 257.45753,250.04394 257.32342,249.58564 257.1922,249.1303 C 257.08144,248.40003 257.07727,247.66014 257.06229,246.9234 C 257.14308,246.28385 256.96032,245.73364 256.77148,245.14355 C 256.64479,244.69611 256.33748,244.39985 256.06298,244.04957 C 255.80602,243.66776 255.56583,243.27409 255.32078,242.88392 C 255.11132,242.36816 254.71607,242.54123 254.33459,242.40794 C 253.88804,242.63586 253.40506,242.57773 252.95233,242.61715 C 252.61576,242.43926 252.46293,242.09404 252.23504,241.81274 C 251.94474,241.51902 251.64209,241.23999 251.34085,240.9577 C 251.0966,240.60248 250.72304,240.40823 250.40186,240.15819 C 249.81066,240.01144 249.65974,239.62202 249.37603,239.15776 C 249.3013,238.71293 249.1912,238.2481 249.10672,237.82313 C 248.83663,237.74105 248.50913,237.8529 248.22395,237.89924 C 247.77269,237.8767 247.50062,237.53788 247.16732,237.27662 C 246.84454,236.95502 246.52588,236.62728 246.20938,236.29901 C 245.96051,235.9053 245.5676,235.74486 245.20008,235.50416 C 244.85922,235.24652 244.54696,234.94553 244.23138,234.65968 C 243.43619,234.49239 242.70062,235.10046 244.4558,234.11165 C 243.86379,234.79647 242.70929,235.00684 242.12081,235.22529 C 241.74871,235.125 241.44859,234.89709 241.12495,234.70331 C 240.7519,234.4506 240.32936,234.51135 239.91684,234.47145 C 239.43111,234.59105 238.93016,234.57691 238.44092,234.60882 C 238.02962,234.52627 237.65023,234.29008 237.28094,234.08956 C 236.84608,233.93352 236.39336,234.01134 235.94443,234.03821 C 235.51561,233.94188 235.23368,233.61031 234.90572,233.35029 C 234.70479,232.9448 234.29754,232.97815 233.99194,232.81607 C 233.49686,232.93138 233.12263,232.69106 232.68059,232.54941 C 232.19845,232.27812 231.65419,232.24532 231.12082,232.1681 C 230.6559,232.13822 230.19061,232.24837 229.7319,232.32347 C 229.24769,232.38263 228.75957,232.37546 228.27304,232.38848 C 227.7668,232.39197 227.26055,232.39041 226.75431,232.38995 C 226.25767,232.27121 225.87777,232.48824 225.43897,232.6056 C 228.07501,231.21283 225.13094,232.6943 224.23949,233.13225 C 223.8255,233.32785 223.37214,233.3266 222.93014,233.38584 C 222.45044,233.35595 221.98367,233.44704 221.51373,233.49279 C 221.64992,233.66572 222.7926,232.28251 222.16524,233.64099 C 221.98497,234.04101 221.82245,234.44751 221.65738,234.85394 C 221.2099,235.68309 220.16695,235.8873 219.38497,236.30111 C 217.76487,236.8622 219.34293,236.12448 219.38364,236.10288 C 218.98755,236.3773 219.00624,236.76512 218.88753,237.17767 C 218.65566,238.36712 218.43128,238.15338 217.03999,238.9172 C 217.16644,238.75215 217.45051,238.99507 217.65816,238.99429 C 217.57219,239.47158 217.59545,239.95795 217.5858,240.44022 C 217.37676,241.45799 216.65144,241.38732 215.65772,241.79133 C 215.29381,241.57096 215.06464,241.18654 214.80847,240.85531 C 214.43603,240.50233 214.37184,240.02999 214.24945,239.55639 C 214.22169,238.93804 213.82808,239.10412 213.53778,238.91867 C 213.57492,238.82362 213.73885,238.95159 213.83939,238.96804 C 213.4923,239.40446 213.42724,239.91806 213.32193,240.44192 C 213.27082,240.94977 213.28105,241.46072 213.27891,241.97032 C 213.28145,242.47853 213.28285,242.98675 213.28431,243.49497 C 213.30287,243.99604 213.27282,244.4976 213.26056,244.99677 C 213.18686,245.40668 212.82008,245.57522 212.55561,245.84211 C 212.111,246.15344 211.84619,246.6026 211.55327,247.03542 C 211.34135,247.51157 212.03726,247.36616 212.21528,247.48781 C 212.77788,247.58503 213.31335,247.4743 213.85426,247.39057 C 212.56905,248.30441 213.26652,247.34693 213.42237,247.06641 C 213.75626,246.12543 214.65031,245.97691 215.52196,245.52461 C 215.35998,245.51032 214.28458,246.71022 214.92929,245.31834 C 214.94352,244.80309 215.13559,244.32428 215.2657,243.84164 C 216.42368,241.02292 216.8739,243.54864 217.03885,243.53078 C 217.09449,244.08892 217.08514,244.65067 217.08997,245.2108 C 217.10761,245.73225 217.07631,246.25416 217.06259,246.77366 C 217.03399,247.23621 216.81438,247.63432 216.65317,248.05382 C 216.34991,248.44226 216.28446,248.91165 216.14286,249.36158 C 216.20819,249.86111 215.84606,250.08136 215.64094,250.44919 C 215.32484,250.82769 215.45068,251.22497 215.43488,251.6625 C 215.36979,252.67864 214.43487,252.61151 213.61093,252.92373 C 213.11943,252.62133 213.0041,252.16449 212.81213,251.6655 C 212.73825,251.14022 212.57065,250.63809 212.41321,250.134 C 212.03791,249.00072 211.89443,249.46222 213.3901,248.68744 C 213.26794,249.04561 213.28326,249.45259 213.25731,249.83141 C 213.23252,250.30433 212.97467,250.68211 212.77741,251.09186 C 212.26747,251.85615 211.33658,252.14392 210.54874,252.58931 C 212.29735,251.32311 211.54314,252.10295 211.20024,252.84159 C 210.73475,254.92525 209.56939,253.36723 209.12607,253.47976 C 208.86749,253.12357 208.58022,252.78942 208.30041,252.44999 C 208.10469,252.04433 207.69557,251.9882 207.37816,251.77345 C 206.97381,251.81991 206.56576,251.96682 206.17112,252.08845 C 204.59059,252.50697 206.28512,251.86045 206.37362,251.81863 C 206.28432,252.20587 206.09109,252.54009 205.93057,252.89827 C 205.71671,253.36129 205.79401,253.86045 205.81372,254.35425 C 205.79993,254.9178 205.43775,255.2528 205.14946,255.68187 C 204.84139,256.03722 204.48855,256.35731 204.14204,256.67382 C 203.90261,257.13361 203.52791,257.44453 203.15844,257.78299 C 201.92521,258.68808 201.75406,258.74472 200.64423,258.58897 C 200.67425,258.17664 201.45721,258.4474 201.86312,258.37338 C 202.20246,258.64906 202.63291,258.60829 203.03854,258.66804 C 203.6246,258.51694 203.93514,258.8428 204.37604,259.02238 C 204.64396,259.47951 204.76939,259.9957 204.92054,260.4985 C 204.91169,261.08174 205.4725,261.1674 205.67407,261.34689 C 203.86167,262.64288 204.60289,261.92293 204.99827,261.21331 C 205.07042,260.72618 205.13742,260.24031 205.22011,259.75411 C 205.31883,259.31575 205.49789,258.90221 205.64548,258.4834 C 206.79084,257.47261 208.57388,256.71513 206.59715,257.70243 C 207.02339,256.6972 207.22063,256.78555 208.44111,256.09089 C 208.7661,256.15079 209.04072,256.32961 209.33827,256.46043 C 209.88792,256.56187 210.3807,256.82248 210.88976,257.04231 C 211.51228,257.17254 211.61222,257.58446 211.92044,258.01887 C 212.04547,258.43756 212.11711,258.86754 212.2095,259.29299 C 212.27216,259.7799 212.26157,260.27133 212.27312,260.76086 C 212.08122,261.126 212.45277,261.53064 212.49899,261.72871 C 212.79501,261.64631 213.05088,261.47222 213.32986,261.34766 C 209.63641,263.33659 216.67941,259.58279 212.8229,261.65264 C 212.99704,261.30186 212.9462,260.89808 212.96776,260.51807 C 212.95174,260.06444 212.66106,259.73799 212.44877,259.36536 C 212.04425,259.0844 212.01863,258.66928 211.87185,258.27855 C 214.28333,256.66184 212.70919,257.51303 212.6728,257.52824 C 212.87309,257.14419 212.94821,256.7004 213.04711,256.28282 C 213.41596,254.17149 214.73649,255.68802 215.10632,255.58529 C 215.23183,255.99959 215.48681,256.34504 215.69244,256.71601 C 216.05982,257.19655 216.48793,257.62747 216.90812,258.05931 C 217.19451,258.40606 217.50473,258.72998 217.81296,259.05687 C 218.54625,259.71475 218.57617,259.1859 217.35249,259.79544 C 217.3784,259.38717 217.67975,259.1207 217.84247,258.79356 C 218.12213,258.50936 218.19072,258.11726 218.31741,257.75352 C 218.69111,256.88187 219.80232,256.76817 220.55604,256.4154 C 220.71935,256.51591 220.18501,256.28867 219.9935,256.29622 C 220.22808,254.50286 221.49922,255.93833 221.74635,255.90473 C 222.22257,256.21673 222.02426,256.62829 222.11387,257.02078 C 221.59946,257.94026 221.11089,258.03947 220.04602,258.65019 C 219.71076,258.59177 220.69816,258.454 221.01823,258.33824 C 221.21751,258.29702 220.72682,258.63295 220.54517,258.72484 C 220.79323,258.45149 220.97547,258.13079 221.18479,257.83017 C 221.33156,257.48345 221.58225,257.19522 221.77734,256.88445 C 223.69028,255.62349 223.02834,255.80675 223.62688,256.73549 C 223.74262,257.19099 223.59093,257.61021 223.51112,258.04858 C 223.30705,258.43289 223.28549,258.85994 223.20529,259.2754 C 223.16884,259.76949 223.27572,260.26306 223.34472,260.75148 C 222.57139,261.977 226.92543,259.26637 222.4606,261.72052 C 223.06764,260.95736 224.07194,260.87226 224.85526,260.50454 C 225.02679,260.54318 224.50252,260.44697 224.32871,260.47352 C 224.51464,260.15476 224.86166,259.97375 225.15089,259.75256 C 225.27093,259.66246 225.31679,259.51351 225.39807,259.3964 L 226.7683,258.7784 C 226.69335,258.91023 226.65588,259.06962 226.54079,259.17853 C 226.25446,259.3824 225.97211,259.64234 225.69646,259.84399 C 225.12689,260.34046 224.69872,261.39598 223.65553,261.41049 C 223.72387,261.32582 223.76822,261.09912 223.86056,261.15652 C 220.17309,263.33952 223.22005,261.78456 222.01621,261.4501 C 221.94641,260.95186 221.8393,260.44867 221.8603,259.94546 C 221.93097,259.5188 221.93734,259.07903 222.14743,258.68588 C 222.24303,258.27277 222.40537,257.88181 222.29821,257.44328 C 223.17964,256.30329 218.64367,258.28878 223.17171,256.31354 C 222.97169,256.60529 222.66698,256.85381 222.56442,257.22538 C 222.3579,257.53146 222.17825,257.85369 221.93036,258.13113 C 221.24166,258.58778 220.62255,259.38945 219.75337,259.16554 C 219.7703,259.14771 219.4127,257.14491 221.22048,257.70791 C 219.18526,258.91931 220.38462,258.3179 220.74471,257.65122 C 220.6886,257.313 220.9287,256.98203 220.46273,256.6882 C 220.7513,256.33404 220.95002,255.42762 221.35145,255.64496 C 220.81907,256.1588 220.51033,257.37564 219.35398,257.31942 C 219.45403,257.23883 219.76172,257.01512 219.68037,257.11462 C 219.559,257.49168 219.47406,257.89383 219.23348,258.21464 C 219.04639,258.54341 218.69502,258.72447 218.7336,259.18833 C 217.71044,259.85038 217.45153,260.48201 216.53071,259.84332 C 216.2215,259.51187 215.90757,259.18608 215.62308,258.83251 C 215.20132,258.3962 214.77102,257.96176 214.40045,257.47846 C 214.19216,257.10928 213.92884,256.76833 213.807,256.35242 C 214.01432,256.12452 214.11671,255.58983 214.41687,255.65788 C 214.31116,256.07447 214.19047,256.51331 214.05294,256.92903 C 212.33611,258.12473 212.25892,258.20191 213.22443,257.60886 C 213.36326,257.92114 213.33987,258.37172 213.74422,258.60278 C 213.97124,259.00072 214.27719,259.35459 214.30642,259.8364 C 214.2918,260.24155 214.32393,260.65603 214.20919,261.05024 C 209.73686,263.89113 216.67609,259.47164 212.15926,262.29452 C 211.86291,262.40583 211.5804,262.63554 211.24423,262.57719 C 211.12279,262.22916 210.76038,261.92759 210.93655,261.44451 C 210.92653,260.96125 210.9369,260.47638 210.88013,259.99529 C 210.79198,259.57809 210.72393,259.15669 210.60389,258.74613 C 210.3172,258.34771 210.22238,257.98955 209.6421,257.87014 C 209.13033,257.65452 208.63012,257.41712 208.08473,257.29646 C 207.81561,257.19092 207.55823,256.97113 207.25496,257.02752 C 209.08684,255.92587 208.28842,256.21793 207.9828,257.1131 C 207.75201,257.26689 205.68705,258.46886 207.01763,257.86757 C 206.86548,258.27103 206.67448,258.66783 206.56851,259.09532 C 206.49391,259.58597 206.39589,260.06995 206.3552,260.5653 C 205.89981,261.59204 205.90752,261.63724 204.46497,262.2526 C 204.10478,261.96687 203.68994,261.81454 203.60611,261.21616 C 203.46108,260.73575 203.34058,260.24242 203.08974,259.8032 C 202.69293,259.6786 202.31693,259.42634 201.81759,259.54324 C 201.37029,259.45803 200.91652,259.4909 200.56588,259.14258 C 200.87946,258.77065 198.81357,257.28192 201.88724,257.73188 C 202.55224,257.70351 203.85065,257.58337 201.76016,258.32909 C 202.1294,258.00001 202.55944,257.75779 202.75852,257.26083 C 203.10161,256.93999 203.4294,256.59764 203.76764,256.27104 C 204.05933,255.87476 204.42677,255.56165 204.47713,255.03411 C 204.45533,254.52816 204.37731,254.00503 204.55897,253.52034 C 204.71327,253.1532 204.96723,252.84467 204.99593,252.42759 C 205.73512,251.90981 206.39863,251.2316 207.36568,251.17503 C 207.77655,251.04942 208.18809,250.86139 208.62211,250.92606 C 208.97673,251.15093 209.36144,251.27605 209.59075,251.67775 C 209.86747,252.01232 210.14782,252.34414 210.41017,252.6902 C 210.20473,252.93568 210.13352,253.52397 209.8225,253.44979 C 210.27058,252.4484 210.39514,252.22971 211.71729,251.64166 C 211.62637,251.69659 211.32613,251.78264 211.40699,251.7137 C 211.60785,251.31915 211.86758,250.95147 211.91123,250.49646 C 211.93637,250.09374 211.96585,249.68821 211.99686,249.28439 C 213.64663,248.35639 213.31925,248.20511 213.7292,249.41392 C 213.88833,249.91894 214.05971,250.42279 214.1316,250.94971 C 214.33236,251.39275 214.37161,251.84401 214.86679,252.08917 C 214.86586,252.08985 213.4797,253.54321 214.10467,252.36133 C 214.10304,251.89878 213.96884,251.46361 214.25617,251.04277 C 214.48918,250.69093 214.84067,250.51515 214.79384,250.02146 C 214.92307,249.55605 214.96431,249.07023 215.28344,248.67465 C 215.45417,248.27004 215.67868,247.89122 215.71476,247.43893 C 215.73455,246.92689 215.77905,246.40905 215.75504,245.89262 C 215.75172,245.34086 215.76241,244.78755 215.70916,244.2376 C 215.83091,244.10874 215.54739,242.33861 216.63815,243.22611 C 216.49599,243.6874 216.26772,244.14721 216.27865,244.66014 C 215.922,245.70832 215.81769,246.03629 214.32889,246.44232 C 214.45651,246.35846 214.87871,246.31298 214.78666,246.43494 C 214.32293,247.40701 213.96946,247.94213 212.66685,248.3096 C 212.1111,248.36679 211.55574,248.45048 210.99032,248.35682 C 210.51447,248.15233 210.24079,248.27503 210.18857,247.66375 C 210.46534,247.20442 210.71094,246.73944 211.1559,246.39944 C 211.42518,246.17157 211.76151,245.99559 211.91258,245.66221 C 211.93047,245.17081 211.97379,244.67358 211.94754,244.17784 C 211.94601,243.66962 211.94513,243.16141 211.94222,242.65319 C 211.94329,242.1381 211.9336,241.622 211.97737,241.10817 C 212.07253,240.56484 212.127,240.02739 212.46291,239.56276 C 213.16772,239.04023 213.68215,238.03316 214.74909,238.02039 C 215.15175,238.25586 215.47671,238.23 215.56821,238.83735 C 215.69866,239.28294 215.72365,239.74097 216.09225,240.07133 C 216.33232,240.37908 216.53982,240.7555 216.89677,240.93151 C 216.88521,240.93991 215.47784,242.35176 216.24889,241.12281 C 216.25553,240.6316 216.23584,240.1378 216.3042,239.64962 C 216.67802,238.72084 216.89315,238.34513 218.22424,237.98652 C 216.51463,239.01685 217.35958,238.77715 217.54137,237.84571 C 217.63979,237.40955 217.61489,236.98028 217.98519,236.6573 C 218.83205,236.14647 219.59184,235.56168 220.57041,235.37686 C 220.48775,235.43287 220.22228,235.55587 220.2903,235.4827 C 220.45239,235.07924 220.60749,234.67295 220.80766,234.2859 C 221.15359,233.32053 221.37333,232.93586 222.71252,232.58358 C 223.18591,232.54889 223.65983,232.48731 224.138,232.49162 C 224.57251,232.41869 225.01806,232.40374 225.42401,232.20454 C 227.47984,231.27007 222.2839,234.15577 226.61472,231.66331 C 227.05986,231.58048 227.48928,231.41144 227.96828,231.50633 C 228.47417,231.5066 228.98007,231.50843 229.48594,231.50295 C 229.96947,231.48592 230.45513,231.49229 230.93537,231.42211 C 231.40155,231.35023 231.86837,231.23417 232.34237,231.29847 C 232.88788,231.38932 233.44256,231.43869 233.93467,231.72075 C 234.36521,231.83424 234.74671,232.03462 235.21835,231.94198 C 235.56948,232.12029 235.94371,232.17927 236.18775,232.56092 C 236.4942,232.79505 236.75083,233.10868 237.16064,233.15374 C 237.62918,233.13948 238.08396,233.04785 238.53067,233.25305 C 238.89207,233.44606 239.24854,233.68789 239.66157,233.73046 C 240.14882,233.68638 240.64196,233.66658 241.12706,233.58048 C 241.56303,233.64518 242.00999,233.60937 242.39271,233.88921 C 242.71593,234.05848 243.0054,234.29909 243.37257,234.38269 C 243.26619,234.47249 242.95355,234.74943 243.05694,234.6562 C 244.5226,233.80152 244.3444,233.5932 245.50211,233.85226 C 245.81197,234.13716 246.11398,234.44235 246.4608,234.68287 C 246.82853,234.93639 247.2328,235.11263 247.48862,235.50801 C 247.80459,235.83748 248.12095,236.16804 248.44653,236.48748 C 248.76288,236.71898 249.00028,237.03049 249.42807,236.99602 C 249.78028,236.97942 250.10909,236.78601 250.4093,237.05862 C 250.50079,237.49571 250.63787,237.96198 250.68638,238.42773 C 250.98532,238.81899 251.07622,239.22475 251.65849,239.32934 C 251.98501,239.5937 252.35793,239.80954 252.61715,240.16189 C 252.92131,240.44905 253.22831,240.73265 253.52304,241.02993 C 253.73361,241.28615 253.86363,241.61718 254.18751,241.754 C 254.63381,241.68624 255.10425,241.65847 255.54926,241.5208 C 255.99755,241.6716 256.37071,241.61615 256.62281,242.13235 C 256.86219,242.51305 257.0959,242.89873 257.34948,243.26941 C 257.62869,243.63369 257.94873,243.94422 258.07746,244.40611 C 258.27803,245.01532 258.47704,245.58131 258.38924,246.24341 C 258.40296,246.97075 258.40451,247.70139 258.51349,248.42243 C 258.6476,248.88097 258.78352,249.34308 258.8625,249.81521 C 258.88632,250.39779 258.91305,250.98299 258.92138,251.56785 C 258.96297,252.046 258.98072,252.52695 259.12489,252.98963 C 259.19044,253.41857 259.21131,253.86388 259.39542,254.26438 C 259.61555,254.66974 259.90535,255.03298 259.91315,255.5187 C 259.85793,256.0043 259.88317,256.50168 259.63255,256.94412 C 259.30379,257.36683 258.99347,257.80842 258.61187,258.19117 C 258.371,258.50333 258.10255,258.79534 257.96029,259.16974 C 257.84513,259.79133 257.74623,260.4163 257.61002,261.03513 C 257.36651,261.92467 257.13819,262.82065 256.86998,263.70134 C 255.68392,264.59409 255.31038,265.46734 254.63389,264.02215 C 254.22064,263.13109 253.91408,262.21926 253.69732,261.25719 C 253.37095,260.26397 253.08415,259.23971 252.63372,258.29737 C 251.36878,257.79158 252.6698,257.62748 252.81791,257.42365 C 252.54691,257.81575 252.23912,258.04515 252.31288,258.58689 C 252.31276,259.14678 252.316,259.70676 252.30202,260.26653 C 252.27272,260.7582 252.27691,261.25551 252.11473,261.72805 C 251.96354,262.2017 251.73812,262.63981 251.80062,263.1582 C 251.79915,263.71734 251.79432,264.27657 251.8056,264.83565 C 251.8334,265.31112 251.82402,265.79391 251.99139,266.24807 C 252.18332,266.66975 252.37943,267.08861 252.57234,267.51029 C 252.71442,267.90032 252.87415,268.28635 252.98964,268.68367 C 252.74304,268.86798 251.78465,270.31223 251.31309,269.25157 C 250.84371,268.71218 250.38539,268.15859 249.80167,267.7352 C 249.23101,267.35962 248.66923,266.97573 247.97452,266.88787 C 247.52871,266.70628 247.15494,266.72441 246.94891,266.19811 C 246.79402,265.63532 246.63841,265.07327 246.4939,264.5066 C 246.35301,263.84962 246.21236,263.19494 246.16626,262.52227 C 246.14612,262.06894 246.1767,261.60137 245.99431,261.17549 C 246.35697,260.43011 242.50281,262.23418 246.37979,260.3832 C 245.93163,260.69169 245.4822,261.00246 245.03456,261.31515 C 244.17794,261.85356 243.46842,262.60463 242.42979,262.5254 C 242.03713,262.26197 241.70992,262.24989 241.64372,261.67554 C 241.58054,261.23152 241.59026,260.76542 241.3351,260.37747 C 240.82332,260.10918 240.37854,259.72655 239.72651,259.75623 C 239.15225,259.66564 238.57006,259.65661 238.08377,259.29182 C 237.73872,259.24265 237.406,259.01903 237.02181,259.19079 C 236.60718,259.14833 236.18473,259.13739 235.77113,259.05121 C 234.31504,259.22294 235.45955,258.93148 235.88012,258.52501 C 235.94616,258.65671 235.78416,259.25134 236.29188,259.34611 C 236.64376,259.74399 237.01803,260.07245 237.10642,260.63724 C 237.19736,261.16938 237.28209,261.70569 237.42478,262.22822 C 237.61738,262.64602 237.60897,262.9873 238.10619,263.19467 C 238.5488,263.34804 238.85333,263.58799 239.37317,263.41003 C 239.80093,263.34296 240.24994,263.19495 240.66759,263.33546 C 240.78485,263.79174 241.03775,264.20427 240.84294,264.74801 C 240.74009,265.30839 240.66326,265.87375 240.42698,266.4002 C 240.1376,266.74463 239.93958,267.15741 239.50181,267.37109 C 239.28323,267.81906 239.00151,268.10946 239.12713,268.68838 C 238.96212,269.75228 238.9661,269.89662 237.48227,270.42112 C 237.07422,270.3582 236.68217,270.19474 236.25963,270.30467 C 235.67108,270.42155 235.08264,270.53366 234.5092,270.71785 C 235.6219,269.97304 235.12911,270.38749 233.24831,271.34207 C 232.86659,271.24253 232.4644,271.24235 232.14117,270.93183 C 231.91708,270.49578 231.57604,270.1431 231.62456,269.57853 C 231.54525,269.07151 231.44566,268.56615 231.45811,268.05069 C 231.38341,267.57214 231.40845,267.08736 231.09323,266.67955 C 230.71789,266.32866 230.34741,265.96956 229.9429,265.64619 C 229.64271,265.47175 229.40922,265.19664 229.03833,265.14719 C 228.63092,264.85042 228.19658,264.68079 228.01361,264.13976 C 227.87948,263.69725 227.80958,263.21334 227.43775,262.91422 C 227.03417,262.7548 226.60136,262.68657 226.341,262.30457 C 226.20769,261.85696 225.99942,261.43698 226.00305,260.9447 C 225.85541,260.47726 225.70803,260.01084 225.54124,259.54908 C 225.44338,259.40355 225.45759,259.06541 225.21047,259.05717 L 226.43862,258.16303 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6212" />
+      <path
+         d="M 263.21521,253.47043 C 263.08582,253.69995 263.07544,253.97782 263.00565,254.23112 C 262.95309,254.7107 262.96264,255.19364 262.95309,255.67511 C 262.90639,256.16139 262.9851,256.64057 263.01981,257.11975 C 263.10228,257.4882 263.39419,257.72204 263.6003,258.01289 C 263.97164,258.41221 264.03117,258.9242 264.15214,259.4295 C 264.29162,260.08225 264.11821,260.67382 263.96529,261.29923 C 263.78124,261.91096 263.7816,262.54562 263.75481,263.17362 C 263.89642,263.58332 263.00449,263.61966 262.59306,263.75387 C 262.57739,263.14169 262.74969,262.56393 262.89402,261.9766 C 263.03652,261.31505 263.49111,260.86657 263.91734,260.37521 C 264.28123,259.97168 264.28263,259.47692 264.3899,258.98318 C 264.48152,258.51166 264.35881,258.0645 264.30222,257.60398 C 264.17105,257.16424 264.02655,256.72956 263.89151,256.29182 C 263.75453,255.93964 263.47085,255.6922 263.24884,255.40029 C 262.96675,255.25647 262.81208,254.97365 262.59969,254.76618 L 263.90124,254.00706 C 264.10975,254.20805 264.2818,254.46297 264.53944,254.62222 C 264.77056,254.92958 265.06449,255.1915 265.20636,255.56147 C 265.34323,256.00607 265.48769,256.44799 265.62745,256.89247 C 265.69068,257.36673 265.82147,257.82567 265.73318,258.31231 C 265.6381,258.82975 265.64584,259.34977 265.29461,259.78691 C 264.87304,260.25895 264.40831,260.69832 264.24163,261.32998 C 264.09413,261.90812 263.91144,262.47735 263.9422,263.08212 C 263.64071,263.33858 262.5795,264.997 262.42338,263.86378 C 262.44459,263.22226 262.43626,262.5728 262.61574,261.94524 C 262.77725,261.33964 262.95886,260.76861 262.82733,260.13272 C 262.71751,259.65014 262.67032,259.16669 262.30923,258.79034 C 262.09,258.47702 261.78549,258.22317 261.69392,257.82981 C 261.65397,257.34106 261.56376,256.85419 261.61579,256.3569 C 261.62316,255.87106 261.61524,255.38429 261.65719,254.89964 C 261.71808,254.68068 261.65388,254.27551 261.8626,254.16104 L 263.21521,253.47043 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6214" />
+      <path
+         d="M 262.67647,250.03715 C 262.79811,249.99392 262.8629,250.14282 262.94188,250.18758 L 261.65708,250.98622 C 261.59409,250.96965 261.53078,250.88923 261.44832,250.9313 L 262.67647,250.03715 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6216" />
+      <path
+         d="M 259.41404,267.69071 C 259.33207,267.97752 259.03063,268.15531 258.8279,268.36164 C 258.49089,268.60592 258.19602,268.89883 257.88841,269.17605 C 257.58094,269.51918 257.29355,269.88065 257.00017,270.23622 C 256.6583,270.54678 256.78936,270.95948 256.72584,271.31877 C 257.07494,271.59514 257.53901,271.58734 257.96175,271.66406 C 258.32602,271.8834 258.73198,271.98056 259.12886,272.11479 C 260.72414,272.02244 259.05723,272.54047 259.04775,272.54504 C 259.36401,272.12865 259.25231,271.6786 259.27439,271.20825 C 259.1744,270.69486 259.04109,270.18753 258.92638,269.67651 C 258.97483,269.20413 258.75712,268.80421 258.63438,268.40412 L 259.92482,267.62597 C 260.0649,268.05837 260.31499,268.45995 260.25089,268.97095 C 260.36291,269.48505 260.49345,269.99447 260.60223,270.50839 C 260.62141,271.01474 260.69507,271.48467 260.43151,271.95565 C 259.47671,272.58161 258.97232,273.26448 257.88616,272.96112 C 257.49636,272.82329 257.09864,272.71637 256.72929,272.52401 C 256.24881,272.4231 255.75506,272.44411 255.40562,272.04644 C 255.41888,271.61999 255.29106,271.219 255.61689,270.82755 C 255.91358,270.472 256.20246,270.11071 256.50086,269.75668 C 256.80333,269.46775 257.09104,269.16727 257.43086,268.91894 C 257.62643,268.73738 257.87022,268.52984 258.06143,268.38132 L 259.41404,267.69071 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6218" />
+      <path
+         d="M 244.65472,280.19115 C 244.27049,280.3609 243.88063,280.24553 243.48433,280.23274 C 242.99173,280.13949 242.48995,280.18006 241.99832,280.17569 C 241.97203,280.11886 242.12132,280.19824 242.18281,280.20951 C 241.84352,280.68859 241.79314,281.24541 241.69836,281.80304 C 241.65353,282.32148 241.66273,282.84223 241.66127,283.36198 C 241.645,283.85748 241.67812,284.35369 241.69313,284.84671 C 241.88504,285.30305 242.21047,285.2201 242.62687,285.32812 C 243.29924,285.36375 243.97313,285.352 244.64617,285.35014 C 245.47516,285.45456 246.10578,285.20479 246.8183,284.82942 C 245.76203,285.56134 247.02555,284.61956 247.33136,284.39549 C 247.93195,283.55589 248.98791,283.29882 249.84444,282.87127 C 250.33166,282.74079 250.71009,282.96742 251.15123,283.11235 C 251.5726,283.40539 251.92358,283.24865 252.33705,283.2416 C 250.20226,284.78182 251.78921,283.24229 252.2295,282.67588 C 252.65287,282.17005 253.16403,281.75303 253.65739,281.32012 C 254.0601,281.03922 254.19855,280.61682 254.42234,280.22287 C 254.5772,279.81678 254.35984,279.46928 254.28462,279.08874 C 254.07448,278.56743 254.11467,278.02809 254.11905,277.48073 C 254.11876,277.01793 253.745,276.90974 253.48686,276.635 C 253.1438,276.41083 252.73292,276.38098 252.34338,276.29692 C 251.96131,276.11102 251.85243,275.72368 251.67213,275.36951 C 251.41254,275.3527 252.0618,275.01274 252.29662,274.90058 C 252.02602,275.24857 251.82281,275.63762 251.59937,276.0155 C 251.14036,276.81919 249.97486,276.92944 249.33272,277.18829 C 248.89259,277.0357 248.63203,276.63487 248.32068,276.31168 C 248.01202,275.92095 248.02835,275.45003 247.9467,274.98901 C 248.14201,274.38457 247.4382,274.66168 247.30677,274.57707 C 247.64876,274.58042 248.55476,273.43577 248.04782,274.75594 C 247.99722,275.24368 247.64241,275.44942 247.3373,275.76912 C 246.48628,276.42504 245.89851,276.59339 244.98913,276.77546 C 244.92713,276.80005 244.86514,276.82465 244.80315,276.84924 C 245.17969,276.63625 245.55226,276.41603 245.93278,276.21025 C 246.19191,276.07012 245.5311,276.64181 245.33027,276.85759 C 245.09853,277.28057 244.76499,277.62859 244.46325,277.99864 C 244.43986,277.98304 244.22303,278.29524 244.21866,278.30063 L 242.84008,278.90554 C 242.91824,278.79616 242.96279,278.66266 243.07456,278.5774 C 243.38034,278.2173 243.72794,277.88517 243.95636,277.46361 C 244.56965,276.69968 245.02347,276.10363 246.17603,275.84859 C 246.83303,275.72077 248.21639,275.24277 245.94049,276.32787 C 246.24997,276.04969 246.61133,275.8632 246.69891,275.41898 C 246.98891,274.40568 247.09438,274.1162 248.50821,273.66514 C 248.87123,273.8685 249.2299,273.63138 249.27936,274.29595 C 249.34887,274.72795 249.32418,275.16888 249.60964,275.53612 C 249.90469,275.83725 250.14043,276.21413 250.56993,276.32805 C 250.45302,276.42608 250.1166,276.73648 250.22591,276.63 C 250.44679,276.24381 250.65993,275.85679 250.91228,275.49007 C 251.59797,275.02363 252.22462,274.03665 252.97172,274.60691 C 253.15439,274.91535 253.20996,275.30706 253.58154,275.44138 C 253.98753,275.53757 254.4112,275.56374 254.75792,275.82556 C 255.07211,276.13254 255.41014,276.29663 255.45355,276.79717 C 255.44314,277.32614 255.39924,277.84811 255.59874,278.35299 C 255.70781,278.76168 255.9023,279.13691 255.78034,279.57675 C 255.5713,280.00786 255.46646,280.44594 255.04425,280.75502 C 254.54965,281.1837 254.04202,281.60011 253.60141,282.08769 C 252.85564,283.05771 252.43918,283.66522 251.15177,284.16876 C 250.73046,284.13191 250.30875,284.22091 249.9018,283.95255 C 249.47298,283.82916 249.11821,283.62689 248.65179,283.78242 C 248.67434,283.79834 248.73734,283.80916 248.71943,283.83019 C 246.1947,285.75808 247.76429,284.353 245.65887,285.76288 C 244.93092,286.11335 244.2687,286.32495 243.44169,286.22783 C 242.7624,286.23067 242.0815,286.24828 241.40348,286.19816 C 240.93323,286.03346 240.57005,286.09684 240.36371,285.54867 C 240.34522,285.05003 240.30332,284.54713 240.32467,284.04486 C 240.32539,283.5202 240.31663,282.99475 240.35594,282.47109 C 240.44291,281.89468 240.48898,281.3162 240.80614,280.80538 C 241.41713,280.05359 242.17279,279.38571 243.20491,279.27839 C 243.70502,279.29508 244.20988,279.27936 244.70792,279.36118 C 245.09412,279.35244 245.47902,279.46011 245.83788,279.24278 L 244.65472,280.19115 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6220" />
+      <path
+         d="M 255.29031,282.22416 C 255.6168,281.63023 256.02223,281.08518 256.40703,280.529 C 256.86499,280.0228 257.04886,279.42122 257.24534,278.79388 C 257.29665,278.28442 257.33769,277.77499 257.38612,277.26579 C 257.40105,276.84093 257.54893,276.4375 257.6346,276.03293 C 259.27022,274.99543 259.03917,275.12205 259.14579,276.24417 C 259.13941,276.73845 259.16743,277.23356 259.1814,277.72563 C 259.29244,278.29907 259.32664,278.88168 259.37452,279.4623 C 259.44718,279.98416 259.1664,280.23531 258.93122,280.62556 C 258.32242,281.29714 257.37374,281.50799 256.60995,281.8653 C 256.52897,281.8293 256.78513,281.83867 256.87271,281.82536 C 256.69641,282.05822 256.51941,282.29045 256.3428,282.52295 L 254.95825,283.11174 C 255.13403,282.87813 255.33584,282.66149 255.48719,282.40874 C 256.217,281.9061 256.8416,281.07323 257.81067,280.95914 C 257.716,281.03413 257.44737,281.27766 257.53718,281.19688 C 257.75299,280.83928 258.1364,280.67547 258.04438,280.15141 C 257.99981,279.57448 257.9719,278.99488 257.85183,278.4267 C 257.8346,277.93103 257.79793,277.43135 257.80957,276.93239 C 258.76769,275.75639 255.29746,276.73794 259.02705,275.43805 C 258.93052,275.78757 258.70016,276.18572 258.73366,276.60497 C 258.688,277.11548 258.62146,277.62452 258.59424,278.1383 C 258.40992,278.79056 258.24429,279.41426 257.77047,279.93847 C 257.39168,280.48289 256.99042,281.01754 256.67072,281.59833 L 255.29031,282.22416 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6222" />
+      <path
+         d="M 206.40805,246.37554 C 206.42984,246.64028 206.37796,246.89972 206.35725,247.16034 C 206.31679,247.45417 206.08304,247.6233 205.9298,247.84302 C 205.64965,248.00094 205.64526,248.25609 205.5434,248.51888 C 205.46887,248.82886 205.53097,249.13921 205.54903,249.44435 C 205.73818,249.45384 205.96649,249.41191 206.16525,249.38395 C 206.51657,249.42113 206.86778,249.45791 207.21954,249.49114 C 207.33387,249.53742 206.97267,249.50285 206.85091,249.52243 C 206.9098,249.17614 206.89592,248.82332 206.89842,248.47352 C 206.92902,248.0832 206.87157,247.69759 206.84462,247.31221 C 206.80279,247.03197 206.59636,246.85614 206.46131,246.63493 C 206.43037,246.60914 206.39944,246.58336 206.36849,246.55758 L 207.27245,245.99315 C 207.30575,246.02277 207.33903,246.0524 207.37232,246.08202 C 207.52674,246.31812 207.72416,246.51638 207.78193,246.81173 C 207.822,247.20396 207.86675,247.59357 207.84201,247.99131 C 207.84191,248.34756 207.85482,248.70563 207.80885,249.05991 C 207.44472,249.37991 207.15187,250.27476 206.35642,250.10924 C 206.0091,250.07433 205.66125,250.02611 205.31239,250.01935 C 205.05837,250.04212 204.81145,250.1457 204.61231,249.95505 C 204.58821,249.63521 204.51667,249.31322 204.5886,248.98669 C 204.6738,248.70429 204.6646,248.42194 204.94046,248.23783 C 205.09948,248.04377 205.34588,247.90655 205.40036,247.62504 C 205.42411,247.37214 205.49169,247.12277 205.45161,246.86388 L 206.40805,246.37554 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6251" />
+      <path
+         d="M 202.06959,247.81215 C 202.18709,247.69305 202.4043,247.82199 202.57097,247.8095 C 202.36452,248.15214 202.85974,248.12081 202.96139,248.23037 C 202.85636,248.38848 203.65107,247.91619 203.48404,248.00596 C 203.21737,248.15314 202.9507,248.3003 202.68403,248.44747 C 202.71308,248.41276 202.74213,248.37804 202.77119,248.34333 C 202.87175,248.22415 202.86643,248.06143 202.91312,247.92327 L 203.86803,247.45672 C 203.82812,247.6097 203.8333,247.77879 203.74737,247.9193 C 203.24682,248.26614 202.74479,248.78501 202.08695,248.83696 C 201.79067,248.64659 201.59528,248.69241 201.60832,248.26096 C 201.93964,247.63904 201.95076,247.46224 202.93802,247.17989 L 202.06959,247.81215 z "
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.78131109;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path6253" />
+      <path
+         d="M 329.82764,76.088444 L 341.1875,76.088444 L 356.01172,97.868229 L 356.01172,76.088444 L 367.479,76.088444 L 367.479,115.45856 L 356.01172,115.45856 L 341.26807,93.839909 L 341.26807,115.45856 L 329.82764,115.45856 L 329.82764,76.088444 z "
+         transform="matrix(0.7095522,0,0,0.7110141,-35.152043,-14.099956)"
+         style="font-size:55px;font-family:Arial Black"
+         id="flowRoot6364" />
+      <path
+         d="M 142.82761,276.14153 L 142.82761,251.42501 L 113.05308,263.5024 L 142.82761,276.14153 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.76694417px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1891" />
+      <path
+         d="M 282.00309,274.79688 L 282.00309,250.08146 L 311.81543,262.15832 L 282.00309,274.79688 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.76802802px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1893" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="matrix(0.7095522,0,0,0.7110141,84.068549,50.679479)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_30.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_30.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_30.svg	(revision 38262)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.043913,0,0,1.0288552,-185.57267,-259.23818)"
+       id="g2314">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(227.4542,205.0977)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2055" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(47.70264,37.89736)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2063" />
+      <g
+         transform="matrix(1.266604,0,0,1.156406,-28.30399,-130.7979)"
+         id="g4734">
+        <g
+           id="g3828">
+          <path
+             d="M 405.07117 505.36459 A 28.284271 39.901024 0 1 1  348.50262,505.36459 A 28.284271 39.901024 0 1 1  405.07117 505.36459 z"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:none;stroke-width:10.64999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2034" />
+          <path
+             d="M 391.93919 594.76306 A 43.941635 87.88327 0 1 1  304.05592,594.76306 A 43.941635 87.88327 0 1 1  391.93919 594.76306 z"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:none;stroke-width:10.64999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2036" />
+          <path
+             d="M 331.33003 377.58029 A 33.335033 33.335033 0 1 1  264.65996,377.58029 A 33.335033 33.335033 0 1 1  331.33003 377.58029 z"
+             transform="matrix(0.471179,0,0,0.592392,190.4158,324.1156)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:31.93136787;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2038" />
+          <path
+             d="M 308.55142,531.85967 C 322.31437,522.41867 336.43486,515.4482 353.93909,531.85967 L 331.13438,420.43149 L 308.55142,531.85967 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.27360439px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path2040" />
+          <path
+             d="M 354.02387,564.30279 C 340.26092,573.7438 326.14043,580.71427 308.6362,564.30279 L 331.44091,675.73097 L 354.02387,564.30279 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.27360439px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3820" />
+          <path
+             d="M 343.80124,525.60223 C 353.24224,539.36518 360.21271,553.48567 343.80124,570.9899 L 455.22942,548.18519 L 343.80124,525.60223 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.27360439px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3822" />
+          <path
+             d="M 317.34358,570.9899 C 307.90256,557.22696 300.9321,543.10647 317.34358,525.60224 L 205.9154,548.40695 L 317.34358,570.9899 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.27360439px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3824" />
+        </g>
+        <path
+           d="M 610.13216 485.6666 A 69.19545 73.741135 0 1 1  471.74126,485.6666 A 69.19545 73.741135 0 1 1  610.13216 485.6666 z"
+           transform="translate(-209.1016,61.66945)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.56999993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3837" />
+        <path
+           d="M 610.13216 485.6666 A 69.19545 73.741135 0 1 1  471.74126,485.6666 A 69.19545 73.741135 0 1 1  610.13216 485.6666 z"
+           transform="matrix(1.172345,0,0,1.133665,-302.6838,-3.141892)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.56999993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4724" />
+        <path
+           d="M 450.35713 472.18362 A 2.3214285 2.3214285 0 1 1  445.71428,472.18362 A 2.3214285 2.3214285 0 1 1  450.35713 472.18362 z"
+           transform="matrix(0.449919,-0.449918,1.088359,1.088359,-440.4914,182.7925)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.56999993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4726" />
+        <path
+           d="M 450.35713 472.18362 A 2.3214285 2.3214285 0 1 1  445.71428,472.18362 A 2.3214285 2.3214285 0 1 1  450.35713 472.18362 z"
+           transform="matrix(0.449919,-0.449918,1.088359,1.088359,-333.4851,293.2862)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.56999993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4728" />
+        <path
+           d="M 450.35713 472.18362 A 2.3214285 2.3214285 0 1 1  445.71428,472.18362 A 2.3214285 2.3214285 0 1 1  450.35713 472.18362 z"
+           transform="matrix(0.449918,0.449919,-1.088359,1.088359,592.0759,-111.6229)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.56999993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4730" />
+        <path
+           d="M 450.35713 472.18362 A 2.3214285 2.3214285 0 1 1  445.71428,472.18362 A 2.3214285 2.3214285 0 1 1  450.35713 472.18362 z"
+           transform="matrix(-0.449919,-0.449918,-1.088359,1.088359,1100.485,179.7862)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.56999993;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4732" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_13.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_13.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_13.svg	(revision 38262)
@@ -0,0 +1,1223 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <rect
+       width="2.1465743"
+       height="0"
+       x="-701.34082"
+       y="405.20447"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1904" />
+    <g
+       transform="matrix(0.8259067,0,0,0.743329,49.011271,33.101891)"
+       id="g3515">
+      <path
+         d="M 329.82764,76.088444 L 341.1875,76.088444 L 356.01172,97.868229 L 356.01172,76.088444 L 367.479,76.088444 L 367.479,115.45856 L 356.01172,115.45856 L 341.26807,93.839909 L 341.26807,115.45856 L 329.82764,115.45856 L 329.82764,76.088444 z "
+         transform="translate(-151.93179,-75.1349)"
+         style="font-size:55px;font-family:Arial Black"
+         id="flowRoot6364" />
+      <path
+         d="M 123.50569,315.33198 L 196.52259,71.35588 L 268.62686,315.33198 L 195.6098,559.30806 L 123.50569,315.33198 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:18.78049088px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3529" />
+      <path
+         d="M 495 441.29074 A 62.5 32.5 0 1 1  370,441.29074 A 62.5 32.5 0 1 1  495 441.29074 z"
+         transform="matrix(1.334562,0,0,1.792097,-382.27499,-474.3921)"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:8.13799953;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path3531" />
+      <path
+         d="M 193.94947,389.16064 L 197.65336,523.97327 L 155.98161,381.93853 C 168.27305,383.6378 165.12331,386.93296 193.94947,389.16064 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.6665653;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path4418" />
+      <path
+         d="M 199.5998,248.1647 L 195.25092,109.72055 L 237.90971,255.86829 C 225.61827,254.16902 228.42595,250.39238 199.5998,248.1647 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.6665653;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path5305" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(4.298733,10.8335)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <g
+         transform="translate(-40.263487,-200)"
+         id="g2457">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2433" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2435" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2437" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2439" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2441" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2443" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2445" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2447" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2449" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2451" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2453" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2455" />
+      </g>
+      <path
+         d="M 149.73651,307.36218 L 149.73651,312.36218 L 154.73651,312.36218 L 154.73651,307.36218 L 149.73651,307.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2473" />
+      <g
+         transform="translate(-20.263487,-220)"
+         id="g2477">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2479" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2481" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2483" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2485" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2487" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2489" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2491" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2493" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2495" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2497" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2499" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2501" />
+      </g>
+      <g
+         transform="translate(-0.263487,-240)"
+         id="g2503">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2505" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2507" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2509" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2511" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2513" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2515" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2517" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2519" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2521" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2523" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2525" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2527" />
+      </g>
+      <g
+         transform="translate(-30.263487,-240)"
+         id="g2529">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2531" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2533" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2535" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2537" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2539" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2541" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2543" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2545" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2547" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2549" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2551" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2553" />
+      </g>
+      <g
+         transform="translate(9.736513,-220)"
+         id="g2555">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2557" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2559" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2561" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2563" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2565" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2567" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2569" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2571" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2573" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2575" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2577" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2579" />
+      </g>
+      <g
+         transform="translate(29.736513,-240)"
+         id="g2581">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2583" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2585" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2587" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2589" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2591" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2593" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2595" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2597" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2599" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2601" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2603" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2605" />
+      </g>
+      <g
+         transform="translate(-0.263487,-259.22097)"
+         id="g2607">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2609" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2611" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2613" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2615" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2617" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2619" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2621" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2623" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2625" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2627" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2629" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2631" />
+      </g>
+      <g
+         transform="translate(-30.263487,-259.10715)"
+         id="g2633">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2635" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2637" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2639" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2641" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2643" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2645" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2647" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2649" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2651" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2653" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2655" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2657" />
+      </g>
+      <g
+         transform="translate(-50.263487,-220)"
+         id="g2659">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2661" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2663" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2665" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2667" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2669" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2671" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2673" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2675" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2677" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2679" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2681" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2683" />
+      </g>
+      <g
+         transform="translate(39.736513,-220)"
+         id="g2685">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2687" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2689" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2691" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2693" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2695" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2697" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2699" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2701" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2703" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2705" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2707" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2709" />
+      </g>
+      <g
+         transform="translate(29.736513,-258.75001)"
+         id="g2711">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2713" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2715" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2717" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2719" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2721" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2723" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2725" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2727" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2729" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2731" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2733" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2735" />
+      </g>
+      <g
+         transform="matrix(1,0,0,0.955357,-0.263487,-253.91242)"
+         id="g2737">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2739" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2741" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2743" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2745" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2747" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2749" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2751" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2753" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2755" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2757" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2759" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2761" />
+      </g>
+      <g
+         transform="matrix(1,0,0,0.955357,-20.263487,-253.82305)"
+         id="g2763">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2765" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2767" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2769" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2771" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2773" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2775" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2777" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2779" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2781" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2783" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2785" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2787" />
+      </g>
+      <g
+         transform="matrix(1,0,0,0.955357,-10.263487,-176.23375)"
+         id="g2789">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2791" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2793" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2795" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2797" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2799" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2801" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2803" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2805" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2807" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2809" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2811" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2813" />
+      </g>
+      <g
+         transform="matrix(1,0,0,0.955357,19.736513,-176.68019)"
+         id="g2815">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2817" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2819" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2821" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2823" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2825" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2827" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2829" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2831" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2833" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2835" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2837" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2839" />
+      </g>
+      <g
+         transform="matrix(1,0,0,0.955357,-30.263487,-157.03733)"
+         id="g2841">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2843" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2845" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2847" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2849" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2851" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2853" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2855" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2857" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2859" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2861" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2863" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2865" />
+      </g>
+      <g
+         transform="matrix(1,0,0,0.955357,-0.263487,-157.2159)"
+         id="g2867">
+        <path
+           d="M 190,547.36218 L 190,552.36218 L 195,552.36218 L 195,547.36218 L 190,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2869" />
+        <path
+           d="M 205,542.36218 L 205,547.36218 L 210,547.36218 L 210,542.36218 L 205,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2871" />
+        <path
+           d="M 190,537.36218 L 190,542.36218 L 195,542.36218 L 195,537.36218 L 190,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2873" />
+        <path
+           d="M 200,537.36218 L 200,542.36218 L 205,542.36218 L 205,537.36218 L 200,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2875" />
+        <path
+           d="M 195,542.36218 L 195,547.36218 L 200,547.36218 L 200,542.36218 L 195,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2877" />
+        <path
+           d="M 200,547.36218 L 200,552.36218 L 205,552.36218 L 205,547.36218 L 200,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2879" />
+        <path
+           d="M 210,547.36218 L 210,552.36218 L 215,552.36218 L 215,547.36218 L 210,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2881" />
+        <path
+           d="M 210,537.36218 L 210,542.36218 L 215,542.36218 L 215,537.36218 L 210,537.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2883" />
+        <path
+           d="M 205,532.36218 L 205,537.36218 L 210,537.36218 L 210,532.36218 L 205,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2885" />
+        <path
+           d="M 195,532.36218 L 195,537.36218 L 200,537.36218 L 200,532.36218 L 195,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2887" />
+        <path
+           d="M 215,542.36218 L 215,547.36218 L 220,547.36218 L 220,542.36218 L 215,542.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2889" />
+        <path
+           d="M 215,532.36218 L 215,537.36218 L 220,537.36218 L 220,532.36218 L 215,532.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2891" />
+      </g>
+      <path
+         d="M 139.73651,307.36218 L 139.73651,312.36218 L 144.73651,312.36218 L 144.73651,307.36218 L 139.73651,307.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2893" />
+      <path
+         d="M 154.73651,302.36218 L 154.73651,307.36218 L 159.73651,307.36218 L 159.73651,302.36218 L 154.73651,302.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2895" />
+      <path
+         d="M 229.73651,355.75503 L 229.73651,360.75503 L 234.73651,360.75503 L 234.73651,355.75503 L 229.73651,355.75503 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2897" />
+      <path
+         d="M 219.73651,355.75503 L 219.73651,360.75503 L 224.73651,360.75503 L 224.73651,355.75503 L 219.73651,355.75503 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2899" />
+      <path
+         d="M 234.73651,350.57646 L 234.73651,355.57646 L 239.73651,355.57646 L 239.73651,350.57646 L 234.73651,350.57646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2901" />
+      <path
+         d="M 224.73651,350.57646 L 224.73651,355.57646 L 229.73651,355.57646 L 229.73651,350.57646 L 224.73651,350.57646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2903" />
+      <path
+         d="M 234.73651,360.57646 L 234.73651,365.57646 L 239.73651,365.57646 L 239.73651,360.57646 L 234.73651,360.57646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2905" />
+      <path
+         d="M 224.73651,360.57646 L 224.73651,365.57646 L 229.73651,365.57646 L 229.73651,360.57646 L 224.73651,360.57646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2907" />
+      <path
+         d="M 249.73651,345.9336 L 249.73651,350.9336 L 254.73651,350.9336 L 254.73651,345.9336 L 249.73651,345.9336 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2909" />
+      <path
+         d="M 239.73651,345.9336 L 239.73651,350.9336 L 244.73651,350.9336 L 244.73651,345.9336 L 239.73651,345.9336 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2911" />
+      <path
+         d="M 249.73651,336.46932 L 249.73651,341.46932 L 254.73651,341.46932 L 254.73651,336.46932 L 249.73651,336.46932 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2913" />
+      <path
+         d="M 239.73651,336.46932 L 239.73651,341.46932 L 244.73651,341.46932 L 244.73651,336.46932 L 239.73651,336.46932 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2915" />
+      <path
+         d="M 254.73651,332.36218 L 254.73651,337.36218 L 259.73651,337.36218 L 259.73651,332.36218 L 254.73651,332.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2917" />
+      <path
+         d="M 244.73651,332.36218 L 244.73651,337.36218 L 249.73651,337.36218 L 249.73651,332.36218 L 244.73651,332.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2919" />
+      <path
+         d="M 254.73651,341.64789 L 254.73651,346.64789 L 259.73651,346.64789 L 259.73651,341.64789 L 254.73651,341.64789 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2921" />
+      <path
+         d="M 244.73651,341.64789 L 244.73651,346.64789 L 249.73651,346.64789 L 249.73651,341.64789 L 244.73651,341.64789 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2923" />
+      <path
+         d="M 249.2008,354.86217 L 249.2008,359.86217 L 254.2008,359.86217 L 254.2008,354.86217 L 249.2008,354.86217 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2925" />
+      <path
+         d="M 239.2008,354.86217 L 239.2008,359.86217 L 244.2008,359.86217 L 244.2008,354.86217 L 239.2008,354.86217 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2927" />
+      <path
+         d="M 254.2008,350.39789 L 254.2008,355.39789 L 259.2008,355.39789 L 259.2008,350.39789 L 254.2008,350.39789 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2929" />
+      <path
+         d="M 244.2008,350.39789 L 244.2008,355.39789 L 249.2008,355.39789 L 249.2008,350.39789 L 244.2008,350.39789 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2931" />
+      <path
+         d="M 259.73651,307.36218 L 259.73651,312.36218 L 264.73651,312.36218 L 264.73651,307.36218 L 259.73651,307.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2933" />
+      <path
+         d="M 249.73651,307.36218 L 249.73651,312.36218 L 254.73651,312.36218 L 254.73651,307.36218 L 249.73651,307.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2935" />
+      <path
+         d="M 259.73651,297.36218 L 259.73651,302.36218 L 264.73651,302.36218 L 264.73651,297.36218 L 259.73651,297.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2937" />
+      <path
+         d="M 249.73651,297.36218 L 249.73651,302.36218 L 254.73651,302.36218 L 254.73651,297.36218 L 249.73651,297.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2939" />
+      <path
+         d="M 229.73651,268.61217 L 229.73651,273.61217 L 234.73651,273.61217 L 234.73651,268.61217 L 229.73651,268.61217 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2941" />
+      <path
+         d="M 219.73651,268.61217 L 219.73651,273.61217 L 224.73651,273.61217 L 224.73651,268.61217 L 219.73651,268.61217 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2943" />
+      <path
+         d="M 154.73651,292.89789 L 154.73651,297.89789 L 159.73651,297.89789 L 159.73651,292.89789 L 154.73651,292.89789 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2945" />
+      <path
+         d="M 144.73651,292.89789 L 144.73651,297.89789 L 149.73651,297.89789 L 149.73651,292.89789 L 144.73651,292.89789 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2947" />
+      <path
+         d="M 154.73651,282.36218 L 154.73651,287.36218 L 159.73651,287.36218 L 159.73651,282.36218 L 154.73651,282.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2949" />
+      <path
+         d="M 144.73651,282.36218 L 144.73651,287.36218 L 149.73651,287.36218 L 149.73651,282.36218 L 144.73651,282.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2951" />
+      <path
+         d="M 149.73651,288.07646 L 149.73651,293.07646 L 154.73651,293.07646 L 154.73651,288.07646 L 149.73651,288.07646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2953" />
+      <path
+         d="M 139.73651,288.07646 L 139.73651,293.07646 L 144.73651,293.07646 L 144.73651,288.07646 L 139.73651,288.07646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2955" />
+      <path
+         d="M 144.73651,302.36218 L 144.73651,307.36218 L 149.73651,307.36218 L 149.73651,302.36218 L 144.73651,302.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2957" />
+      <path
+         d="M 134.73651,302.36218 L 134.73651,307.36218 L 139.73651,307.36218 L 139.73651,302.36218 L 134.73651,302.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2959" />
+      <path
+         d="M 149.73651,297.36218 L 149.73651,302.36218 L 154.73651,302.36218 L 154.73651,297.36218 L 149.73651,297.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2961" />
+      <path
+         d="M 139.73651,297.36218 L 139.73651,302.36218 L 144.73651,302.36218 L 144.73651,297.36218 L 139.73651,297.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2963" />
+      <path
+         d="M 159.73651,268.07646 L 159.73651,273.07646 L 164.73651,273.07646 L 164.73651,268.07646 L 159.73651,268.07646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2965" />
+      <path
+         d="M 149.73651,268.07646 L 149.73651,273.07646 L 154.73651,273.07646 L 154.73651,268.07646 L 149.73651,268.07646 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2967" />
+      <path
+         d="M 154.73651,273.43361 L 154.73651,278.43361 L 159.73651,278.43361 L 159.73651,273.43361 L 154.73651,273.43361 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2969" />
+      <path
+         d="M 144.73651,273.43361 L 144.73651,278.43361 L 149.73651,278.43361 L 149.73651,273.43361 L 144.73651,273.43361 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2971" />
+      <path
+         d="M 149.73651,278.4336 L 149.73651,283.4336 L 154.73651,283.4336 L 154.73651,278.4336 L 149.73651,278.4336 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2973" />
+      <path
+         d="M 139.73651,278.4336 L 139.73651,283.4336 L 144.73651,283.4336 L 144.73651,278.4336 L 139.73651,278.4336 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2975" />
+      <path
+         d="M 144.73651,332.36218 L 144.73651,337.36218 L 149.73651,337.36218 L 149.73651,332.36218 L 144.73651,332.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2977" />
+      <path
+         d="M 134.73651,332.36218 L 134.73651,337.36218 L 139.73651,337.36218 L 139.73651,332.36218 L 134.73651,332.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2979" />
+      <path
+         d="M 154.73651,352.36218 L 154.73651,357.36218 L 159.73651,357.36218 L 159.73651,352.36218 L 154.73651,352.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2981" />
+      <path
+         d="M 144.73651,352.36218 L 144.73651,357.36218 L 149.73651,357.36218 L 149.73651,352.36218 L 144.73651,352.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2983" />
+      <path
+         d="M 149.73651,357.36218 L 149.73651,362.36218 L 154.73651,362.36218 L 154.73651,357.36218 L 149.73651,357.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2985" />
+      <path
+         d="M 139.73651,357.36218 L 139.73651,362.36218 L 144.73651,362.36218 L 144.73651,357.36218 L 139.73651,357.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2987" />
+      <path
+         d="M 144.73651,342.36218 L 144.73651,347.36218 L 149.73651,347.36218 L 149.73651,342.36218 L 144.73651,342.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2989" />
+      <path
+         d="M 134.73651,342.36218 L 134.73651,347.36218 L 139.73651,347.36218 L 139.73651,342.36218 L 134.73651,342.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2991" />
+      <path
+         d="M 139.73651,337.36218 L 139.73651,342.36218 L 144.73651,342.36218 L 144.73651,337.36218 L 139.73651,337.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2993" />
+      <path
+         d="M 129.73651,337.36218 L 129.73651,342.36218 L 134.73651,342.36218 L 134.73651,337.36218 L 129.73651,337.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2995" />
+      <path
+         d="M 134.73651,312.36218 L 134.73651,317.36218 L 139.73651,317.36218 L 139.73651,312.36218 L 134.73651,312.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2997" />
+      <path
+         d="M 124.73651,312.36218 L 124.73651,317.36218 L 129.73651,317.36218 L 129.73651,312.36218 L 124.73651,312.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2999" />
+      <path
+         d="M 134.73651,322.36218 L 134.73651,327.36218 L 139.73651,327.36218 L 139.73651,322.36218 L 134.73651,322.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3001" />
+      <path
+         d="M 124.73651,322.36218 L 124.73651,327.36218 L 129.73651,327.36218 L 129.73651,322.36218 L 124.73651,322.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3003" />
+      <path
+         d="M 139.73651,347.36218 L 139.73651,352.36218 L 144.73651,352.36218 L 144.73651,347.36218 L 139.73651,347.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3005" />
+      <path
+         d="M 154.55794,361.29074 L 154.55794,366.29074 L 159.55794,366.29074 L 159.55794,361.29074 L 154.55794,361.29074 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3007" />
+      <path
+         d="M 254.73651,302.36218 L 254.73651,307.36218 L 259.73651,307.36218 L 259.73651,302.36218 L 254.73651,302.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3009" />
+      <path
+         d="M 249.73651,287.89789 L 249.73651,292.89789 L 254.73651,292.89789 L 254.73651,287.89789 L 249.73651,287.89789 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3011" />
+      <path
+         d="M 130.27223,317.36218 L 130.27223,322.36218 L 135.27223,322.36218 L 135.27223,317.36218 L 130.27223,317.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3013" />
+      <path
+         d="M 164.73651,263.79075 L 164.73651,268.79075 L 169.73651,268.79075 L 169.73651,263.79075 L 164.73651,263.79075 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3015" />
+      <path
+         d="M 134.73651,292.36218 L 134.73651,297.36218 L 139.73651,297.36218 L 139.73651,292.36218 L 134.73651,292.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3017" />
+      <path
+         d="M 129.73651,307.36218 L 129.73651,312.36218 L 134.73651,312.36218 L 134.73651,307.36218 L 129.73651,307.36218 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path3019" />
+      <g
+         transform="translate(206.00461,-206.34937)"
+         id="g3918">
+        <path
+           d="M 71.92985,517.23305 L 120.9173,517.05448 L 69.786993,495.07775 L 71.92985,517.23305 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.36042655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3021" />
+        <path
+           d="M 71.889735,517.4223 L 120.23505,517.185 L 70.119824,537.91579 L 71.889735,517.4223 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5915302px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3023" />
+      </g>
+      <g
+         transform="matrix(-1,0,0,-1,181.59751,829.975)"
+         id="g3922">
+        <path
+           d="M 71.92985,517.23305 L 120.9173,517.05448 L 69.786993,495.07775 L 71.92985,517.23305 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.36042655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3924" />
+        <path
+           d="M 71.889735,517.4223 L 120.23505,517.185 L 70.119824,537.91579 L 71.889735,517.4223 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.5915302px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3926" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_31.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_31.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_31.svg	(revision 38262)
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.9454976,0,0,0.9070214,-102.31787,-192.66026)"
+       id="g2345">
+      <g
+         transform="matrix(0,0.937717,-0.916227,0,754.273,22.3902)"
+         id="g5068">
+        <path
+           d="M 507.23536,651.86218 L 464.02108,609.36218 L 495.44965,626.1479 L 508.30679,504.36218 L 507.23536,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5062" />
+        <path
+           d="M 508.10267,651.86218 L 551.31695,609.36218 L 519.88838,626.1479 L 507.03124,504.36218 L 508.10267,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5066" />
+      </g>
+      <g
+         transform="matrix(0.916227,0,0,0.937717,-131.357,66.4309)"
+         id="g5074">
+        <path
+           d="M 507.23536,651.86218 L 464.02108,609.36218 L 495.44965,626.1479 L 508.30679,504.36218 L 507.23536,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5076" />
+        <path
+           d="M 508.10267,651.86218 L 551.31695,609.36218 L 519.88838,626.1479 L 507.03124,504.36218 L 508.10267,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5078" />
+      </g>
+      <g
+         transform="matrix(0,-0.937717,0.916227,0,-87.6122,975.339)"
+         id="g5080">
+        <path
+           d="M 507.23536,651.86218 L 464.02108,609.36218 L 495.44965,626.1479 L 508.30679,506.70096 L 507.23536,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5082" />
+        <path
+           d="M 508.10267,651.86218 L 551.31695,609.36218 L 519.88838,626.1479 L 507.03124,506.31117 L 508.10267,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5084" />
+      </g>
+      <g
+         transform="matrix(-0.916227,0,0,-0.937717,799.8488,924.885)"
+         id="g5086">
+        <path
+           d="M 507.23536,651.86218 L 464.02108,609.36218 L 495.44965,626.1479 L 508.30679,504.36218 L 507.23536,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5088" />
+        <path
+           d="M 508.10267,651.86218 L 551.31695,609.36218 L 519.88838,626.1479 L 507.03124,504.36218 L 508.10267,651.86218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path5090" />
+      </g>
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-9.9544,-14.3312)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot6986" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(190.4144,201.8415)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <rect
+         width="72.688103"
+         height="72.920319"
+         x="298.56589"
+         y="459.87506"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:11.47000217;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect2190" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_32.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_32.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_32.svg	(revision 38262)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.692892,0,0,0.6133452,-55.846424,-1.9260903)"
+       id="g2354">
+      <g
+         transform="matrix(1.07605,0,0,1.112571,-62.456755,-109.20897)"
+         id="g7113">
+        <path
+           d="M 390.49064,357.67909 L 424.12782,286.1908 L 455.20366,357.67909 L 455.20366,572.14396 L 424.12782,643.63225 L 390.49064,572.14396 L 390.49064,357.67909 L 390.49064,357.67909 L 390.49064,357.67909 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:68.01634216px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path7090" />
+        <path
+           d="M 327.05829,496.34921 L 262.34527,459.19032 L 327.05829,424.86092 L 521.19735,424.86092 L 585.91037,459.19032 L 521.19735,496.34921 L 327.05829,496.34921 L 327.05829,496.34921 L 327.05829,496.34921 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:68.01634216px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path7092" />
+        <path
+           d="M 378.27824,924.60277 L 378.79803,923.60277 L 379.27824,924.60277 L 379.27824,927.60277 L 378.79803,928.60277 L 378.27824,927.60277 L 378.27824,924.60277 L 378.27824,924.60277 L 378.27824,924.60277 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path7098" />
+        <path
+           d="M 141.1569,893.80779 L 141.67669,892.80779 L 142.1569,893.80779 L 142.1569,896.80779 L 141.67669,897.80779 L 141.1569,896.80779 L 141.1569,893.80779 L 141.1569,893.80779 L 141.1569,893.80779 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path7100" />
+        <rect
+           width="136.26778"
+           height="50.04184"
+           x="321.80753"
+           y="448.78058"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:7.0999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect7106" />
+        <rect
+           width="72.368202"
+           height="44.652721"
+           x="453.45605"
+           y="438.00235"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:7.0999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect7111" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="matrix(1.07605,0,0,1.112571,303.90437,70.026496)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(1.07605,0,0,1.112571,23.822763,-236.61482)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_14.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_14.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_14.svg	(revision 38262)
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.2048906,0,0,1.2187584,-140.60253,-383.18666)"
+       id="g2615">
+      <path
+         d="M 278.25058,373.19073 L 289.81699,373.19073 L 304.91074,395.36652 L 304.91074,373.19073 L 316.58652,373.19073 L 316.58652,413.27667 L 304.91074,413.27667 L 289.89902,391.26495 L 289.89902,413.27667 L 278.25058,413.27667 L 278.25058,373.19073 z "
+         style="font-size:56px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black"
+         id="text3823" />
+      <path
+         d="M 414.24942,509.00494 L 447.44473,509.00494 L 447.44473,517.56354 L 426.66348,517.56354 L 426.66348,523.93463 L 445.94083,523.93463 L 445.94083,532.11041 L 426.66348,532.11041 L 426.66348,540.01276 L 448.0463,540.01276 L 448.0463,549.09088 L 414.24942,549.09088 L 414.24942,509.00494 z "
+         style="font-size:56px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black"
+         id="text3831" />
+      <g
+         id="g8432">
+        <path
+           d="M 545.48238 517.99152 A 79.802048 79.802048 0 1 1  385.87828,517.99152 A 79.802048 79.802048 0 1 1  545.48238 517.99152 z"
+           transform="matrix(0.759387,0,0,0.722648,-57.16595,152.0945)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:26.54899979;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path2209" />
+        <path
+           d="M 545.48238 517.99152 A 79.802048 79.802048 0 1 1  385.87828,517.99152 A 79.802048 79.802048 0 1 1  545.48238 517.99152 z"
+           transform="matrix(0.184375,0,0,0.165506,211.2137,441.605)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:70.65251923;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3098" />
+        <path
+           d="M 296.73231,544.41218 L 296.73231,584.06066 L 296.73231,584.06066"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5759" />
+        <path
+           d="M 296.42857,468.60937 L 296.42857,508.25785 L 296.42857,508.25785"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8418" />
+        <path
+           d="M 354.4671,527.71932 L 314.81862,527.71932 L 314.81862,527.71932"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8420" />
+        <path
+           d="M 277.39848,526.6479 L 237.75,526.6479 L 237.75,526.6479"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8422" />
+        <path
+           d="M 257.75,487.63005 L 285.7857,515.66575 L 285.7857,515.66575"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8424" />
+        <path
+           d="M 309.2143,537.98719 L 337.25,566.02289 L 337.25,566.02289"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8426" />
+        <path
+           d="M 285.7857,534.05862 L 257.75,562.09432 L 257.75,562.09432"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8428" />
+        <path
+           d="M 337.25,486.20148 L 309.2143,514.23718 L 309.2143,514.23718"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8430" />
+      </g>
+      <path
+         d="M 286.26606,459.20305 L 286.26606,430.25831 L 297.34173,415.78595 L 308.41739,430.25831 L 308.41739,459.20305 L 286.26606,459.20305 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.53212357px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path8446" />
+      <path
+         d="M 365.31685,518.62824 L 394.26158,518.62824 L 408.73394,529.70391 L 394.26158,540.77958 L 365.31685,540.77958 L 365.31685,518.62824 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.53212357px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path8450" />
+      <path
+         d="M 307.55545,589.72204 L 307.55545,618.66678 L 296.47977,633.13914 L 285.40411,618.66678 L 285.40411,589.72204 L 307.55545,589.72204 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.53212357px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path8452" />
+      <path
+         d="M 227.77969,537.65344 L 198.83494,537.65344 L 184.36259,526.57776 L 198.83494,515.50211 L 227.77969,515.50211 L 227.77969,537.65344 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.53212357px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path8454" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_50.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_50.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_50.svg	(revision 38262)
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-31.112698,-266.90636)"
+       id="g2400">
+      <g
+         transform="matrix(3.441086,0,0,3.232982,-957.2253,-1215.08)"
+         id="g6568">
+        <g
+           transform="matrix(0.35534,0,0,0.348629,244.3993,348.4684)"
+           id="g3649">
+          <path
+             d="M 352.14284 523.52289 A 7.5892859 7.5892859 0 1 1  336.96427,523.52289 A 7.5892859 7.5892859 0 1 1  352.14284 523.52289 z"
+             transform="translate(-39.25,7.02858)"
+             style="opacity:0.97000002;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.70000005;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1872" />
+          <path
+             d="M 363.0357 527.27289 A 17.857143 19.375 0 1 1  327.32141,527.27289 A 17.857143 19.375 0 1 1  363.0357 527.27289 z"
+             transform="matrix(0.695668,0,0,0.642091,65.42376,192.1552)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:9.30445576;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2760" />
+          <path
+             d="M 336.5 531.73718 A 30.875 30.875 0 1 1  274.75,531.73718 A 30.875 30.875 0 1 1  336.5 531.73718 z"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:8.44200039;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3647" />
+        </g>
+        <path
+           d="M 374.75 534.61218 A 21.25 21.25 0 1 1  332.25,534.61218 A 21.25 21.25 0 1 1  374.75 534.61218 z"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:8.44200039;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3654" />
+        <path
+           d="M 387.125 534.36218 A 34.3125 33.25 0 1 1  318.5,534.36218 A 34.3125 33.25 0 1 1  387.125 534.36218 z"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.10000002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4543" />
+        <path
+           d="M 378.52899,537.36218 L 386.59601,537.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.02857721px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4545" />
+        <path
+           d="M 328.48148,537.36218 L 319.01852,537.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.01835012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4547" />
+        <path
+           d="M 354.125,509.70385 L 354.125,500.77051"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.03279555px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4549" />
+        <path
+           d="M 354,560.11218 L 354.125,567.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4551" />
+        <path
+           d="M 371.22476,517.21065 L 377.40653,511.83065"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.1137265px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4553" />
+        <path
+           d="M 328.02107,511.50825 L 334.36909,518.31966"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.04214442px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4559" />
+        <path
+           d="M 369.00535,554.29431 L 374.96432,559.3265"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.07136142px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4561" />
+        <path
+           d="M 335.2848,551.98899 L 328.73664,557.41215"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.07683265px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4565" />
+        <g
+           transform="translate(-45.77614,-47.23058)"
+           id="g6353">
+          <path
+             d="M 394.7,548.46236 L 399.65581,548.02042 L 399.7,542.05438 L 394.7,548.46236 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4567" />
+          <path
+             d="M 404.80486,548.46894 L 399.76067,548.027 L 399.80486,542.06096 L 404.80486,548.46894 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5454" />
+        </g>
+        <g
+           transform="matrix(0,1,-1,0,935.2752,137.4873)"
+           id="g6357">
+          <path
+             d="M 394.7,548.46236 L 399.65581,548.02042 L 399.7,542.05438 L 394.7,548.46236 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6359" />
+          <path
+             d="M 404.80486,548.71894 L 399.76067,548.027 L 399.80486,542.06096 L 404.80486,548.71894 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6361" />
+        </g>
+        <g
+           transform="matrix(-1,0,0,-1,753.6594,1115.901)"
+           id="g6363">
+          <path
+             d="M 394.7,548.46236 L 399.65581,548.02042 L 399.7,542.05438 L 394.7,548.46236 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6365" />
+          <path
+             d="M 404.80486,548.46894 L 399.76067,548.027 L 399.80486,542.06096 L 404.80486,548.46894 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6367" />
+        </g>
+        <g
+           transform="matrix(0,-1,1,0,-229.8036,936.8154)"
+           id="g6369">
+          <path
+             d="M 394.95,548.64986 L 399.65581,548.02042 L 399.7,542.05438 L 394.95,548.64986 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6371" />
+          <path
+             d="M 404.80486,548.46894 L 399.76067,548.027 L 399.80486,542.06096 L 404.80486,548.46894 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.14;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6373" />
+        </g>
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(79.83724,224.2814)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-83.95703,65.86333)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="translate(-80.19434,368.4911)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1980" />
+      <path
+         d="M 323.43359,303.29417 C 323.43359,298.8645 324.92838,295.21412 327.91797,292.343 C 330.90754,289.47193 334.9453,288.03639 340.03125,288.03636 C 345.84633,288.03639 350.23955,289.72258 353.21094,293.09495 C 355.59892,295.81112 356.79293,299.15617 356.79297,303.13011 C 356.79293,307.59626 355.31182,311.25577 352.34961,314.10862 C 349.38734,316.96149 345.29034,318.38792 340.05859,318.38792 C 335.39191,318.38792 331.61848,317.20303 328.73828,314.83323 C 325.20182,311.89834 323.43359,308.05199 323.43359,303.29417 L 323.43359,303.29417 z M 334.58984,303.26683 C 334.58983,305.85538 335.11392,307.76944 336.16211,309.00901 C 337.21027,310.24861 338.52733,310.8684 340.11328,310.86839 C 341.71743,310.8684 343.03448,310.25772 344.06445,309.03636 C 345.09438,307.81501 345.60935,305.85538 345.60938,303.15745 C 345.60935,300.64184 345.08982,298.7688 344.05078,297.53831 C 343.0117,296.30786 341.72654,295.69263 340.19531,295.69261 C 338.5729,295.69263 337.23306,296.31698 336.17578,297.56566 C 335.11848,298.81437 334.58983,300.71476 334.58984,303.26683 L 334.58984,303.26683 z "
+         transform="matrix(1.1604724,0,0,1.6290247,-301.21997,28.288088)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1988" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_33.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_33.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_33.svg	(revision 38262)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-211.14286,-229.14286)"
+       id="g2296">
+      <path
+         d="M 420.81217,382.32553 L 441.5203,382.32553 L 441.26776,362.32553 L 430.28924,352.32553 L 420.28924,362.32553 L 420.81217,382.32553 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1940" />
+      <path
+         d="M 316.37247,500.749 L 316.37247,480.04087 L 296.37247,480.29341 L 286.37247,491.27193 L 296.37247,501.27193 L 316.37247,500.749 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1944" />
+      <path
+         d="M 444.69204,611.51947 L 423.98391,611.51947 L 424.23645,631.51947 L 435.21497,641.51947 L 445.21497,631.51947 L 444.69204,611.51947 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1946" />
+      <path
+         d="M 544.79656,480.91011 L 544.79656,501.61824 L 564.79656,501.3657 L 574.79656,490.38718 L 564.79656,480.38718 L 544.79656,480.91011 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1948" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(251.7385,195.8562)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(82.65034,32.49398)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 539.42146 493.74783 A 109.09647 109.09647 0 1 1  321.22851,493.74783 A 109.09647 109.09647 0 1 1  539.42146 493.74783 z"
+         transform="matrix(0.952336,0,0,0.956965,20.95538,24.29912)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:24.07065964;stroke-linejoin:round;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+         id="path2069" />
+      <rect
+         width="55.73521"
+         height="62.806278"
+         x="402.96243"
+         y="528.5097"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:6.93448257;stroke-linejoin:round;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+         id="rect2956" />
+      <rect
+         width="55.73521"
+         height="62.806278"
+         x="341.30261"
+         y="462.34467"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:6.93448257;stroke-linejoin:round;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+         id="rect3843" />
+      <rect
+         width="55.73521"
+         height="62.806278"
+         x="402.4574"
+         y="395.16953"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:6.93448257;stroke-linejoin:round;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+         id="rect3845" />
+      <rect
+         width="55.73521"
+         height="62.806278"
+         x="464.07666"
+         y="462.34467"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:6.93448257;stroke-linejoin:round;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+         id="rect3847" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_15.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_15.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_15.svg	(revision 38262)
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-84.852813,-216.17264)"
+       id="g2389">
+      <g
+         transform="matrix(1.571043,0,0,1.579954,-346.75734,-400.58831)"
+         id="g8708">
+        <g
+           id="g7798">
+          <g
+             transform="matrix(1.499409,0,0,1.417922,-191.9873,-156.6127)"
+             id="g6877">
+            <path
+               d="M 403.17712 540.59363 A 13.384521 13.384521 0 1 1  376.40808,540.59363 A 13.384521 13.384521 0 1 1  403.17712 540.59363 z"
+               transform="matrix(1.195693,0,0,1.190976,-72.34677,-122.1065)"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.92016244;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path4200" />
+            <g
+               id="g4214">
+              <g
+                 id="g4204">
+                <path
+                   d="M 393.94568,506.11758 L 393.94568,521.85051 L 408.92234,521.85051 C 407.80587,513.39838 405.95738,505.55212 393.94568,506.11758 z "
+                   style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.02334249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                   id="path4198" />
+                <path
+                   d="M 393.62106,506.22294 L 393.62106,521.83367 L 378.64056,521.83367 C 379.75731,513.44719 381.60628,505.66187 393.62106,506.22294 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.01949167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                   id="path4202" />
+              </g>
+              <g
+                 transform="matrix(-1,0,0,-1,787.6156,1044.094)"
+                 id="g4208">
+                <path
+                   d="M 393.94568,506.11758 L 393.94568,521.85051 L 408.92234,521.85051 C 407.80587,513.39838 405.95738,505.55212 393.94568,506.11758 z "
+                   style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.02334249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                   id="path4210" />
+                <path
+                   d="M 393.62106,506.22294 L 393.62106,521.83367 L 378.64056,521.83367 C 379.75731,513.44719 381.60628,505.66187 393.62106,506.22294 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.01949167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                   id="path4212" />
+              </g>
+            </g>
+          </g>
+          <g
+             transform="matrix(4.00614,0,0,4.277573,-1024.345,-1738.586)"
+             id="g7782">
+            <path
+               d="M 355.06313,536.94472 L 355.06313,516.77774 L 347.62119,527.39853 L 353.06313,525.82017 L 353.06313,537.36218 L 355.06313,536.94472 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path6889" />
+            <path
+               d="M 355.58824,536.74494 L 355.74052,517.57703 L 361.36875,526.7465 L 357.30349,526.11765 L 357.30349,537.20415 L 355.58824,536.74494 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88372129px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path6891" />
+          </g>
+          <g
+             transform="matrix(0,-4.00614,-4.277573,0,2719.64,2005.773)"
+             id="g7786">
+            <path
+               d="M 355.06313,536.94472 L 355.06313,516.77774 L 347.62119,527.39853 L 353.06313,525.82017 L 353.06313,537.36218 L 355.06313,536.94472 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path7788" />
+            <path
+               d="M 355.58824,536.74494 L 355.74052,517.57703 L 361.36875,526.7465 L 357.30349,526.11765 L 357.30349,537.20415 L 355.58824,536.74494 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.88372129px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path7790" />
+          </g>
+        </g>
+        <g
+           transform="matrix(1.903547,0,0,2.122449,-260.0025,-661.6547)"
+           id="g8704">
+          <path
+             d="M 341,597.05034 L 341,617.92407 L 345.91071,617.92407 L 345.91071,597.05034 L 341,597.05034 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7815" />
+          <path
+             d="M 345.5,597.45147 L 345.5,617.45147 L 350.5,617.45147 L 350.5,597.45147 L 345.5,597.45147 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path7817" />
+        </g>
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(136.65162,223.71949)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-64.517638,17.31039)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_34.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_34.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_34.svg	(revision 38262)
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.928007,0,0,0.8676816,-38.415215,-275.01597)"
+       id="g2285">
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-63.48761,108.459)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot5601" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(138.941,316.7704)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot5629" />
+      <path
+         d="M 411.42857 608.79077 A 130.71428 130.71428 0 1 1  150.00002,608.79077 A 130.71428 130.71428 0 1 1  411.42857 608.79077 z"
+         transform="translate(0,0.178571)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:14.19999981;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2031" />
+      <g
+         transform="matrix(1.922619,0,0,4.383232,-399.5132,-1999.594)"
+         id="g4708">
+        <g
+           id="g6484">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4710" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path4712" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0,1.922619,-4.383232,0,2888.717,-63.9146)"
+         id="g6512">
+        <g
+           id="g6514">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6516" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path6518" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0,-1.922619,4.383232,0,-2325.866,1284.001)"
+         id="g6520">
+        <g
+           id="g6522">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6524" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path6526" />
+        </g>
+      </g>
+      <g
+         transform="matrix(-1.922619,0,0,-4.383232,960.4984,3212.826)"
+         id="g6528">
+        <g
+           id="g6530">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6532" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path6534" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_16.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_16.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_16.svg	(revision 38262)
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-6.0609153,-299.00515)"
+       id="g2353">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(73.02687,329.2014)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-163.2756,98.48723)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 167.02003,489.46471 L 167.02003,580.04063 L 194.42177,580.04063 L 194.42177,489.46471 L 224.75941,498.03614 L 181.69953,421.27893 L 136.04684,499.46471 L 167.02003,489.46471 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.2525382;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path8017" />
+      <path
+         d="M 320.48079,610.40766 L 229.90487,610.40766 L 229.90487,637.8094 L 320.48079,637.8094 L 311.90936,668.14704 L 388.66657,625.08716 L 310.48079,579.43446 L 320.48079,610.40766 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5.2525382;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2035" />
+      <path
+         d="M 73.571428 526.29077 A 50.357143 50.357143 0 1 1  -27.142859,526.29077 A 50.357143 50.357143 0 1 1  73.571428 526.29077 z"
+         transform="matrix(0.933215,0,0,0.883569,158.3361,161.9905)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:12.30000019;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2037" />
+      <path
+         d="M 207.14286,595.21932 L 150.71429,656.6479"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2924" />
+      <path
+         d="M 150.37143,595.56218 L 206.8,656.99076"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2926" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_35.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_35.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_35.svg	(revision 38262)
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.9134585,0,0,0.914023,-41.303183,-208.6576)"
+       id="g2437">
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-60.39171,23.3712)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot5601" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(142.0369,231.6826)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot5629" />
+      <path
+         d="M 411.42857 608.79077 A 130.71428 130.71428 0 1 1  150.00002,608.79077 A 130.71428 130.71428 0 1 1  411.42857 608.79077 z"
+         transform="translate(3.0959,-84.909229)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:14.19999981;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2031" />
+      <g
+         transform="matrix(1.922619,0,0,4.383232,-396.4173,-2084.6818)"
+         id="g4708">
+        <g
+           id="g6484">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4710" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path4712" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0,1.922619,-4.383232,0,2891.8129,-149.0024)"
+         id="g6512">
+        <g
+           id="g6514">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6516" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path6518" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0,-1.922619,4.383232,0,-2322.7701,1198.9132)"
+         id="g6520">
+        <g
+           id="g6522">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6524" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path6526" />
+        </g>
+      </g>
+      <g
+         transform="matrix(-1.922619,0,0,-4.383232,963.5943,3127.7382)"
+         id="g6528">
+        <g
+           id="g6530">
+          <path
+             d="M 353.66649,564.0395 L 353.66664,553.75846 L 363.09041,564.0395 L 353.66649,564.0395 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6532" />
+          <path
+             d="M 353.54449,563.96907 L 353.76443,553.91206 L 352.03253,555.77243 L 344.17746,563.96907 L 353.54449,563.96907 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.17066273;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+             id="path6534" />
+        </g>
+      </g>
+      <g
+         transform="translate(-251.0229,142.9366)"
+         id="g2301">
+        <path
+           d="M 473.15698,395.53775 L 497.20946,395.53775 L 497.20946,373.22204 L 473.15698,373.22204 L 473.15698,395.53775 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2040" />
+        <path
+           d="M 545.31443,417.85346 L 569.36692,417.85346 L 569.36692,395.53775 L 545.31443,395.53775 L 545.31443,417.85346 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2927" />
+        <path
+           d="M 497.20946,417.85346 L 521.26195,417.85346 L 521.26195,395.53775 L 497.20946,395.53775 L 497.20946,417.85346 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2929" />
+        <path
+           d="M 473.15698,350.90633 L 497.20946,350.90633 L 497.20946,328.59062 L 473.15698,328.59062 L 473.15698,350.90633 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2931" />
+        <path
+           d="M 521.26195,350.90633 L 545.31443,350.90633 L 545.31443,328.59062 L 521.26195,328.59062 L 521.26195,350.90633 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2933" />
+        <path
+           d="M 497.20946,373.22204 L 521.26195,373.22204 L 521.26195,350.90633 L 497.20946,350.90633 L 497.20946,373.22204 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2935" />
+        <path
+           d="M 521.26195,395.53775 L 545.31443,395.53775 L 545.31443,373.22204 L 521.26195,373.22204 L 521.26195,395.53775 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2937" />
+        <path
+           d="M 545.31443,462.48488 L 569.36692,462.48488 L 569.36692,440.16917 L 545.31443,440.16917 L 545.31443,462.48488 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2939" />
+        <path
+           d="M 569.36692,440.16917 L 593.4194,440.16917 L 593.4194,417.85346 L 569.36692,417.85346 L 569.36692,440.16917 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2941" />
+        <path
+           d="M 569.36692,350.90633 L 593.4194,350.90633 L 593.4194,328.59062 L 569.36692,328.59062 L 569.36692,350.90633 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2943" />
+        <path
+           d="M 545.31443,373.22204 L 569.36692,373.22204 L 569.36692,350.90633 L 545.31443,350.90633 L 545.31443,373.22204 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2945" />
+        <path
+           d="M 569.36692,395.53775 L 593.4194,395.53775 L 593.4194,373.22204 L 569.36692,373.22204 L 569.36692,395.53775 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2947" />
+        <path
+           d="M 521.26195,440.16917 L 545.31443,440.16917 L 545.31443,417.85346 L 521.26195,417.85346 L 521.26195,440.16917 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2949" />
+        <path
+           d="M 497.20946,462.48488 L 521.26195,462.48488 L 521.26195,440.16917 L 497.20946,440.16917 L 497.20946,462.48488 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2951" />
+        <path
+           d="M 593.4194,373.22204 L 617.47189,373.22204 L 617.47189,350.90633 L 593.4194,350.90633 L 593.4194,373.22204 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2953" />
+        <path
+           d="M 593.4194,417.85346 L 617.47189,417.85346 L 617.47189,395.53775 L 593.4194,395.53775 L 593.4194,417.85346 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2955" />
+        <path
+           d="M 593.4194,462.48488 L 617.47189,462.48488 L 617.47189,440.16917 L 593.4194,440.16917 L 593.4194,462.48488 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2957" />
+        <path
+           d="M 449.10449,373.22204 L 473.15698,373.22204 L 473.15698,350.90633 L 449.10449,350.90633 L 449.10449,373.22204 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2959" />
+        <path
+           d="M 449.10449,417.85346 L 473.15698,417.85346 L 473.15698,395.53775 L 449.10449,395.53775 L 449.10449,417.85346 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2961" />
+        <path
+           d="M 449.10449,462.48488 L 473.15698,462.48488 L 473.15698,440.16917 L 449.10449,440.16917 L 449.10449,462.48488 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2963" />
+        <path
+           d="M 473.15698,440.16917 L 497.20946,440.16917 L 497.20946,417.85346 L 473.15698,417.85346 L 473.15698,440.16917 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2965" />
+        <path
+           d="M 593.4194,328.59062 L 617.47189,328.59062 L 617.47189,306.27491 L 593.4194,306.27491 L 593.4194,328.59062 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2967" />
+        <path
+           d="M 545.31443,328.59062 L 569.36692,328.59062 L 569.36692,306.27491 L 545.31443,306.27491 L 545.31443,328.59062 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2969" />
+        <path
+           d="M 497.20946,328.59062 L 521.26195,328.59062 L 521.26195,306.27491 L 497.20946,306.27491 L 497.20946,328.59062 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2971" />
+        <path
+           d="M 449.10449,328.59062 L 473.15698,328.59062 L 473.15698,306.27491 L 449.10449,306.27491 L 449.10449,328.59062 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2973" />
+        <rect
+           width="174.07446"
+           height="163.09892"
+           x="446.40341"
+           y="302.03339"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:9.14688969;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3002" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_17.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_17.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_17.svg	(revision 38262)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <rect
+       width="2.1465743"
+       height="0"
+       x="-160.16536"
+       y="696.0271"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1904" />
+    <g
+       transform="matrix(1.1122325,0,0,1.1813269,-211.4308,-322.58952)"
+       id="g2269">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(210.47753,252.2551)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-6.4618,86.3972)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 324.32914,589.08659 L 324.32914,477.45572 L 285.07872,477.45572 L 343.10835,419.09314 L 402.82999,477.45572 L 363.57957,477.45572 L 363.57957,536.08598 L 442.08042,536.79076 L 442.08042,505.36344 L 520.58126,548.77195 L 442.08042,589.08659 L 442.08042,561.17887 L 363.57957,561.17887 L 363.57957,616.99429 L 324.32914,616.99429 L 324.32914,589.08659 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.6193347px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2062" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_36.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_36.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_36.svg	(revision 38262)
@@ -0,0 +1,2141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.9635149,0,0,0.9468884,-148.37715,-156.68993)"
+       id="g4540">
+      <g
+         transform="matrix(0.572746,0,0,0.565413,225.33147,296.43202)"
+         id="g8871">
+        <g
+           transform="matrix(0.40562,0,0,0.799835,145.4471,-292.7411)"
+           id="g5786">
+          <g
+             id="g4802">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path1880" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path1882" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2909" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2915" />
+            <g
+               id="g2919">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2911" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2913" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2917" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g2926">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2928" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2930" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2932" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g2934">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2936" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2938" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2940" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g2950">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2952" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2954" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2956" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g2958">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2960" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2962" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2964" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g2966">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2968" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2970" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2972" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3867" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3869" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3871" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3873" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3877" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3879" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3883" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3885" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3887" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3889" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3895" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3897" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3899" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3901" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3903" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3905" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3907" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3913" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path4800" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4851" />
+        </g>
+        <g
+           transform="matrix(0.656793,0,0,0.636268,224.3455,228.3327)"
+           id="g7717">
+          <g
+             transform="translate(-54.28571,-328.5714)"
+             id="g5738">
+            <g
+               id="g1976">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1874" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(22.13525,0.210761)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1876" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="matrix(-1,0,0,-1,217.3291,840.585)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1888" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="matrix(-1,0,0,-1,195.0076,840.4064)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1890" />
+              <g
+                 transform="translate(-7.5,-5.535714)"
+                 id="g1900">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1892" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1894" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1896" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1898" />
+              </g>
+              <g
+                 transform="translate(36.15313,-5.535697)"
+                 id="g1906">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1908" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1910" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1912" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1914" />
+              </g>
+              <g
+                 transform="translate(36.15313,36.25002)"
+                 id="g1916">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1918" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1920" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1922" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1924" />
+              </g>
+              <g
+                 transform="translate(36.60713,76.86512)"
+                 id="g1926">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1928" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1930" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1932" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1934" />
+              </g>
+              <g
+                 transform="translate(-7.321437,75.89287)"
+                 id="g1936">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1938" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1940" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1942" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1944" />
+              </g>
+              <g
+                 transform="translate(-51.42858,75.7143)"
+                 id="g1946">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1948" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1950" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1952" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1954" />
+              </g>
+              <g
+                 transform="translate(-52.14287,-5.714267)"
+                 id="g1956">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1958" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1960" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1962" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1964" />
+              </g>
+              <g
+                 transform="translate(-51.78572,35.00001)"
+                 id="g1966">
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(7.41069,-35.78746)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1968" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="translate(29.1888,-35.75527)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1970" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,224.7398,804.7975)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1972" />
+                <path
+                   d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                   transform="matrix(-1,0,0,-1,202.4183,804.6189)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1974" />
+              </g>
+            </g>
+            <rect
+               width="136.72069"
+               height="130.64926"
+               x="40.362724"
+               y="354.53757"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:7.55402708;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="rect2022" />
+          </g>
+          <path
+             d="M -731.42857 -214.78067 A 144.28572 144.28572 0 1 1  -1020,-214.78067 A 144.28572 144.28572 0 1 1  -731.42857 -214.78067 z"
+             transform="matrix(0.999135,0,0,1.018937,929.2425,308.5248)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:27.77199936;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5837" />
+          <path
+             d="M 121.72858,26.402793 L 150.3,-3.5972073 L 150.3,-3.5972073"
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:9.39999962;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6724" />
+          <path
+             d="M -13.789346,25.633605 L -43.789346,-2.9378176 L -43.789346,-2.9378176"
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:9.39999962;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7611" />
+          <path
+             d="M 153.81442,185.6336 L 123.81442,157.06218 L 123.81442,157.06218"
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:9.39999962;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7613" />
+          <path
+             d="M -43.27142,186.0918 L -14.7,156.0918 L -14.7,156.0918"
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:9.39999962;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7615" />
+        </g>
+        <g
+           transform="matrix(0.113213,-0.113213,0.147225,0.147225,63.95151,160.2303)"
+           id="g7971">
+          <g
+             id="g7973">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path7975" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path7977" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path7979" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path7981" />
+            <g
+               id="g7983">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path7985" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path7987" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path7989" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g7991">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path7993" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path7995" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path7997" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g7999">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8001" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8003" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8005" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g8007">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8009" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8011" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8013" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g8015">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8017" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8019" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8021" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g8023">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8025" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8027" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8029" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8031" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8033" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8035" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8037" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8039" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8041" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8043" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8045" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8047" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8049" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8051" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8053" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8055" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8057" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8059" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8061" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8063" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8065" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8067" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path8069" />
+        </g>
+        <g
+           transform="matrix(0.113213,0.113213,-0.147225,0.147225,392.8465,94.93449)"
+           id="g8271">
+          <g
+             id="g8273">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8275" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8277" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8279" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8281" />
+            <g
+               id="g8283">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8285" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8287" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8289" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g8291">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8293" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8295" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8297" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g8299">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8301" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8303" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8305" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g8307">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8309" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8311" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8313" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g8315">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8317" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8319" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8321" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g8323">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8325" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8327" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8329" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8331" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8333" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8335" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8337" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8339" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8341" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8343" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8345" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8347" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8349" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8351" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8353" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8355" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8357" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8359" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8361" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8363" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8365" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8367" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path8369" />
+        </g>
+        <g
+           transform="matrix(0,0.40562,-0.799835,0,842.1744,170.249)"
+           id="g8371">
+          <g
+             id="g8373">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8375" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8377" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8379" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8381" />
+            <g
+               id="g8383">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8385" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8387" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8389" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g8391">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8393" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8395" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8397" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g8399">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8401" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8403" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8405" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g8407">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8409" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8411" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8413" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g8415">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8417" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8419" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8421" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g8423">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8425" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8427" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8429" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8431" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8433" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8435" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8437" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8439" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8441" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8443" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8445" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8447" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8449" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8451" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8453" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8455" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8457" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8459" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8461" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8463" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8465" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8467" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path8469" />
+        </g>
+        <g
+           transform="matrix(-0.113213,0.113213,-0.147225,-0.147225,455.999,411.6372)"
+           id="g8471">
+          <g
+             id="g8473">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8475" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8477" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8479" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8481" />
+            <g
+               id="g8483">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8485" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8487" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8489" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g8491">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8493" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8495" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8497" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g8499">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8501" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8503" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8505" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g8507">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8509" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8511" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8513" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g8515">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8517" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8519" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8521" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g8523">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8525" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8527" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8529" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8531" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8533" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8535" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8537" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8539" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8541" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8543" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8545" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8547" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8549" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8551" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8553" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8555" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8557" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8559" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8561" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8563" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8565" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8567" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path8569" />
+        </g>
+        <g
+           transform="matrix(-0.113213,-0.113213,0.147225,-0.147225,134.2963,476.1814)"
+           id="g8571">
+          <g
+             id="g8573">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8575" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8577" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8579" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8581" />
+            <g
+               id="g8583">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8585" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8587" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8589" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g8591">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8593" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8595" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8597" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g8599">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8601" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8603" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8605" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g8607">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8609" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8611" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8613" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g8615">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8617" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8619" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8621" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g8623">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8625" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8627" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8629" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8631" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8633" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8635" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8637" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8639" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8641" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8643" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8645" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8647" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8649" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8651" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8653" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8655" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8657" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8659" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8661" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8663" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8665" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8667" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path8669" />
+        </g>
+        <g
+           transform="matrix(-0.40562,0,0,-0.799835,382.1131,864.5366)"
+           id="g8671">
+          <g
+             id="g8673">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8675" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8677" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8679" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8681" />
+            <g
+               id="g8683">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8685" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8687" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8689" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g8691">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8693" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8695" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8697" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g8699">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8701" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8703" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8705" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g8707">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8709" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8711" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8713" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g8715">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8717" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8719" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8721" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g8723">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8725" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8727" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8729" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8731" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8733" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8735" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8737" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8739" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8741" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8743" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8745" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8747" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8749" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8751" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8753" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8755" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8757" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8759" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8761" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8763" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8765" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8767" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path8769" />
+        </g>
+        <g
+           transform="matrix(0,-0.40562,0.799835,0,-319.3174,400.9039)"
+           id="g8771">
+          <g
+             id="g8773">
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(202.1276,194.3178)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8775" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.4438,953.6145)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8777" />
+            <path
+               d="M 286.3712,368.73338 L 286.3712,615.99098 L 415.23594,615.99098 L 286.3712,368.73338 z "
+               style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.44199991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8779" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(288.5562,195.0322)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8781" />
+            <g
+               id="g8783">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8785" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8787" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8789" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,663.315,1189.021)"
+               id="g8791">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8793" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8795" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8797" />
+            </g>
+            <g
+               transform="translate(-21.81732,-40.49476)"
+               id="g8799">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8801" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8803" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8805" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-22.28163,1147.754)"
+               id="g8807">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8809" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8811" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8813" />
+            </g>
+            <g
+               transform="translate(-23.29181,-81.43462)"
+               id="g8815">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8817" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8819" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8821" />
+            </g>
+            <g
+               transform="matrix(1,0,0,-1,-23.79689,1107.754)"
+               id="g8823">
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(223.5562,194.3178)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8825" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(244.2705,194.675)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8827" />
+              <path
+                 d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+                 transform="translate(266.4286,195.0322)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path8829" />
+            </g>
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(266.4286,154.9527)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8831" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,461.9718,995.0494)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8833" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,483.5714,994.8706)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8835" />
+            <path
+               d="M 107.26926,407.54077 L 103.06694,412.61947 L 103.74567,419.17629 L 97.61695,416.74905 L 91.590772,419.42073 L 92.005337,412.84192 L 87.60223,407.93628 L 93.987162,406.29758 L 97.292069,400.59405 L 100.82361,406.1601 L 107.26926,407.54077 z "
+               transform="matrix(0.822804,0,0,0.999999,322.9205,195.3893)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8837" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,393.0434,872.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8839" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,413.9362,873.6207)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8841" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(-1,0,0,-1,392.8578,832.7217)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8843" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(197.6496,32.46908)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8845" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(218.5562,33.66274)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8847" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.930701,0,0,1,203.9525,-6.938255)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8849" />
+            <path
+               d="M 337.93003,464.24455 L 332.27057,456.18214 L 327.06997,465.61364 L 337.93003,464.24455 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8851" />
+            <path
+               d="M 317.03718,424.1017 L 311.37772,416.03929 L 306.17712,425.47079 L 317.03718,424.1017 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8853" />
+            <path
+               d="M 297.57288,392.49456 L 291.91342,384.43215 L 286.71282,393.86365 L 297.57288,392.49456 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85421956px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8855" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(198.5562,73.60362)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8857" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="translate(219.2781,73.60361)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8859" />
+            <path
+               d="M 108.57143,407.3622 L 103.0281,412.74276 L 104.31789,420.35955 L 97.487685,416.75022 L 90.642259,420.33059 L 91.964286,412.71934 L 86.443793,407.31535 L 94.091055,406.22066 L 97.524629,399.30044 L 100.92887,406.23514 L 108.57143,407.3622 z "
+               transform="matrix(0.822458,0,0,1.02573,257.4827,62.78786)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:2.08899999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path8861" />
+            <path
+               d="M 376.48269,545.92404 L 385.98638,564.77713 L 379.29861,559.81579 L 374.37077,560.31192 L 376.83469,553.86219 L 376.48269,542.94723"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17009652px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8863" />
+            <path
+               d="M 360.92197,510.27426 L 356.375,510.06364 L 352.55556,505.21932 L 354.55623,513.43359 L 351.46428,521.64789 L 361.28572,516.38231 L 360.92197,510.27426 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8865" />
+            <path
+               d="M 284.19162,370.00414 L 284.19162,360.99669 L 289.81098,370.25668 L 284.19162,370.00414 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path8867" />
+          </g>
+          <path
+             d="M 283.66686,597.07047 L 284.8272,363.3497 L 156.60943,617.33146 L 283.66686,597.07047 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path8869" />
+        </g>
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="matrix(1.276681,0,0,1.230352,136.70823,87.98172)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(1.276681,0,0,1.230352,-62.39813,-99.99428)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_18.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_18.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_18.svg	(revision 38262)
@@ -0,0 +1,1143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <rect
+       width="2.1465743"
+       height="0"
+       x="-903.08594"
+       y="736.21582"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10945" />
+    <g
+       transform="matrix(0.8592252,0,0,0.7415268,-30.403055,-104.58622)"
+       id="g3326">
+      <g
+         transform="matrix(0.814946,0,0,0.787774,6.5236532,123.8046)"
+         id="g10496">
+        <path
+           d="M 207.14285 521.11218 A 8.5714283 9.1071424 0 1 1  190,521.11218 A 8.5714283 9.1071424 0 1 1  207.14285 521.11218 z"
+           transform="matrix(1.514551,0,0,1.562715,-67.35827,-363.7734)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4264" />
+        <g
+           transform="translate(-89.01013,-84.53831)"
+           id="g7810">
+          <g
+             transform="matrix(1.866078,0,0,2.441031,-312.9909,-797.6275)"
+             id="g4150">
+            <g
+               id="g4065">
+              <path
+                 d="M 340.38498,539.53288 L 318.36502,515.2868 L 340.38498,442.54865 L 340.38498,539.53288 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.68687034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2156" />
+              <g
+                 id="g3986">
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.53571"
+                   y="512.89789"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3045" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.8475"
+                   y="472.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3047" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44644"
+                   y="482.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3049" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="492.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3051" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="502.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3053" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="487.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3055" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="477.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3057" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44641"
+                   y="462.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3059" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="517.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3063" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="507.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3065" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="497.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3067" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="321.875"
+                   y="507.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3069" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="502.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3071" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.51785"
+                   y="492.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3073" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="522.67395"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3077" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="512.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3079" />
+                <path
+                   d="M 334.9,532.46218 L 334.9,527.46218 L 329.9,527.46218 L 334.9,532.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path3081" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="327.41071"
+                   y="482.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3968" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="336.89999"
+                   y="452.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3972" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="332.33929"
+                   y="467.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3974" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="323.10001"
+                   y="497.26218"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3976" />
+                <path
+                   d="M 339.55357,537.26218 L 339.55357,532.26218 L 334.55357,532.26218 L 339.55357,537.26218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path3978" />
+                <path
+                   d="M 325.9,522.46218 L 325.9,517.46218 L 320.9,517.46218 L 325.9,522.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path3980" />
+                <path
+                   d="M 330.18929,527.54074 L 330.18929,522.54074 L 325.18929,522.54074 L 330.18929,527.54074 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path3982" />
+                <rect
+                   width="2.3439825"
+                   height="4.4510989"
+                   x="319.12979"
+                   y="512.58484"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.44530416;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect3984" />
+              </g>
+            </g>
+            <g
+               transform="matrix(-1,0,0,1,681.2284,-0.464293)"
+               id="g4094">
+              <path
+                 d="M 340.38498,539.53288 L 318.36502,515.2868 L 340.48067,442.10973 L 340.38498,539.53288 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.68687034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path4096" />
+              <g
+                 id="g4098">
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.53571"
+                   y="512.89789"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4100" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.8475"
+                   y="472.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4102" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44644"
+                   y="482.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4104" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="492.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4106" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="502.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4108" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="487.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4110" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="477.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4112" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44641"
+                   y="462.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4114" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="517.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4116" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="507.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4118" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="497.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4120" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="321.875"
+                   y="507.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4122" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="502.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4124" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.51785"
+                   y="492.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4126" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="522.67395"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4128" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="512.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4130" />
+                <path
+                   d="M 334.9,532.46218 L 334.9,527.46218 L 329.9,527.46218 L 334.9,532.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path4132" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="327.41071"
+                   y="482.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4134" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="336.89999"
+                   y="452.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4136" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="332.33929"
+                   y="467.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4138" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="323.10001"
+                   y="497.26218"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4140" />
+                <path
+                   d="M 339.55357,537.26218 L 339.55357,532.26218 L 334.55357,532.26218 L 339.55357,537.26218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path4142" />
+                <path
+                   d="M 325.9,522.46218 L 325.9,517.46218 L 320.9,517.46218 L 325.9,522.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path4144" />
+                <path
+                   d="M 330.18929,527.54074 L 330.18929,522.54074 L 325.18929,522.54074 L 330.18929,527.54074 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path4146" />
+                <rect
+                   width="2.3439825"
+                   height="4.4510989"
+                   x="319.12979"
+                   y="512.58484"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.44530416;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect4148" />
+              </g>
+            </g>
+          </g>
+          <path
+             d="M 320.32403,282.96888 L 325.22942,283.16819 L 323.31346,274.30366 L 320.32403,282.96888 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.13547522;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5151" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0.814946,0,0,0.787774,191.41172,142.72393)"
+         id="g9435">
+        <g
+           transform="matrix(1.191067,0,0,1.259159,-90.16443,-127.9079)"
+           id="g9267">
+          <g
+             transform="matrix(2.366269,0,0,2.187328,-805.1721,-614.441)"
+             id="g2100">
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="350.4733"
+               y="547.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1872" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="360.4733"
+               y="547.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1874" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="355.4733"
+               y="542.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1876" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="360.4733"
+               y="537.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1878" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="350.4733"
+               y="537.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1880" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="370.4733"
+               y="527.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1882" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="370.4733"
+               y="537.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1884" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="370.4733"
+               y="547.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1886" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="365.4733"
+               y="542.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1888" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="365.4733"
+               y="532.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1890" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="350.4733"
+               y="527.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1892" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="360.4733"
+               y="527.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1894" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="355.4733"
+               y="532.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1896" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="380.4733"
+               y="548.01404"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1902" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="385.4733"
+               y="543.0141"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1904" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="375.4733"
+               y="543.01404"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1906" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="395.4733"
+               y="533.0141"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1908" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="395.4733"
+               y="543.0141"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1910" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="390.4733"
+               y="548.01404"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1914" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="390.4733"
+               y="537.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1916" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="375.4733"
+               y="533.0141"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1918" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="385.4733"
+               y="532.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1920" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="380.4733"
+               y="538.01404"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1922" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="380.4733"
+               y="527.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1976" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="390.4733"
+               y="527.29974"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1978" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="385.4733"
+               y="522.29974"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1980" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="390.4733"
+               y="517.2998"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1982" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="380.4733"
+               y="517.29974"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1984" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="395.4733"
+               y="522.29974"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1992" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="395.4733"
+               y="512.2998"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1994" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="380.4733"
+               y="507.29977"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1996" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="390.4733"
+               y="507.29977"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect1998" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="385.4733"
+               y="512.29974"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2000" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="355.4733"
+               y="522.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2002" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="365.4733"
+               y="522.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2004" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="360.4733"
+               y="517.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2006" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="365.4733"
+               y="512.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2008" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="355.4733"
+               y="512.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2010" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="375.4733"
+               y="512.83551"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2014" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="375.4733"
+               y="522.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2016" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="370.4733"
+               y="517.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2018" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="370.4733"
+               y="507.83548"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2020" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="350.4733"
+               y="507.83548"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2022" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="360.4733"
+               y="507.83542"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2026" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="350.4733"
+               y="517.83545"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2086" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="375.4733"
+               y="502.83548"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2088" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="385.4733"
+               y="502.83548"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2090" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="395.4733"
+               y="502.83548"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2092" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="355.4733"
+               y="502.83548"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2094" />
+            <rect
+               width="4.0533853"
+               height="4.0534105"
+               x="365.4733"
+               y="502.83548"
+               style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.94661492;stroke-opacity:1"
+               id="rect2098" />
+          </g>
+          <path
+             d="M 23.021763,484.38965 L 23.021763,593.75603 L 141.33516,593.75603 L 142.34531,482.99462 L 23.021763,484.38965 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.27503943px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path2152" />
+        </g>
+        <path
+           d="M -24.243668 330.10312 A 99.500023 105.05586 0 1 1  -223.24371,330.10312 A 99.500023 105.05586 0 1 1  -24.243668 330.10312 z"
+           transform="translate(131.3198,218.1929)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:7.4000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path9433" />
+      </g>
+      <g
+         transform="matrix(0,0.787774,-0.814946,0,658.16504,393.38169)"
+         id="g10558">
+        <path
+           d="M 207.14285 521.11218 A 8.5714283 9.1071424 0 1 1  190,521.11218 A 8.5714283 9.1071424 0 1 1  207.14285 521.11218 z"
+           transform="matrix(1.514551,0,0,1.562715,-67.35827,-363.7734)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path10560" />
+        <g
+           transform="translate(-89.01013,-84.53831)"
+           id="g10562">
+          <g
+             transform="matrix(1.866078,0,0,2.441031,-312.9909,-797.6275)"
+             id="g10564">
+            <g
+               id="g10566">
+              <path
+                 d="M 340.38498,539.53288 L 318.36502,515.2868 L 340.38498,442.54865 L 340.38498,539.53288 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.68687034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path10568" />
+              <g
+                 id="g10570">
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.53571"
+                   y="512.89789"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10572" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.8475"
+                   y="472.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10574" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44644"
+                   y="482.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10576" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="492.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10578" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="502.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10580" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="487.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10582" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="477.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10584" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44641"
+                   y="462.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10586" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="517.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10588" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="507.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10590" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="497.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10592" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="321.875"
+                   y="507.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10594" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="502.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10596" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.51785"
+                   y="492.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10598" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="522.67395"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10600" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="512.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10602" />
+                <path
+                   d="M 334.9,532.46218 L 334.9,527.46218 L 329.9,527.46218 L 334.9,532.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10604" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="327.41071"
+                   y="482.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10606" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="336.89999"
+                   y="452.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10608" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="332.33929"
+                   y="467.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10610" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="323.10001"
+                   y="497.26218"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10612" />
+                <path
+                   d="M 339.55357,537.26218 L 339.55357,532.26218 L 334.55357,532.26218 L 339.55357,537.26218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10614" />
+                <path
+                   d="M 325.9,522.46218 L 325.9,517.46218 L 320.9,517.46218 L 325.9,522.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10616" />
+                <path
+                   d="M 330.18929,527.54074 L 330.18929,522.54074 L 325.18929,522.54074 L 330.18929,527.54074 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10618" />
+                <rect
+                   width="2.3439825"
+                   height="4.4510989"
+                   x="319.12979"
+                   y="512.58484"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.44530416;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10620" />
+              </g>
+            </g>
+            <g
+               transform="matrix(-1,0,0,1,681.2284,-0.464293)"
+               id="g10622">
+              <path
+                 d="M 340.38498,539.53288 L 318.36502,515.2868 L 340.48067,442.10973 L 340.38498,539.53288 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.68687034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path10624" />
+              <g
+                 id="g10626">
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.53571"
+                   y="512.89789"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10628" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.8475"
+                   y="472.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10630" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44644"
+                   y="482.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10632" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="492.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10634" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="502.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10636" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="487.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10638" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="477.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10640" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.44641"
+                   y="462.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10642" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="517.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10644" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="507.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10646" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="330.8475"
+                   y="497.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10648" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="321.875"
+                   y="507.67398"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10650" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="502.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10652" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.51785"
+                   y="492.76468"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10654" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="335.4025"
+                   y="522.67395"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10656" />
+                <rect
+                   width="3.75"
+                   height="4.2857141"
+                   x="326.33929"
+                   y="512.76471"
+                   style="opacity:0.97000002;fill-opacity:1;stroke:#000000;stroke-width:0.80500001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10658" />
+                <path
+                   d="M 334.9,532.46218 L 334.9,527.46218 L 329.9,527.46218 L 334.9,532.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10660" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="327.41071"
+                   y="482.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10662" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="336.89999"
+                   y="452.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10664" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="332.33929"
+                   y="467.46219"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10666" />
+                <rect
+                   width="3"
+                   height="5"
+                   x="323.10001"
+                   y="497.26218"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10668" />
+                <path
+                   d="M 339.55357,537.26218 L 339.55357,532.26218 L 334.55357,532.26218 L 339.55357,537.26218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10670" />
+                <path
+                   d="M 325.9,522.46218 L 325.9,517.46218 L 320.9,517.46218 L 325.9,522.46218 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10672" />
+                <path
+                   d="M 330.18929,527.54074 L 330.18929,522.54074 L 325.18929,522.54074 L 330.18929,527.54074 z "
+                   style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path10674" />
+                <rect
+                   width="2.3439825"
+                   height="4.4510989"
+                   x="319.12979"
+                   y="512.58484"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.44530416;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="rect10676" />
+              </g>
+            </g>
+          </g>
+          <path
+             d="M 320.32403,282.96888 L 325.22942,283.16819 L 323.31346,274.30366 L 320.32403,282.96888 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.13547522;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path10678" />
+        </g>
+      </g>
+      <path
+         d="M 510.27691,559.98802 L 543.47222,559.98802 L 543.47222,568.54662 L 522.69097,568.54662 L 522.69097,574.91771 L 541.96832,574.91771 L 541.96832,583.09349 L 522.69097,583.09349 L 522.69097,590.99584 L 544.07378,590.99584 L 544.07378,600.07396 L 510.27691,600.07396 L 510.27691,559.98802 z "
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 178.28958,230.48539 L 189.85599,230.48539 L 204.94974,252.66117 L 204.94974,230.48539 L 216.62552,230.48539 L 216.62552,270.57133 L 204.94974,270.57133 L 189.93802,248.55961 L 189.93802,270.57133 L 178.28958,270.57133 L 178.28958,230.48539 z "
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_37.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_37.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_37.svg	(revision 38262)
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.8541561,0,0,0.8278264,-73.342864,-176.2404)"
+       id="g2311">
+      <g
+         transform="matrix(2.828697,0,0,2.46252,-450.7429,-760.262)"
+         id="g1902">
+        <path
+           d="M 298.50007 514.45593 A 12.121831 12.121831 0 1 1  274.2564,514.45593 A 12.121831 12.121831 0 1 1  298.50007 514.45593 z"
+           transform="matrix(0.563063,0,0,0.521397,117.6793,254.1753)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1872" />
+        <g
+           transform="matrix(0.853812,0,0,2.36934,-31.56705,-781.5973)"
+           id="g1880">
+          <path
+             d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1876" />
+          <path
+             d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1878" />
+        </g>
+        <g
+           transform="matrix(0,-0.853812,2.36934,0,-1025.971,832.8776)"
+           id="g1884">
+          <path
+             d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1886" />
+          <path
+             d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1888" />
+        </g>
+        <g
+           transform="matrix(0,0.853812,-2.36934,0,1583.702,210.0499)"
+           id="g1890">
+          <path
+             d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1892" />
+          <path
+             d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1894" />
+        </g>
+        <g
+           transform="matrix(-0.853812,0,0,-2.36934,591.5414,1826.553)"
+           id="g1896">
+          <path
+             d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1898" />
+          <path
+             d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1900" />
+        </g>
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="matrix(1.276681,0,0,1.230352,118.7487,152.7155)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(1.276681,0,0,1.230352,-98.54041,-27.17924)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_19.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_19.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_19.svg	(revision 38262)
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <rect
+       width="2.1465743"
+       height="0"
+       x="-1710.7015"
+       y="549.28674"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10945" />
+    <g
+       transform="matrix(0.68551,0,0,0.7295708,73.944732,15.285212)"
+       id="g2316">
+      <g
+         transform="matrix(5.373307,0,0,5.188327,-1811.917,-2360.821)"
+         id="g2794">
+        <path
+           d="M 372.94642 536.60327 A 14.955358 14.955358 0 1 1  343.0357,536.60327 A 14.955358 14.955358 0 1 1  372.94642 536.60327 z"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.9000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1872" />
+        <path
+           d="M 345,532.36218 C 362,522.36218 362,522.36218 362,522.36218 L 362.41072,523.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2760" />
+        <path
+           d="M 345,541.82647 C 368,526.36218 368,526.36218 368,526.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2762" />
+        <path
+           d="M 349,548.36218 L 372,532.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2764" />
+        <path
+           d="M 359,550.36218 C 372,540.36218 372,540.36218 372,540.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2766" />
+        <path
+           d="M 371.69407,539.87768 C 358.02021,522.38239 358.02021,522.38239 358.02021,522.38239"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.04042327px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2768" />
+        <path
+           d="M 350,525.36218 C 367,548.36218 367,548.36218 367,548.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2770" />
+        <path
+           d="M 344.18734,530.22809 C 358.90194,550.28198 358.90194,550.28198 358.90194,550.28198 L 358.90194,550.28198"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.01753926px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2772" />
+      </g>
+      <g
+         transform="matrix(5.373307,0,0,5.704256,-1971.648,-2809.513)"
+         id="g2786">
+        <path
+           d="M 385,552.36218 L 385,532.36218 L 380,532.36218 L 388,521.91575 L 395,532.36218 L 390,532.36218 L 390,552.36218 L 385,552.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2774" />
+        <path
+           d="M 385,551.82647 L 389.55357,547.36218 L 389.55357,547.36218 L 389.55357,547.36218 L 389.46429,546.82647"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2776" />
+        <path
+           d="M 385,542.36218 L 389.55357,537.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2778" />
+        <path
+           d="M 385,532.36218 L 391,526.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2780" />
+        <path
+           d="M 389.55357,547.36218 L 385,542.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2782" />
+        <path
+           d="M 385,542.36218 L 389,537.36218 L 382.58929,529.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2784" />
+      </g>
+      <g
+         transform="matrix(0,-5.188327,-9.152113,0,5245.939,2437.684)"
+         id="g2804">
+        <path
+           d="M 385,552.36218 L 385,532.36218 L 380,532.36218 L 388,521.91575 L 395,532.36218 L 390,532.36218 L 390,552.36218 L 385,552.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2806" />
+        <path
+           d="M 385,551.82647 L 389.55357,547.36218 L 389.55357,547.36218 L 389.55357,547.36218 L 389.46429,546.82647"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2808" />
+        <path
+           d="M 385,542.36218 L 389.55357,537.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2810" />
+        <path
+           d="M 385,532.36218 L 391,526.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2812" />
+        <path
+           d="M 389.55357,547.36218 L 385,542.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2814" />
+        <path
+           d="M 385,542.36218 L 389,537.36218 L 382.58929,529.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2816" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(159.0077,125.7178)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-233.6978,-161.3578)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_38.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_38.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_38.svg	(revision 38262)
@@ -0,0 +1,3222 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.860825,0,0,0.8000699,-48.718641,-159.81939)"
+       id="g3742">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(171.3383,236.49703)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-38.9362,30.50783)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <g
+         transform="translate(-85.0245,-25.98677)"
+         id="g3272">
+        <path
+           d="M 390.05204,543.93736 L 357.62125,488.68543 L 390.05204,387.83727 L 422.48283,488.68543 L 390.05204,543.93736 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.24249077px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3274" />
+        <g
+           transform="translate(54.99999,-10.00001)"
+           id="g3276">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3278" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3280" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3282" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3284" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3286" />
+        </g>
+        <g
+           transform="translate(40.14999,-54.88215)"
+           id="g3288">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3290" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3292" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3294" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3296" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3298" />
+        </g>
+        <g
+           transform="translate(55.14999,-69.88215)"
+           id="g3300">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3302" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3304" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3306" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3308" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3310" />
+        </g>
+        <g
+           transform="translate(40.14999,-24.88215)"
+           id="g3312">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3314" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3316" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3318" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3320" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3322" />
+        </g>
+        <g
+           transform="translate(55.14999,-39.88215)"
+           id="g3324">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3326" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3328" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3330" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3332" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3334" />
+        </g>
+        <g
+           transform="translate(-35.53571,-13.51249)"
+           id="g3336">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="420.67947"
+             y="445.9863"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3338" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="425.82568"
+             y="441.2504"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3340" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="430.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3342" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="430.82523"
+             y="446.13205"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3344" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="420.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3346" />
+        </g>
+        <g
+           transform="translate(69.99999,-55.00001)"
+           id="g3348">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3350" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3352" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3354" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3356" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3358" />
+        </g>
+        <g
+           transform="translate(54.87858,-40.14645)"
+           id="g3360">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3362" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3364" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3366" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3368" />
+        </g>
+        <g
+           transform="translate(54.87858,-10.14645)"
+           id="g3370">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3372" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3374" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3376" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3378" />
+        </g>
+        <g
+           transform="translate(69.87858,-25.14645)"
+           id="g3380">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3382" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3384" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3386" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3388" />
+        </g>
+        <g
+           transform="matrix(1,0,0,1.045282,45.00001,-93.12737)"
+           id="g3390">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3392" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3394" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3396" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3398" />
+        </g>
+        <g
+           transform="matrix(1.031413,0,0,1,29.63384,-25.14645)"
+           id="g3400">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3402" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3404" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3406" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3408" />
+        </g>
+        <g
+           transform="translate(69.87858,-55.14645)"
+           id="g3410">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3412" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3414" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3416" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3418" />
+        </g>
+        <g
+           transform="translate(64.87858,-10.14645)"
+           id="g3420">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3422" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3424" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3426" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3428" />
+        </g>
+        <g
+           transform="translate(40.00001,-54.64288)"
+           id="g3430">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3432" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3434" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3436" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3438" />
+        </g>
+        <g
+           transform="translate(55.00001,-70.21074)"
+           id="g3440">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3442" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3444" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3446" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3448" />
+        </g>
+        <g
+           transform="translate(55.00001,-99.64288)"
+           id="g3450">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3452" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3454" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3456" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3458" />
+        </g>
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="437.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3460" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="427.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3462" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="432.76398"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3464" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="447.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3466" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.02856"
+           y="397.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3468" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.02856"
+           y="402.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3470" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="427.76395"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3472" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="417.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3474" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3476" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3478" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="462.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3480" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="370.44641"
+           y="447.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3482" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="405.14999"
+           y="442.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3484" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3486" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="477.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3488" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3490" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3492" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="502.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3494" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="410.14999"
+           y="497.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3496" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="487.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3498" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3500" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="512.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3502" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3504" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3506" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.14999"
+           y="532.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3508" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3510" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3512" />
+      </g>
+      <g
+         transform="matrix(0,-1,1,0,-254.3873,924.20923)"
+         id="g3514">
+        <path
+           d="M 390.05204,543.93736 L 357.62125,488.68543 L 390.05204,387.83727 L 422.48283,488.68543 L 390.05204,543.93736 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.24249077px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3516" />
+        <g
+           transform="translate(54.99999,-10.00001)"
+           id="g3518">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3520" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3522" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3524" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3526" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3528" />
+        </g>
+        <g
+           transform="translate(40.14999,-54.88215)"
+           id="g3530">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3532" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3534" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3536" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3538" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3540" />
+        </g>
+        <g
+           transform="translate(55.14999,-69.88215)"
+           id="g3542">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3544" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3546" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3548" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3550" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3552" />
+        </g>
+        <g
+           transform="translate(40.14999,-24.88215)"
+           id="g3554">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3556" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3558" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3560" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3562" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3564" />
+        </g>
+        <g
+           transform="translate(55.14999,-39.88215)"
+           id="g3566">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3568" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3570" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3572" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3574" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3576" />
+        </g>
+        <g
+           transform="translate(-35.53571,-13.51249)"
+           id="g3578">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="420.67947"
+             y="445.9863"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3580" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="425.82568"
+             y="441.2504"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3582" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="430.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3584" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="430.82523"
+             y="446.13205"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3586" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="420.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3588" />
+        </g>
+        <g
+           transform="translate(69.99999,-55.00001)"
+           id="g3590">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3592" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3594" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3596" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3598" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3600" />
+        </g>
+        <g
+           transform="translate(54.87858,-40.14645)"
+           id="g3602">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3604" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3606" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3608" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3610" />
+        </g>
+        <g
+           transform="translate(54.87858,-10.14645)"
+           id="g3612">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3614" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3616" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3618" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3620" />
+        </g>
+        <g
+           transform="translate(69.87858,-25.14645)"
+           id="g3622">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3624" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3626" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3628" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3630" />
+        </g>
+        <g
+           transform="matrix(1,0,0,1.045282,45.00001,-93.12737)"
+           id="g3632">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3634" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3636" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3638" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3640" />
+        </g>
+        <g
+           transform="matrix(1.031413,0,0,1,29.63384,-25.14645)"
+           id="g3642">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3644" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3646" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3648" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3650" />
+        </g>
+        <g
+           transform="translate(69.87858,-55.14645)"
+           id="g3652">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3654" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3656" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3658" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3660" />
+        </g>
+        <g
+           transform="translate(64.87858,-10.14645)"
+           id="g3662">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3664" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3666" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3668" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3670" />
+        </g>
+        <g
+           transform="translate(40.00001,-54.64288)"
+           id="g3672">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3674" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3676" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3678" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3680" />
+        </g>
+        <g
+           transform="translate(55.00001,-70.21074)"
+           id="g3682">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3684" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3686" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3688" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3690" />
+        </g>
+        <g
+           transform="translate(55.00001,-99.64288)"
+           id="g3692">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3694" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3696" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3698" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3700" />
+        </g>
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="437.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3702" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="427.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3704" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="432.76398"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3706" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="447.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3708" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.02856"
+           y="397.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3710" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.02856"
+           y="402.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3712" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="427.76395"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3714" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="417.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3716" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3718" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3720" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="462.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3722" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="370.44641"
+           y="447.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3724" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="405.14999"
+           y="442.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3726" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3728" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="477.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3730" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3732" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3734" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="502.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3736" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="410.14999"
+           y="497.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3738" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="487.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3740" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3742" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="512.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3744" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3746" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3748" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.14999"
+           y="532.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3750" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3752" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3754" />
+      </g>
+      <g
+         transform="matrix(0,1,-1,0,864.2702,144.22873)"
+         id="g3756">
+        <path
+           d="M 390.05204,543.93736 L 357.62125,488.68543 L 390.05204,387.83727 L 422.48283,488.68543 L 390.05204,543.93736 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.24249077px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3758" />
+        <g
+           transform="translate(54.99999,-10.00001)"
+           id="g3760">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3762" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3764" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3766" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3768" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3770" />
+        </g>
+        <g
+           transform="translate(40.14999,-54.88215)"
+           id="g3772">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3774" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3776" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3778" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3780" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3782" />
+        </g>
+        <g
+           transform="translate(55.14999,-69.88215)"
+           id="g3784">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3786" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3788" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3790" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3792" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3794" />
+        </g>
+        <g
+           transform="translate(40.14999,-24.88215)"
+           id="g3796">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3798" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3800" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3802" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3804" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3806" />
+        </g>
+        <g
+           transform="translate(55.14999,-39.88215)"
+           id="g3808">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3810" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3812" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3814" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3816" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3818" />
+        </g>
+        <g
+           transform="translate(-35.53571,-13.51249)"
+           id="g3820">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="420.67947"
+             y="445.9863"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3822" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="425.82568"
+             y="441.2504"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3824" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="430.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3826" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="430.82523"
+             y="446.13205"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3828" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="420.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3830" />
+        </g>
+        <g
+           transform="translate(69.99999,-55.00001)"
+           id="g3832">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3834" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3836" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3838" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3840" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3842" />
+        </g>
+        <g
+           transform="translate(54.87858,-40.14645)"
+           id="g3844">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3846" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3848" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3850" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3852" />
+        </g>
+        <g
+           transform="translate(54.87858,-10.14645)"
+           id="g3854">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3856" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3858" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3860" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3862" />
+        </g>
+        <g
+           transform="translate(69.87858,-25.14645)"
+           id="g3864">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3866" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3868" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3870" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3872" />
+        </g>
+        <g
+           transform="matrix(1,0,0,1.045282,45.00001,-93.12737)"
+           id="g3874">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3876" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3878" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3880" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3882" />
+        </g>
+        <g
+           transform="matrix(1.031413,0,0,1,29.63384,-25.14645)"
+           id="g3884">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3886" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3888" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3890" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3892" />
+        </g>
+        <g
+           transform="translate(69.87858,-55.14645)"
+           id="g3894">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3896" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3898" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3900" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3902" />
+        </g>
+        <g
+           transform="translate(64.87858,-10.14645)"
+           id="g3904">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3906" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3908" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3910" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3912" />
+        </g>
+        <g
+           transform="translate(40.00001,-54.64288)"
+           id="g3914">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3916" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3918" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3920" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3922" />
+        </g>
+        <g
+           transform="translate(55.00001,-70.21074)"
+           id="g3924">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3926" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3928" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3930" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3932" />
+        </g>
+        <g
+           transform="translate(55.00001,-99.64288)"
+           id="g3934">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3936" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3938" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3940" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3942" />
+        </g>
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="437.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3944" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="427.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3946" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="432.76398"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3948" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="447.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3950" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.02856"
+           y="397.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3952" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.02856"
+           y="402.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3954" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="427.76395"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3956" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="417.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3958" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3960" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3962" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="462.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3964" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="370.44641"
+           y="447.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3966" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="405.14999"
+           y="442.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3968" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3970" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="477.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3972" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3974" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3976" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="502.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3978" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="410.14999"
+           y="497.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3980" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="487.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3982" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3984" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="512.17261"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3986" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3988" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3990" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.14999"
+           y="532.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3992" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3994" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3996" />
+      </g>
+      <g
+         transform="matrix(-1,0,0,-1,695.1296,1093.0094)"
+         id="g3148">
+        <path
+           d="M 390.05204,543.93736 L 357.62125,488.68543 L 390.05204,387.83727 L 422.48283,488.68543 L 390.05204,543.93736 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.24249077px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1986" />
+        <g
+           transform="translate(54.99999,-10.00001)"
+           id="g2893">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect1994" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2885" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2887" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2889" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2891" />
+        </g>
+        <g
+           transform="translate(40.14999,-54.88215)"
+           id="g2902">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2904" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2906" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2908" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2910" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2912" />
+        </g>
+        <g
+           transform="translate(55.14999,-69.88215)"
+           id="g2914">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2916" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2918" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2920" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2922" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2924" />
+        </g>
+        <g
+           transform="translate(40.14999,-24.88215)"
+           id="g2926">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2928" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2930" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2932" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2934" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2936" />
+        </g>
+        <g
+           transform="translate(55.14999,-39.88215)"
+           id="g2938">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2940" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2942" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2944" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2946" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2948" />
+        </g>
+        <g
+           transform="translate(-35.53571,-13.51249)"
+           id="g2979">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="420.67947"
+             y="445.9863"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2952" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="425.82568"
+             y="441.2504"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2954" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="430.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2956" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="430.82523"
+             y="446.13205"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2958" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="420.82727"
+             y="436.13412"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2960" />
+        </g>
+        <g
+           transform="translate(69.99999,-55.00001)"
+           id="g2962">
+          <rect
+             width="4.8339028"
+             height="4.7446151"
+             x="329.99377"
+             y="532.35596"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28752652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2964" />
+          <rect
+             width="4.6629047"
+             height="4.6629033"
+             x="335.13998"
+             y="527.62006"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.27995285;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2966" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="340.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2968" />
+          <rect
+             width="4.7209816"
+             height="4.5745606"
+             x="340.13953"
+             y="532.50171"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2790097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2970" />
+          <rect
+             width="4.7168207"
+             height="4.7168279"
+             x="330.14157"
+             y="522.50378"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28319013;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2972" />
+        </g>
+        <g
+           transform="translate(54.87858,-40.14645)"
+           id="g2996">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2986" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2988" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2990" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect2994" />
+        </g>
+        <g
+           transform="translate(54.87858,-10.14645)"
+           id="g3002">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3004" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3006" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3008" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3010" />
+        </g>
+        <g
+           transform="translate(69.87858,-25.14645)"
+           id="g3012">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3014" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3016" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3018" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3020" />
+        </g>
+        <g
+           transform="matrix(1,0,0,1.045282,45.00001,-93.12737)"
+           id="g3022">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3024" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3026" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3028" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3030" />
+        </g>
+        <g
+           transform="matrix(1.031413,0,0,1,29.63384,-25.14645)"
+           id="g3032">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3034" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3036" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3038" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3040" />
+        </g>
+        <g
+           transform="translate(69.87858,-55.14645)"
+           id="g3042">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3044" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3046" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3048" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3050" />
+        </g>
+        <g
+           transform="translate(64.87858,-10.14645)"
+           id="g3052">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3054" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3056" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3058" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3060" />
+        </g>
+        <g
+           transform="translate(40.00001,-54.64288)"
+           id="g3062">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3064" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3066" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3068" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3070" />
+        </g>
+        <g
+           transform="translate(55.00001,-70.21074)"
+           id="g3072">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3074" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3076" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3078" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3080" />
+        </g>
+        <g
+           transform="translate(55.00001,-99.64288)"
+           id="g3082">
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="330.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3084" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="335.02856"
+             y="517.51221"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3086" />
+          <rect
+             width="4.8214297"
+             height="4.9107127"
+             x="340.14999"
+             y="512.30145"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3088" />
+          <rect
+             width="4.7139287"
+             height="4.5674872"
+             x="335.14304"
+             y="507.65167"
+             style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.28608248;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="rect3090" />
+        </g>
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="437.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3092" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="427.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3094" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="432.76398"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3096" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="447.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3098" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.02856"
+           y="397.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3100" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.02856"
+           y="402.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3104" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="427.76395"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3106" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="417.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3108" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3110" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3112" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="462.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3114" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="370.44641"
+           y="447.51218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3116" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="405.14999"
+           y="442.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3118" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3120" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="477.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3122" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="482.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3124" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="492.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3126" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="365.14999"
+           y="502.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3128" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="410.14999"
+           y="497.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3130" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="360.14999"
+           y="487.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3132" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3134" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="375.14999"
+           y="512.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3136" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="400.14999"
+           y="517.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3138" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="380.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3140" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="385.14999"
+           y="532.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3142" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="390.14999"
+           y="527.30145"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3144" />
+        <rect
+           width="4.8214297"
+           height="4.9107127"
+           x="415.14999"
+           y="472.30148"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect3146" />
+      </g>
+      <g
+         transform="matrix(1.253438,0,0,1.267773,145.3357,-124.37767)"
+         id="g6508">
+        <path
+           d="M 120,512.36218 L 120,517.36218 L 125,517.36218 L 125,512.36218 L 120,512.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4726" />
+        <path
+           d="M 130,522.36218 L 130,527.36218 L 135,527.36218 L 135,522.36218 L 130,522.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4728" />
+        <path
+           d="M 125,517.36218 L 125,522.36218 L 130,522.36218 L 130,517.36218 L 125,517.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4730" />
+        <path
+           d="M 130,512.36218 L 130,517.36218 L 135,517.36218 L 135,512.36218 L 130,512.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4732" />
+        <path
+           d="M 120,522.36218 L 120,527.36218 L 125,527.36218 L 125,522.36218 L 120,522.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4734" />
+        <rect
+           width="14.670349"
+           height="14.759633"
+           x="120.1722"
+           y="512.23395"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.273;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect4736" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/norte_flecha.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/norte_flecha.svg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_39.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_39.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_39.svg	(revision 38262)
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <rect
+       width="2.1465743"
+       height="0"
+       x="-256.33777"
+       y="380.63318"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1904" />
+    <g
+       transform="translate(-18.571429,-22.857143)"
+       id="g2337">
+      <rect
+         width="6.3891425"
+         height="70.025955"
+         x="233.28166"
+         y="158.41487"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:11.37500095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect1902" />
+      <rect
+         width="6.3891425"
+         height="70.025955"
+         x="233.49455"
+         y="324.85138"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:11.37500095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect1906" />
+      <rect
+         width="6.524157"
+         height="68.576797"
+         x="276.5726"
+         y="-350.34045"
+         transform="matrix(0,1,-1,0,0,0)"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:11.37500095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect1908" />
+      <rect
+         width="6.524157"
+         height="68.576797"
+         x="277.74426"
+         y="-191.32622"
+         transform="matrix(0,1,-1,0,0,0)"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:11.37500095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect1910" />
+      <path
+         d="M 252.03306 499.1774 A 2.6516504 2.6516504 0 1 1  246.72976,499.1774 A 2.6516504 2.6516504 0 1 1  252.03306 499.1774 z"
+         transform="matrix(3.373295,0,0,3.444579,-604.855,-1580.9045)"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1914" />
+      <path
+         d="M 252.03306 499.1774 A 2.6516504 2.6516504 0 1 1  246.72976,499.1774 A 2.6516504 2.6516504 0 1 1  252.03306 499.1774 z"
+         transform="matrix(3.373295,0,0,3.444579,-470.7754,-1440.0555)"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1916" />
+      <path
+         d="M 252.03306 499.1774 A 2.6516504 2.6516504 0 1 1  246.72976,499.1774 A 2.6516504 2.6516504 0 1 1  252.03306 499.1774 z"
+         transform="matrix(3.373295,0,0,3.444579,-738.083,-1438.3165)"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1918" />
+      <path
+         d="M 252.03306 499.1774 A 2.6516504 2.6516504 0 1 1  246.72976,499.1774 A 2.6516504 2.6516504 0 1 1  252.03306 499.1774 z"
+         transform="matrix(3.373295,0,0,3.444579,-604.855,-1304.6975)"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1920" />
+      <g
+         transform="matrix(1.563758,-1.40606,1.563758,1.40606,-1079.764,-56.02686)"
+         id="g1926">
+        <rect
+           width="0.82368344"
+           height="6.0328536"
+           x="305"
+           y="502.36218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect1922" />
+        <path
+           d="M 257.33637 495.38931 A 1.1364216 1.1364216 0 1 1  255.06353,495.38931 A 1.1364216 1.1364216 0 1 1  257.33637 495.38931 z"
+           transform="translate(49.24493,2.525381)"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1924" />
+      </g>
+      <g
+         transform="matrix(-1.376962,-1.596803,1.376962,-1.596803,-87.5671,1623.5275)"
+         id="g1936">
+        <rect
+           width="0.82368344"
+           height="6.0328536"
+           x="305"
+           y="502.36218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect1938" />
+        <path
+           d="M 257.33637 495.38931 A 1.1364216 1.1364216 0 1 1  255.06353,495.38931 A 1.1364216 1.1364216 0 1 1  257.33637 495.38931 z"
+           transform="translate(49.24493,2.525381)"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1940" />
+      </g>
+      <g
+         transform="matrix(1.376962,1.596803,-1.376962,1.596803,559.24128,-1069.9471)"
+         id="g1942">
+        <rect
+           width="0.82368344"
+           height="6.0328536"
+           x="305"
+           y="502.36218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect1944" />
+        <path
+           d="M 257.33637 495.38931 A 1.1364216 1.1364216 0 1 1  255.06353,495.38931 A 1.1364216 1.1364216 0 1 1  257.33637 495.38931 z"
+           transform="translate(49.24493,2.525381)"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1946" />
+      </g>
+      <g
+         transform="matrix(-1.563758,1.40606,-1.563758,-1.40606,1553.853,609.20281)"
+         id="g1948">
+        <rect
+           width="0.82368344"
+           height="6.0328536"
+           x="305"
+           y="502.36218"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect1950" />
+        <path
+           d="M 257.33637 495.38931 A 1.1364216 1.1364216 0 1 1  255.06353,495.38931 A 1.1364216 1.1364216 0 1 1  257.33637 495.38931 z"
+           transform="translate(49.24493,2.525381)"
+           style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1952" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(66.8279,-17.68201)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-109.7053,-197.68199)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <rect
+         width="67.85714"
+         height="75"
+         x="202.26985"
+         y="238.54054"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:13.07299995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect4069" />
+      <path
+         d="M 265.71429 277.36218 A 54.285713 54.285713 0 1 1  157.14286,277.36218 A 54.285713 54.285713 0 1 1  265.71429 277.36218 z"
+         transform="matrix(1.011092,0,0,1.023256,22.8897,-6.70785)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:13.07299995;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path4956" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_1.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_1.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_1.svg	(revision 38262)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docbase="H:\"
+   sodipodi:docname="vettore.svg"
+   inkscape:export-filename="F:\ROSA VENTI\rosa11.png"
+   inkscape:export-xdpi="300"
+   inkscape:export-ydpi="300"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   version="1.0">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="290.92664"
+     inkscape:cy="239.69908"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1280"
+     inkscape:window-height="744"
+     inkscape:window-x="0"
+     inkscape:window-y="22"
+     width="450px"
+     height="500px" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Livello 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <g
+       id="g2169">
+      <path
+         sodipodi:nodetypes="cccccc"
+         id="path3222"
+         d="M 201.42859,445.93361 L 202.85716,86.6479 L 267.14287,192.36218 L 222.85716,163.79076 L 225.7143,445.21933 L 201.42859,445.93361 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         id="flowRoot3224"
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         style="font-size:56px;font-family:Arial Black"
+         transform="translate(-137.6462,-245.32652)" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_2.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_2.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_2.svg	(revision 38262)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docbase="H:\"
+   sodipodi:docname="gvsig_2def.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   version="1.0">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.7"
+     inkscape:cx="414.14341"
+     inkscape:cy="202.33186"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1280"
+     inkscape:window-height="744"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     width="450px"
+     height="500px" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Livello 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <g
+       id="g2171"
+       transform="translate(-184.28571,-258.57143)">
+      <path
+         id="path1965"
+         d="M 391.34752,395.97405 L 391.34752,649.76343 L 412.5493,649.76343 L 412.5493,446.7319 L 428.2613,463.65123 L 391.34752,345.21606 L 391.34752,395.97405"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         transform="matrix(12.2222,0,0,15.88943,-3931.465,-7755.856)"
+         d="M 356.47322 530.55414 A 1.8973215 1.8973215 0 1 1  352.67858,530.55414 A 1.8973215 1.8973215 0 1 1  356.47322 530.55414 z"
+         sodipodi:ry="1.8973215"
+         sodipodi:rx="1.8973215"
+         sodipodi:cy="530.55414"
+         sodipodi:cx="354.5759"
+         id="path1967"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:6.4000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         sodipodi:type="arc" />
+      <path
+         id="flowRoot3224"
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         style="font-size:56px;stroke:none;font-family:Arial Black"
+         transform="matrix(2.006144,0,0,2.033494,-291.9793,-277.2286)" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_3.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_3.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_3.svg	(revision 38262)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-123.23861,-288.90363)"
+       id="g2173">
+      <g
+         transform="matrix(5.975106,0,0,7.360972,-1697.3027,-3373.5718)"
+         id="g2000">
+        <path
+           d="M 342.35227,539.59527 L 342.22208,517.36218 L 360.42957,547.53845 L 342.35227,539.59527 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1996" />
+        <path
+           d="M 342.57013,539.29649 L 341.82241,519.02014 L 324.09482,546.6962 L 342.57013,539.29649 z "
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97481376px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1998" />
+      </g>
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(2.106701,0,0,2.118369,-384.60868,-235.79393)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot3224" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_4.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_4.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_4.svg	(revision 38262)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.5195424,0,0,0.6016449,24.376483,-53.793862)"
+       id="g2174">
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(3.640839,0,0,3.157632,-864.7505,-755.91207)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot7755" />
+      <g
+         transform="matrix(28.115021,0,0,17.267132,23470.126,-12571.168)"
+         id="g7864">
+        <path
+           d="M -825.62731,778.65596 L -821.18658,778.65596 L -821.18658,753.89884 L -818.82382,753.89884 L -823.42178,746.38114 L -828.35618,753.89884 L -825.62731,753.89884 L -825.62731,778.65596 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.9378258px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path7860" />
+        <path
+           d="M -823.16032,776.72383 L -818.16032,776.72383 L -818.16032,751.72383 L -815.5,751.72383 L -820.67703,744.13238 L -826.23287,751.72383 L -823.16032,751.72383 L -823.16032,776.72383 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path7862" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_5.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_5.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_5.svg	(revision 38262)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="gvsig_5.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\Programmi\gvSIG_1.0.2\bin\gvSIG\extensiones\com.iver.cit.gvsig\northimages">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="744"
+     inkscape:window-width="1280"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="0.754"
+     inkscape:cx="225"
+     inkscape:cy="250"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="svg2" />
+  <defs
+     id="defs4" />
+  <g
+     id="layer1"
+     transform="matrix(1.3482061,0,0,1.3605643,-75.274102,-93.490101)">
+    <g
+       transform="translate(7.8428488,-24.243661)"
+       id="g2238">
+      <path
+         d="M 314.64648,483.62498 L 317.125,483.62498 L 320.35938,488.37693 L 320.35938,483.62498 L 322.86133,483.62498 L 322.86133,492.21482 L 320.35938,492.21482 L 317.14258,487.49803 L 317.14258,492.21482 L 314.64648,492.21482 L 314.64648,483.62498 z "
+         transform="matrix(2.124314,0,0,2.055934,-468.64243,-824.79604)"
+         style="font-family:Arial Black"
+         id="flowRoot2762" />
+      <path
+         d="M 152.38394,298.4068 L 208.753,206.53183 L 270.7589,298.4068 L 210.18157,267.78181 L 152.38394,298.4068 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.19645977px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1956" />
+      <path
+         d="M 587.50001,551.29077 C 587.50001,593.69835 553.12187,628.07648 510.71429,628.07648 C 468.30672,628.07648 433.92858,593.69835 433.92858,551.29077 C 433.92858,508.88319 468.30672,474.50505 510.71429,474.50505 C 553.12187,474.50505 587.50001,508.88319 587.50001,551.29077 z "
+         transform="translate(-298.57143,-277.85714)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.4000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1958" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simpleNorth.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simpleNorth.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simpleNorth.svg	(revision 38262)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:xml="http://www.w3.org/XML/1998/namespace"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docbase="D:\Download\datos\PRUEBAS\northimages"
+   sodipodi:docname="simpleNorth.svg"
+   inkscape:version="0.40+cvs"
+   sodipodi:version="0.32"
+   xml:space="preserve"
+   id="svg2"
+   viewBox="0 0 450 500"
+   height="500"
+   width="450"
+   version="1.0"><metadata
+   id="metadata8">
+  <rdf:RDF
+     id="RDF4">
+    <cc:Work
+       id="Work6"
+       rdf:about="">
+      <dc:format
+         id="format8">image/svg+xml</dc:format>
+      <dc:type
+         id="type10"
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+    </cc:Work>
+  </rdf:RDF>
+</metadata>
+<sodipodi:namedview
+   inkscape:current-layer="svg2"
+   inkscape:window-y="-4"
+   inkscape:window-x="-4"
+   inkscape:cy="250.00000"
+   inkscape:cx="225.00000"
+   inkscape:zoom="1.0780000"
+   id="base"
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1.0"
+   inkscape:pageopacity="0.0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1024"
+   inkscape:window-height="719" />
+<defs
+   id="defs17" />
+
+	<path
+   id="path14"
+   style="fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+   d="M 86.978411,340.24249 L 216.26541,24.408965 L 227.40954,52.147805 L 228.23782,52.147805 L 232.98160,38.582545 L 363.02159,355.02437 L 233.80989,320.22916 L 105.35116,355.02437 L 114.08576,333.12529 L 86.978411,340.24249 L 86.978411,340.24249 z M 216.26541,30.917865 L 90.969209,337.01846 L 216.26541,303.50069 L 340.65802,337.01846 L 216.26541,30.917865 z M 181.10115,475.59103 L 181.10115,373.76027 L 198.64563,373.76027 L 264.07976,452.41450 L 264.07976,373.76027 L 280.04298,373.76027 L 280.04298,475.59103 L 262.49850,475.59103 L 197.06437,396.93680 L 197.06437,475.59103 L 181.10115,475.59103 L 181.10115,475.59103 z " />
+
+</svg>

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simpleNorth.svg
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_6.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_6.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_6.svg	(revision 38262)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(4.04061,34.34519)"
+       id="g2932">
+      <g
+         transform="matrix(0.8861662,0,0,0.915161,-92.98971,-183.78933)"
+         id="g2290">
+        <path
+           d="M 270.2595,427.02925 L 354.46793,353.89472 L 438.67635,427.02925 L 382.5374,427.02925 L 382.5374,609.86558 L 438.67635,639.11939 L 270.2595,639.11939 L 326.39845,609.86558 L 326.39845,427.02925 L 270.2595,427.02925 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:9.06167316px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1888" />
+        <g
+           id="g2285">
+          <path
+             d="M 355.47045,353.89472 L 354.46793,639.11939"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.62466908;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1890" />
+          <path
+             d="M 390.80358 524.05859 A 5.9821429 5.9821429 0 1 1  378.8393,524.05859 A 5.9821429 5.9821429 0 1 1  390.80358 524.05859 z"
+             transform="matrix(6.012857,0,0,1.194511,-1959.737,-124.6887)"
+             style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2778" />
+          <path
+             d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+             transform="matrix(1.7905,0,0,2.461581,-266.6633,-444.6249)"
+             style="font-size:56px;font-family:Arial Black"
+             id="flowRoot2790" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_7.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_7.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_7.svg	(revision 38262)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.9234006,0,0,0.7812741,-84.804084,-133.6346)"
+       id="g2276">
+      <path
+         d="M 268.57143 508.07648 A 90 90 0 1 1  88.571426,508.07648 A 90 90 0 1 1  268.57143 508.07648 z"
+         transform="translate(150.3595,67.84687)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:6.49900007;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 318.89766,490.44158 L 333.12943,490.44158 L 351.70139,517.72756 L 351.70139,490.44158 L 366.06774,490.44158 L 366.06774,539.76493 L 351.70139,539.76493 L 333.23037,512.68083 L 333.23037,539.76493 L 318.89766,539.76493 L 318.89766,490.44158 z "
+         transform="matrix(2.124314,0,0,2.055934,-398.6878,-753.803)"
+         style="font-size:68.90465546px;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3.20119524;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
+         id="flowRoot2762" />
+      <path
+         d="M 309.64911,408.22596 L 309.64911,483.69446 L 347.04673,482.83685 L 347.04673,408.22596 L 378.32963,413.23515 L 326.34297,350.86646 L 276.90976,416.74838 L 309.64911,408.22596 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.9933877px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2030" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_8.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_8.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_8.svg	(revision 38262)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.0247396,0,0,0.871256,-143.236,-191.78117)"
+       id="g2370">
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(1.371631,0,0,1.160507,-115.40596,-54.290579)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <g
+         transform="translate(363.33754,28.284271)"
+         id="g2609">
+        <path
+           d="M -41.201455,536.19158 L -6.1508242,536.19158 L -6.1508242,565.10357 C -29.628466,563.91471 -40.135073,553.43428 -41.201455,536.19158 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.80164814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4581" />
+        <path
+           d="M -1.3247646,501.25374 L -1.3247646,531.71371 L 32.624578,531.71371 C 31.228582,511.31098 18.922153,502.18046 -1.3247646,501.25374 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.85046959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4583" />
+        <path
+           d="M 383.92112 546.93866 A 8.6178637 8.6178637 0 1 1  366.68539,546.93866 A 8.6178637 8.6178637 0 1 1  383.92112 546.93866 z"
+           transform="matrix(-4.422077,0,0,3.914321,1655.451,-1607.255)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.30874145;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4589" />
+      </g>
+      <g
+         transform="matrix(5.626187,0,0,7.650437,-3962.7077,-2984.5997)"
+         id="g3046">
+        <path
+           d="M 770.22709,459.23603 L 767.93272,459.23603 L 767.93272,431.42511 L 771.86653,444.68031 L 769.95447,442.01145 L 770.22709,459.23603 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path2154" />
+        <path
+           d="M 765.66145,459.25661 L 767.95582,459.25661 L 767.95582,431.44569 L 764.02201,444.70089 L 765.93407,442.03203 L 765.66145,459.25661 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3044" />
+      </g>
+      <g
+         transform="matrix(2.707384,0,-4.040588e-3,4.785058,-1765.5387,-1460.0187)"
+         id="g5717">
+        <path
+           d="M 770,467.36218 L 775,467.36218 L 775,482.36218 L 761.90756,490.33856 L 770,472.36218 L 770,467.36218 z "
+           transform="translate(10.87201,-37.55286)"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4828" />
+        <path
+           d="M 790.55252,429.75678 L 785.55252,429.75678 L 785.55252,444.75678 L 798.64496,452.73316 L 790.55252,434.75678 L 790.55252,429.75678 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5715" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/norte1-1.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/norte1-1.svg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_9.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_9.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_9.svg	(revision 38262)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.3008265,0,0,1.1091018,-52.596423,-15.857457)"
+       id="g2267">
+      <path
+         d="M 204.76873,366.12499 L 220.31161,366.12499 L 220.31161,196.11037 L 243.07083,238.61402 L 206.98915,68.599398 L 204.76873,366.12499 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.63491201px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(2.22973,0,0,2.3197728,-555.84506,-391.94616)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/complex.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/complex.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/complex.svg	(revision 38262)
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+
+   Copyright 2001  The Apache Software Foundation 
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+-->
+<!-- ========================================================================= -->
+<!-- GVT under the spot-light!                                                 -->
+<!--                                                                           -->
+<!-- @author vincent.hardy@eng.sun.com                                         -->
+<!-- @version $Id$ -->
+<!-- ========================================================================= -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="450"
+   height="500"
+   viewBox="0 0 450 500"
+   id="svg2755"
+   sodipodi:version="0.32"
+   inkscape:version="0.40+cvs"
+   sodipodi:docname="complex.svg"
+   sodipodi:docbase="C:\Documents and Settings\fjp\Mis documentos">
+  <metadata
+     id="metadata2887">
+    <rdf:RDF
+       id="RDF2889">
+      <cc:Work
+         rdf:about=""
+         id="Work2891">
+        <dc:format
+           id="format2893">image/svg+xml</dc:format>
+        <dc:type
+           id="type2895"
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1152"
+     inkscape:window-height="804"
+     inkscape:zoom="1.2480000"
+     inkscape:cx="84.400960"
+     inkscape:cy="252.04184"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="svg2755" />
+  <defs
+     id="defs2757" />
+  <path
+     transform="matrix(3.129734,0.000000,0.000000,3.129734,-240.0860,-132.5642)"
+     d="M 208.30013 122.23536 A 59.697727 59.697727 0 1 1  88.904675,122.23536 A 59.697727 59.697727 0 1 1  208.30013 122.23536 z"
+     sodipodi:ry="59.697727"
+     sodipodi:rx="59.697727"
+     sodipodi:cy="122.23536"
+     sodipodi:cx="148.60240"
+     id="path1751"
+     style="stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000px;stroke:#000000;fill-rule:evenodd;fill-opacity:0.75000000;fill:none"
+     sodipodi:type="arc" />
+  <path
+     transform="matrix(2.428890,0.000000,0.000000,2.428890,-135.9389,-46.89624)"
+     d="M 208.30013 122.23536 A 59.697727 59.697727 0 1 1  88.904675,122.23536 A 59.697727 59.697727 0 1 1  208.30013 122.23536 z"
+     sodipodi:ry="59.697727"
+     sodipodi:rx="59.697727"
+     sodipodi:cy="122.23536"
+     sodipodi:cx="148.60240"
+     id="path1753"
+     style="stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000px;stroke:#000000;fill-rule:evenodd;fill-opacity:0.75000000;fill:none"
+     sodipodi:type="arc" />
+  <g
+     transform="matrix(3.129734,0.000000,0.000000,3.129734,-351.7159,-2.378312)"
+     id="g3446">
+    <g
+       id="g1761"
+       transform="matrix(0.344216,-0.336555,0.344216,0.336555,114.7027,73.24620)"
+       style="font-size:12.000000">
+      <rect
+         style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:1.0000000pt"
+         id="rect1763"
+         width="18.802979"
+         height="17.907625"
+         x="81.479645"
+         y="102.58115" />
+      <g
+         id="g1765">
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37718001"
+           d="M -40.156300,69.061300 L -40.000000,-11.407500 L -40.000000,-11.407500 L -48.593700,68.748800 L -48.593700,68.748800 L -40.156300,69.061300 z "
+           id="path1767"
+           transform="matrix(1.060590,0.000000,0.000000,0.995220,133.2080,33.84540)" />
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -32.860600,53.044200 L -41.719100,61.902700 L -32.860600,70.761200"
+           id="path1769"
+           transform="matrix(1.030050,0.000000,0.000000,1.029970,124.7050,38.71900)" />
+        <path
+           style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -55.078900,64.794300 L -46.010100,55.504600 M -55.124700,55.565000 L -54.738100,-24.519200 L -54.738100,-24.519200 L -45.900500,55.475000 L -45.955800,55.364500"
+           id="path1771"
+           transform="matrix(1.000070,0.000000,0.000000,1.000000,145.7740,46.80670)" />
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37718001"
+           d="M -40.156300,69.061300 L -40.000000,-11.407500 L -40.000000,-11.407500 L -48.593700,68.748800 L -48.593700,68.748800 L -40.156300,69.061300 z "
+           id="path1773"
+           transform="matrix(-1.948220e-16,-1.060520,0.995290,-1.828130e-16,13.21300,69.00150)" />
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -32.860600,53.044200 L -41.719100,61.902700 L -32.860600,70.761200"
+           id="path1775"
+           transform="matrix(-1.892110e-16,-1.029980,1.030040,-1.891960e-16,18.08700,77.50380)" />
+        <path
+           style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -55.078900,64.794300 L -46.010100,55.504600 M -55.124700,55.565000 L -54.738100,-24.519200 L -54.738100,-24.519200 L -45.900500,55.475000 L -45.955800,55.364500"
+           id="path1777"
+           transform="matrix(-1.837040e-16,-1.000000,1.000070,-1.836910e-16,26.17520,56.43630)" />
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37718001"
+           d="M -40.156300,69.061300 L -40.000000,-11.407500 L -40.000000,-11.407500 L -48.593700,68.748800 L -48.593700,68.748800 L -40.156300,69.061300 z "
+           id="path1779"
+           transform="matrix(-1.060590,1.298720e-16,-1.218850e-16,-0.995220,48.29300,189.1050)" />
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -32.860600,53.044200 L -41.719100,61.902700 L -32.860600,70.761200"
+           id="path1781"
+           transform="matrix(-1.030050,1.261320e-16,-1.261400e-16,-1.029970,56.79590,184.2320)" />
+        <path
+           style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -55.078900,64.794300 L -46.010100,55.504600 M -55.124700,55.565000 L -54.738100,-24.519200 L -54.738100,-24.519200 L -45.900500,55.475000 L -45.955800,55.364500"
+           id="path1783"
+           transform="matrix(-1.000070,1.224610e-16,-1.224700e-16,-1.000000,35.72690,176.1440)" />
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37718001"
+           d="M -40.156300,69.061300 L -40.000000,-11.407500 L -40.000000,-11.407500 L -48.593700,68.748800 L -48.593700,68.748800 L -40.156300,69.061300 z "
+           id="path1785"
+           transform="matrix(6.494050e-17,1.060520,-0.995290,6.093760e-17,168.4440,153.9490)" />
+        <path
+           style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -32.860600,53.044200 L -41.719100,61.902700 L -32.860600,70.761200"
+           id="path1787"
+           transform="matrix(6.307040e-17,1.029980,-1.030040,6.306540e-17,163.5700,145.4470)" />
+        <path
+           style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.37500000"
+           d="M -55.078900,64.794300 L -46.010100,55.504600 M -55.124700,55.565000 L -54.738100,-24.519200 L -54.738100,-24.519200 L -45.900500,55.475000 L -45.955800,55.364500"
+           id="path1789"
+           transform="matrix(6.123460e-17,1.000000,-1.000070,6.123030e-17,155.4820,166.5140)" />
+      </g>
+    </g>
+    <rect
+       transform="matrix(0.999931,1.175590e-2,1.077101e-2,0.999942,0.000000,0.000000)"
+       style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:1.0000000pt"
+       id="rect1859"
+       width="9.0519810"
+       height="9.0064220"
+       x="178.93785"
+       y="73.929436" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18652663"
+       d="M 184.12062,76.354539 L 183.76659,37.804685 L 183.76659,37.804685 L 179.81126,76.156351 L 179.81126,76.156351 L 184.12062,76.354539 z "
+       id="path1863" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18592222"
+       d="M 184.18545,71.915771 L 179.84245,76.258430 L 184.28430,80.699948"
+       id="path1865" />
+    <path
+       style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18051170"
+       d="M 184.20455,80.699080 L 188.52005,76.276354 M 184.13250,76.256050 L 183.88479,37.707373 L 183.88479,37.707373 L 188.57265,76.262698 L 188.54543,76.209207"
+       id="path1867" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18652704"
+       d="M 179.99612,80.645497 L 141.44173,80.131846 L 141.44173,80.131846 L 179.89487,84.951202 L 179.89487,84.951202 L 179.99612,80.645497 z "
+       id="path1869" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18592241"
+       d="M 175.55442,80.480725 L 179.99624,84.922292 L 184.33920,80.579584"
+       id="path1871" />
+    <path
+       style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18051170"
+       d="M 184.34021,80.659316 L 179.81891,76.243468 M 179.89737,80.631364 L 141.34178,80.011405 L 141.34178,80.011405 L 179.80407,76.190549 L 179.75117,76.216571"
+       id="path1873" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18652663"
+       d="M 184.34406,84.923112 L 184.69809,123.47297 L 184.69809,123.47297 L 188.65342,85.121302 L 188.65342,85.121302 L 184.34406,84.923112 z "
+       id="path1875" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18592222"
+       d="M 184.27923,89.362262 L 188.62223,85.019602 L 184.18038,80.578084"
+       id="path1877" />
+    <path
+       sodipodi:nodetypes="ccccccc"
+       style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18051170"
+       d="M 184.26013,80.578722 L 179.94463,85.001452 M 184.33218,85.021752 L 184.57989,123.57043 L 184.57989,123.57043 L 179.89203,85.015102 L 179.86352,84.957134"
+       id="path1879" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18652704"
+       d="M 188.54366,80.633095 L 227.09805,81.146746 L 227.09805,81.146746 L 188.64491,76.327395 L 188.64491,76.327395 L 188.54366,80.633095 z "
+       id="path1881" />
+    <path
+       style="font-size:12.000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18592241"
+       d="M 192.98536,80.797987 L 188.54354,76.356425 L 184.20058,80.699128"
+       id="path1883" />
+    <path
+       style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.18051170"
+       d="M 184.19967,80.619186 L 188.72097,85.035032 M 188.64251,80.647138 L 227.19810,81.267097 L 227.19810,81.267097 L 188.73581,85.087952 L 188.78871,85.061932"
+       id="path1885" />
+  </g>
+  <text
+     style="font-size:47.825783;font-style:italic;font-weight:normal;stroke-width:1.0000000pt;font-family:Palatino Linotype"
+     x="212.39168"
+     y="97.125954"
+     id="text1887"
+     transform="scale(0.966073,1.035119)"><tspan
+       x="212.39168"
+       y="97.125954"
+       sodipodi:role="line"
+       id="tspan1889">N</tspan></text>
+  <text
+     style="font-size:52.966011;font-weight:bold;stroke-width:1.0000000pt;font-family:Palatino Linotype"
+     x="199.16826"
+     y="452.17377"
+     id="text1891"
+     transform="scale(1.044019,0.957837)"><tspan
+       x="199.16826"
+       y="452.17377"
+       sodipodi:role="line"
+       id="tspan1893">S</tspan></text>
+  <text
+     style="font-size:52.328350;font-style:italic;font-weight:normal;stroke-width:1.0000000pt;font-family:Palatino Linotype"
+     x="40.926407"
+     y="259.45203"
+     id="text1895"
+     transform="scale(0.967902,1.033163)"><tspan
+       x="40.926407"
+       y="259.45203"
+       sodipodi:role="line"
+       id="tspan1897">O</tspan></text>
+  <text
+     style="font-size:54.677143;font-style:italic;font-weight:normal;stroke-width:1.0000000pt;font-family:Palatino Linotype"
+     x="369.36926"
+     y="271.09772"
+     id="text1899"
+     transform="scale(1.011346,0.988781)"><tspan
+       x="369.36926"
+       y="271.09772"
+       sodipodi:role="line"
+       id="tspan1901">E</tspan></text>
+</svg>

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/complex.svg
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/rosas_en.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/rosas_en.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/rosas_en.svg	(revision 38262)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   sodipodi:docbase="D:\Download\datos\PRUEBAS\northimages"
+   sodipodi:docname="rosas_en.svg"
+   inkscape:version="0.40+cvs"
+   sodipodi:version="0.32"
+   id="svg2"
+   viewBox="0 0 450 500"
+   height="500"
+   width="450">
+  <metadata
+     id="metadata19">
+    <rdf:RDF
+       id="RDF4">
+      <cc:Work
+         id="Work6"
+         rdf:about="">
+        <dc:format
+           id="format8">image/svg+xml</dc:format>
+        <dc:type
+           id="type10"
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs17" />
+  <sodipodi:namedview
+     inkscape:current-layer="svg2"
+     inkscape:window-y="-4"
+     inkscape:window-x="-4"
+     inkscape:cy="-90.981528"
+     inkscape:cx="372.18750"
+     inkscape:zoom="0.35555853"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1024"
+     inkscape:window-height="719" />
+  <path
+     style="fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+     d="M -2.0567435,213.70043 L -2.0567435,210.68332 L 25.760450,210.68332 L 25.760450,213.70043 L 24.093173,213.70043 L 23.127908,213.79471 L 22.338145,213.98329 L 21.636134,214.36042 L 21.109625,214.83185 L 20.670868,215.39756 L 20.319863,216.15183 L 20.144360,217.00039 L 20.056608,218.03752 L 20.056608,218.98036 L 20.144360,219.92321 L 20.144360,220.67749 L 20.232111,221.33748 L 20.319863,221.90319 L 20.407614,222.37461 L 20.495366,222.65746 L 20.670868,222.84604 L 30.850031,255.84564 L 42.784221,225.95743 L 40.502685,218.60324 L 40.414933,217.18897 L 40.063928,216.05754 L 39.537420,215.02041 L 38.835409,214.36042 L 38.747657,214.36042 L 38.396652,214.26614 L 37.870143,214.17185 L 37.080380,214.07757 L 35.413104,213.79471 L 33.745827,213.70043 L 31.464291,213.70043 L 31.464291,210.68332 L 61.563025,210.68332 L 61.563025,213.70043 L 59.281487,213.70043 L 58.316223,213.79471 L 57.526454,213.88900 L 56.824447,214.17185 L 56.297935,214.45471 L 55.859183,214.92612 L 55.508172,215.39756 L 55.332670,216.05754 L 55.244923,216.81182 L 67.179111,253.95995 L 75.164490,223.50602 L 75.339991,223.22317 L 75.427746,222.94033 L 75.690996,222.46890 L 75.866496,221.80890 L 76.041998,221.05463 L 76.305254,220.20607 L 76.568512,219.16894 L 76.831767,218.03752 L 76.656258,217.00039 L 76.305254,216.15183 L 75.778750,215.39756 L 75.164490,214.83185 L 74.374729,214.36042 L 73.409456,213.98329 L 72.356447,213.79471 L 71.215673,213.70043 L 71.215673,210.68332 L 87.098675,210.68332 L 87.098675,213.70043 L 86.221165,213.79471 L 85.431399,214.17185 L 84.553890,214.64327 L 83.764128,215.39756 L 83.062114,216.34041 L 82.272352,217.47182 L 81.570337,218.88608 L 80.780576,220.39463 L 62.616035,280.17107 L 59.807992,280.17107 L 45.065761,233.21734 L 26.901218,280.17107 L 24.093173,280.17107 L 4.7878655,219.82893 L 4.4368605,218.79180 L 4.1736065,217.94324 L 3.9103515,217.09468 L 3.5593455,216.43468 L 3.2083405,215.77468 L 2.8573355,215.30327 L 2.5940815,214.92612 L 2.2430755,214.64327 L 1.3655605,214.26614 L 0.40029550,213.98329 L -0.74047250,213.79471 L -2.0567435,213.70043 L -2.0567435,213.70043 z M 91.047494,247.26574 L 208.54661,214.36042 L 238.64534,88.679075 L 271.02561,214.36042 L 386.24319,247.26574 L 271.02561,279.60535 L 238.64534,404.06102 L 208.54661,279.60535 L 91.047494,247.26574 L 91.047494,247.26574 z M 211.35466,218.03752 L 113.77511,245.47433 L 236.36380,245.47433 L 211.35466,218.03752 z M 238.03108,247.92573 L 211.96891,277.15396 L 238.03108,380.20701 L 238.03108,247.92573 z M 239.17185,113.09878 L 239.17185,244.81434 L 265.32177,217.37753 L 239.17185,113.09878 z M 368.07866,247.26574 L 239.78611,247.26574 L 266.46253,275.92826 L 368.07866,247.26574 z M 208.02010,77.082068 L 208.02010,74.630670 L 209.07312,74.536387 L 210.03839,74.253529 L 210.91590,74.064961 L 211.70566,73.782104 L 212.40767,73.404969 L 213.02193,73.027827 L 213.54844,72.650692 L 213.89945,72.179267 L 214.25045,71.707842 L 214.60146,71.047855 L 214.77696,70.387869 L 215.04021,69.445012 L 215.12797,68.502168 L 215.30347,67.465040 L 215.30347,66.239338 L 215.39122,64.919359 L 215.39122,17.305641 L 214.33820,16.457080 L 213.54844,15.514234 L 212.93418,14.571388 L 212.49542,13.628541 L 212.31991,13.251404 L 212.05667,12.779980 L 211.61792,12.308558 L 211.09140,11.837134 L 210.47714,11.365711 L 209.77513,10.894289 L 208.89762,10.422866 L 208.02010,10.045727 L 208.02010,6.9343355 L 226.71116,6.9343355 L 259.09142,50.870955 L 259.09142,18.531339 L 259.00366,17.399925 L 259.00366,16.268510 L 258.82816,15.325664 L 258.74041,14.477103 L 258.47716,13.628541 L 258.30166,12.968549 L 257.95064,12.308558 L 257.68740,11.837134 L 257.24864,11.459997 L 256.72213,11.082858 L 256.10787,10.705719 L 255.31811,10.517150 L 254.44059,10.234297 L 253.47533,10.140012 L 252.33456,10.045727 L 251.10604,10.045727 L 251.10604,6.9343355 L 272.69288,6.9343355 L 272.69288,10.045727 L 271.20111,10.045727 L 269.88484,10.140012 L 268.65632,10.234297 L 267.69105,10.422866 L 266.81354,10.611436 L 266.02378,10.894289 L 265.49727,11.177142 L 265.05851,11.554281 L 264.70750,12.025703 L 264.44424,12.591411 L 264.18100,13.251404 L 264.00549,14.099965 L 263.82999,14.948526 L 263.65449,16.079941 L 263.65449,17.211356 L 263.56674,18.531339 L 263.56674,78.307765 L 260.23218,78.307765 L 220.48080,22.774147 L 220.48080,64.919359 L 220.48080,66.239338 L 220.56855,67.465040 L 220.65630,68.502168 L 220.83180,69.445012 L 221.00731,70.387869 L 221.27056,71.047855 L 221.53381,71.707842 L 221.88482,72.179267 L 222.32358,72.650692 L 222.76234,73.027827 L 223.37660,73.404969 L 224.07861,73.782104 L 224.86837,74.064961 L 225.74589,74.253529 L 226.79890,74.536387 L 227.85192,74.630670 L 227.85192,77.082068 L 208.02010,77.082068 L 208.02010,77.082068 z M 217.67276,493.06566 L 217.67276,468.08025 L 221.00731,468.08025 L 221.70932,470.62593 L 222.41133,473.07733 L 223.20109,475.34016 L 224.07861,477.41442 L 224.95612,479.30011 L 225.92139,481.09152 L 226.88666,482.69435 L 228.02742,484.10863 L 229.08044,485.33433 L 230.30896,486.37146 L 231.53748,487.31430 L 232.85375,488.06857 L 234.17002,488.63429 L 235.66179,489.10571 L 237.06582,489.29428 L 238.64534,489.38856 L 240.04936,489.38856 L 241.45338,489.20000 L 242.68191,489.01142 L 243.82267,488.63429 L 244.96344,488.25715 L 245.92871,487.69144 L 246.80622,487.12573 L 247.59599,486.37146 L 248.29800,485.52290 L 248.91226,484.67433 L 249.35100,483.63720 L 249.78976,482.50578 L 250.14078,481.37437 L 250.40402,480.05439 L 250.49178,478.73441 L 250.57953,477.22585 L 250.40402,475.71730 L 250.05302,474.30303 L 249.43876,472.88876 L 248.56125,471.56878 L 247.42048,470.34308 L 246.10421,469.11738 L 244.43693,467.98596 L 242.59416,466.85454 L 233.55576,461.95176 L 231.80074,460.91462 L 230.22120,459.78320 L 228.72943,458.55750 L 227.32541,457.42608 L 226.00914,456.20039 L 224.86837,454.88040 L 223.81535,453.56042 L 222.85009,452.24043 L 222.06033,450.82616 L 221.35832,449.41189 L 220.74405,447.90335 L 220.21755,446.39479 L 219.86654,444.88624 L 219.51553,443.28340 L 219.42778,441.68056 L 219.34004,439.98344 L 219.42778,437.90918 L 219.60329,435.92920 L 220.04204,433.94923 L 220.56855,432.06354 L 221.18281,430.27212 L 222.06033,428.57501 L 223.02560,426.97216 L 224.16636,425.36933 L 225.39488,423.95506 L 226.79890,422.72936 L 228.20292,421.69223 L 229.78245,420.84367 L 231.44972,420.08939 L 233.11700,419.61797 L 234.95978,419.33511 L 236.89031,419.24084 L 237.24132,419.24084 L 237.68008,419.33511 L 238.20658,419.42940 L 238.82085,419.52368 L 239.43511,419.61797 L 240.22487,419.80654 L 241.10238,419.99511 L 242.06764,420.18367 L 244.17368,420.74938 L 246.45522,421.50367 L 249.00000,422.44650 L 251.72030,423.57793 L 252.24681,423.57793 L 253.03657,423.48364 L 253.73858,423.29506 L 254.35284,422.91793 L 254.79160,422.44650 L 255.14261,421.88080 L 255.40586,421.12652 L 255.58137,420.27797 L 255.66911,419.24084 L 259.09142,419.24084 L 259.09142,441.86913 L 256.19563,441.86913 L 255.40586,439.70058 L 254.61610,437.72060 L 253.73858,435.83492 L 252.77332,434.13780 L 251.80805,432.53495 L 250.84279,431.02641 L 249.78976,429.70642 L 248.73674,428.57501 L 247.59599,427.53788 L 246.45522,426.59503 L 245.22670,425.84075 L 243.99818,425.27504 L 242.68191,424.80362 L 241.36564,424.42649 L 240.04936,424.23791 L 238.64534,424.14363 L 236.36380,424.23791 L 234.43328,424.70933 L 232.76600,425.36933 L 231.36197,426.31217 L 230.30896,427.44359 L 229.60695,428.95215 L 229.16819,430.64927 L 228.99269,432.72353 L 228.99269,433.85494 L 229.08044,434.89207 L 229.16819,435.83492 L 229.34369,436.77776 L 229.51920,437.43776 L 229.78245,438.09775 L 230.04570,438.66345 L 230.39671,439.13488 L 230.83546,439.51202 L 231.27423,439.98344 L 231.88848,440.45486 L 232.59050,441.02057 L 233.38026,441.58628 L 234.25778,442.24627 L 235.31078,442.90626 L 236.36380,443.66054 L 247.15723,449.12904 L 248.73674,450.35474 L 250.22853,451.48616 L 251.54480,452.71186 L 252.86107,454.03184 L 254.00184,455.25754 L 255.14261,456.57752 L 256.10787,457.99179 L 256.89762,459.40606 L 257.68740,460.82034 L 258.38941,462.23460 L 258.91591,463.74315 L 259.35467,465.25171 L 259.70568,466.85454 L 259.96893,468.45738 L 260.14443,470.06022 L 260.23218,471.75734 L 260.14443,474.11446 L 259.88118,476.37729 L 259.44242,478.45155 L 258.74041,480.52581 L 257.95064,482.41150 L 256.98538,484.10863 L 255.84462,485.80574 L 254.52835,487.31430 L 253.03657,488.63429 L 251.36930,489.85998 L 249.52652,490.80283 L 247.59599,491.65139 L 245.40220,492.21710 L 243.12066,492.68852 L 240.66362,492.97138 L 238.03108,493.06566 L 235.83730,492.97138 L 233.55576,492.59424 L 231.27423,492.02853 L 228.99269,491.27425 L 227.93967,490.80283 L 226.97440,490.42569 L 226.09690,490.14283 L 225.39488,489.85998 L 224.86837,489.67142 L 224.42962,489.48285 L 224.07861,489.48285 L 223.90310,489.38856 L 223.20109,489.48285 L 222.67458,489.67142 L 222.14808,489.95427 L 221.70932,490.33141 L 221.44607,490.80283 L 221.18281,491.46283 L 221.09506,492.21710 L 221.00731,493.06566 L 217.67276,493.06566 L 217.67276,493.06566 z M 393.00005,280.17107 L 393.00005,277.15396 L 394.22857,277.15396 L 395.36934,277.05968 L 396.42235,276.87110 L 397.29987,276.68253 L 398.08963,276.49396 L 398.79165,276.11683 L 399.40591,275.73969 L 399.84466,275.36255 L 400.28341,274.79685 L 400.63443,274.23113 L 400.89767,273.47686 L 401.16093,272.62830 L 401.33643,271.59117 L 401.42419,270.55403 L 401.51194,269.32834 L 401.51194,268.00835 L 401.51194,222.84604 L 401.51194,221.24319 L 401.42419,219.82893 L 401.33643,218.60324 L 401.16093,217.47182 L 400.98543,216.52897 L 400.72218,215.77468 L 400.45892,215.11470 L 400.10792,214.64327 L 399.75691,214.26614 L 399.23039,213.98329 L 398.52840,213.70043 L 397.82638,213.51185 L 396.94887,213.32329 L 395.89585,213.22901 L 394.84283,213.13473 L 393.61431,213.13473 L 393.61431,210.68332 L 446.44065,210.68332 L 446.44065,230.76594 L 445.29988,230.76594 L 444.94888,228.31455 L 444.42238,226.05172 L 443.89587,223.97746 L 443.19386,222.18604 L 442.40409,220.58321 L 441.52658,219.16894 L 440.47356,218.03752 L 439.33279,217.09468 L 438.01652,216.34041 L 436.52474,215.58612 L 434.76972,215.02041 L 432.83918,214.54899 L 430.73315,214.17185 L 428.36387,213.98329 L 425.81908,213.79471 L 423.09878,213.70043 L 422.04576,213.70043 L 421.08050,213.79471 L 420.20299,213.88900 L 419.41322,213.98329 L 418.79896,214.07757 L 418.18470,214.26614 L 417.74595,214.45471 L 417.48270,214.64327 L 417.21944,214.92612 L 416.95618,215.39756 L 416.78068,215.86897 L 416.60518,216.52897 L 416.42968,217.37753 L 416.34192,218.22609 L 416.34192,219.26322 L 416.34192,220.39463 L 416.34192,242.36294 L 417.48270,242.36294 L 419.23772,242.36294 L 420.81725,242.17438 L 422.30902,241.89152 L 423.71304,241.51438 L 424.94156,241.04296 L 425.99458,240.47725 L 426.87209,239.81726 L 427.66186,239.06298 L 428.36387,238.12014 L 428.97812,236.98872 L 429.68013,235.66874 L 430.20664,234.25447 L 430.73315,232.55735 L 431.25966,230.76594 L 431.78617,228.69168 L 432.22493,226.52313 L 434.50646,226.52313 L 434.50646,261.31415 L 432.22493,261.31415 L 431.87392,259.14560 L 431.52292,257.07134 L 431.08416,255.27994 L 430.64540,253.58281 L 430.11889,252.16855 L 429.50464,250.84855 L 428.89038,249.71715 L 428.27612,248.77429 L 427.48636,248.02002 L 426.52109,247.36003 L 425.38032,246.79432 L 424.15180,246.32290 L 422.66002,245.94576 L 421.08050,245.66290 L 419.32547,245.47433 L 417.48270,245.47433 L 416.34192,245.47433 L 416.34192,269.23405 L 416.34192,270.27118 L 416.34192,271.11974 L 416.42968,271.96830 L 416.51743,272.62830 L 416.60518,273.28829 L 416.78068,273.75971 L 416.95618,274.13686 L 417.13169,274.41970 L 417.39494,274.60827 L 417.83370,274.79685 L 418.36021,274.98542 L 418.97447,275.07970 L 419.67648,275.17398 L 420.55400,275.26827 L 421.51926,275.26827 L 422.57227,275.36255 L 426.52109,275.36255 L 428.62712,275.26827 L 430.55766,275.07970 L 432.48818,274.70256 L 434.33097,274.23113 L 435.99824,273.66543 L 437.66552,272.91115 L 439.15729,272.06259 L 440.56131,271.02547 L 441.87759,269.89405 L 443.19386,268.66835 L 444.33462,267.25408 L 445.38764,265.74552 L 446.35291,264.04840 L 447.23042,262.25699 L 448.02018,260.27702 L 448.63444,258.20276 L 452.05674,258.20276 L 446.96716,280.17107 L 393.00005,280.17107 L 393.00005,280.17107 z "
+     id="path14" />
+</svg>

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/rosas_en.svg
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_20.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_20.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_20.svg	(revision 38262)
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <rect
+       width="2.1465743"
+       height="0"
+       x="-2192.2886"
+       y="679.51837"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.33699989;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect10945" />
+    <g
+       transform="translate(11.428571,-31.428571)"
+       id="g2691">
+      <path
+         d="M 368.39001 537.05811 A 8.5231619 8.5231619 0 1 1  351.34369,537.05811 A 8.5231619 8.5231619 0 1 1  368.39001 537.05811 z"
+         transform="matrix(7.6127586,0,0,4.9447,-2569.3395,-2348.7304)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99897921;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 170.38701,266.10392 L 170.85897,307.35786 L 232.55538,307.0628 C 231.23495,287.06589 219.06732,268.96046 170.38701,266.10392 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.77328086;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1874" />
+      <path
+         d="M 232.17955,308.33172 L 170.4789,308.6562 L 170.92016,351.07171 C 200.82811,350.16397 227.90719,341.79882 232.17955,308.33172 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.79813766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2762" />
+      <path
+         d="M 169.07523,351.21743 L 168.60008,307.86897 L 106.49085,308.17902 C 107.82008,329.19117 120.06914,348.21581 169.07523,351.21743 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82381284;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2764" />
+      <path
+         d="M 107.6676,306.89368 L 169.23133,306.58106 L 168.79106,265.71362 C 138.94945,266.58828 111.93049,274.64807 107.6676,306.89368 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.76305711;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2766" />
+      <path
+         d="M 369.27388 534.87994 A 0.91545075 0.91545075 0 1 1  367.44298,534.87994 A 0.91545075 0.91545075 0 1 1  369.27388 534.87994 z"
+         transform="matrix(9.0351562,0,0,7.0465837,-3158.5547,-3463.0081)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path3653" />
+      <g
+         transform="matrix(-7.5816931,0,0,5.9450504,2913.1796,-2901.1405)"
+         id="g6328">
+        <path
+           d="M 360,527.36218 L 360,532.36218 L 362,532.36218 L 362,527.36218 L 360,527.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6330" />
+        <path
+           d="M 362.05536,527.34679 L 362.05536,532.34679 L 364.05536,532.34679 L 364.05536,527.34679 L 362.05536,527.34679 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6332" />
+      </g>
+      <g
+         transform="matrix(-7.5816931,0,0,8.0021747,2753.7327,-4118.7553)"
+         id="g7281">
+        <path
+           d="M 335.58543,544.35634 L 340.58543,539.35634 L 340.58543,543.79349 L 335.58543,544.35634 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7277" />
+        <path
+           d="M 345.85,544.38592 L 340.85,539.38592 L 340.85,543.77616 L 345.85,544.38592 z "
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7279" />
+      </g>
+      <g
+         transform="matrix(0,4.9449326,-20.276994,0,11031,-1482.2875)"
+         id="g6384">
+        <path
+           d="M 360,527.36218 L 360,532.36218 L 362,532.36218 L 362,527.36218 L 360,527.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6386" />
+        <path
+           d="M 362.05536,527.34679 L 362.05536,532.34679 L 364.05536,532.34679 L 364.05536,527.34679 L 362.05536,527.34679 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6388" />
+      </g>
+      <g
+         transform="matrix(0,4.9449326,-8.7655457,0,5106.2826,-1378.7352)"
+         id="g7285">
+        <path
+           d="M 335.58543,544.35634 L 340.58543,539.35634 L 340.58543,543.79349 L 335.58543,544.35634 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7287" />
+        <path
+           d="M 345.85,544.38592 L 340.85,539.38592 L 340.85,543.77616 L 345.85,544.38592 z "
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7289" />
+      </g>
+      <g
+         transform="matrix(7.5816931,0,0,3.5607864,-2574.2398,-1531.313)"
+         id="g6324">
+        <path
+           d="M 360,527.36218 L 360,532.36218 L 362,532.36218 L 362,527.36218 L 360,527.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5435" />
+        <path
+           d="M 362.05536,527.34679 L 362.05536,532.34679 L 364.05536,532.34679 L 364.05536,527.34679 L 362.05536,527.34679 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6322" />
+      </g>
+      <path
+         d="M 129.73354,362.40528 L 167.642,386.36978 L 167.642,365.10296 L 129.73354,362.40528 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.80843782;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path7293" />
+      <path
+         d="M 207.55636,362.26351 L 169.64789,386.22801 L 169.64789,365.18603 L 207.55636,362.26351 z "
+         style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.80843782;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path7295" />
+      <g
+         transform="matrix(6.1470247,0,0,4.9449326,-2161.6542,-2305.1099)"
+         id="g7311">
+        <g
+           transform="matrix(0,-1,1.091992,0,-211.7912,890.2011)"
+           id="g6378">
+          <path
+             d="M 360,527.36218 L 360,532.36218 L 362,532.36218 L 362,527.36218 L 360,527.36218 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6380" />
+          <path
+             d="M 362.05536,527.34679 L 362.05536,532.34679 L 364.05536,532.34679 L 364.05536,527.34679 L 362.05536,527.34679 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6382" />
+        </g>
+        <g
+           transform="matrix(0,-1,1.346023,0,-368.0639,868.7946)"
+           id="g7297">
+          <path
+             d="M 335.58543,544.35634 L 340.58543,539.35634 L 340.58543,543.79349 L 335.58543,544.35634 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7299" />
+          <path
+             d="M 345.85,544.38592 L 340.85,539.38592 L 340.85,543.77616 L 345.85,544.38592 z "
+             style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7301" />
+        </g>
+      </g>
+      <path
+         d="M 393.26214,295.13612 L 418.07515,295.13612 L 418.07515,299.809 L 402.54147,299.809 L 402.54147,303.28753 L 416.95101,303.28753 L 416.95101,307.7514 L 402.54147,307.7514 L 402.54147,312.06597 L 418.52481,312.06597 L 418.52481,317.0225 L 393.26214,317.0225 L 393.26214,295.13612 z "
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 155.67772,169.28237 L 164.32345,169.28237 L 175.60581,181.39004 L 175.60581,169.28237 L 184.33328,169.28237 L 184.33328,191.16875 L 175.60581,191.16875 L 164.38476,179.15065 L 164.38476,191.16875 L 155.67772,191.16875 L 155.67772,169.28237 z "
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_21.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_21.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_21.svg	(revision 38262)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-92.857142,-195.71428)"
+       id="g2364">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(120.2025,165.8597)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-38.47829,7.819412)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 220.71428 511.11218 A 13.75 13.75 0 1 1  193.21428,511.11218 A 13.75 13.75 0 1 1  220.71428 511.11218 z"
+         transform="translate(101.7775,-47.67051)"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.4000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1938" />
+      <path
+         d="M 472.75139 523.5473 A 91.418808 91.418808 0 1 1  289.91377,523.5473 A 91.418808 91.418808 0 1 1  472.75139 523.5473 z"
+         transform="matrix(1.103132,0,0,1.104543,-111.8861,-117.992)"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:13.62841034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1874" />
+      <path
+         d="M 308.94088,369.67111 L 308.29193,460.78352 L 220.68561,459.69885 C 223.97374,407.73276 254.12263,376.98009 308.94088,369.67111 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95903033px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1878" />
+      <g
+         transform="matrix(0.748443,0,0,0.836937,592.2214,44.12846)"
+         id="g11445">
+        <path
+           d="M -379.17633,368.23588 L -368.03889,368.23588 L -368.03889,351.45051 L -379.17633,343.05783 L -379.17633,368.23588 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path9671" />
+        <path
+           d="M -380.00271,368.16549 L -391.14015,368.16549 L -391.14015,351.38012 L -380.00271,342.98744 L -380.00271,368.16549 z "
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path11443" />
+      </g>
+      <g
+         transform="matrix(0,-0.748443,-0.836937,0,723.9117,180.5106)"
+         id="g11455">
+        <path
+           d="M -379.17633,368.23588 L -368.03889,368.23588 L -368.03889,351.45051 L -379.17633,343.05783 L -379.17633,368.23588 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path11457" />
+        <path
+           d="M -380.00271,368.16549 L -391.14015,368.16549 L -391.14015,351.38012 L -380.00271,342.98744 L -380.00271,368.16549 z "
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path11459" />
+      </g>
+      <g
+         transform="matrix(-0.748443,0,0,-0.836937,27.8102,872.4654)"
+         id="g11461">
+        <path
+           d="M -379.17633,368.23588 L -368.03889,368.23588 L -368.03889,351.45051 L -379.17633,343.05783 L -379.17633,368.23588 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path11463" />
+        <path
+           d="M -380.00271,368.16549 L -391.14015,368.16549 L -391.14015,351.38012 L -380.00271,342.98744 L -380.00271,368.16549 z "
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path11465" />
+      </g>
+      <g
+         transform="matrix(0,0.748443,0.836937,0,-106.4708,741.7747)"
+         id="g11467">
+        <path
+           d="M -379.17633,368.23588 L -368.03889,368.23588 L -368.03889,351.45051 L -379.17633,343.05783 L -379.17633,368.23588 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path11469" />
+        <path
+           d="M -380.00271,368.16549 L -391.14015,368.16549 L -391.14015,351.38012 L -380.00271,342.98744 L -380.00271,368.16549 z "
+           style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03415477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path11471" />
+      </g>
+      <path
+         d="M 398.45405,461.44366 L 311.60102,462.08755 L 312.63499,549.01098 C 362.43443,540.42613 393.65787,513.7814 398.45405,461.44366 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93268889px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1876" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_22.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_22.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_22.svg	(revision 38262)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.7610147,0,0,0.7418529,-2.8013926,-128.06592)"
+       id="g2293">
+      <path
+         d="M 275.19412,366.68346 L 275.19412,336.68346 L 290.89409,326.68346 L 305.19412,336.68346 L 305.19412,366.68346 L 275.19412,366.68346 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2780" />
+      <path
+         d="M 155.58314,526.74089 L 125.58314,526.74089 L 115.58314,511.04092 L 125.58314,496.74089 L 155.58314,496.74089 L 155.58314,526.74089 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2782" />
+      <path
+         d="M 308.30616,644.35431 L 308.30616,674.35431 L 292.60619,684.35431 L 278.30616,674.35431 L 278.30616,644.35431 L 308.30616,644.35431 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2786" />
+      <path
+         d="M 432.89731,489.92235 L 462.89731,489.92235 L 472.89731,505.62232 L 462.89731,519.92235 L 432.89731,519.92235 L 432.89731,489.92235 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path2788" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-54.80588,7.726692)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(153.0974,210.0349)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 432.34531 496.77829 A 129.29953 129.29953 0 1 1  173.74625,496.77829 A 129.29953 129.29953 0 1 1  432.34531 496.77829 z"
+         transform="translate(-10,8.571429)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:22.97900009;stroke-linejoin:round;stroke-miterlimit:0.89999998;stroke-dasharray:none;stroke-opacity:1"
+         id="path2010" />
+      <rect
+         width="24.999969"
+         height="59.184189"
+         x="277.85718"
+         y="478.17795"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:1.29999995;stroke-dasharray:none;stroke-opacity:1"
+         id="rect3784" />
+      <rect
+         width="73.387772"
+         height="119.3559"
+         x="254.44786"
+         y="448.84995"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:11.91275311;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:1.5;stroke-dasharray:none;stroke-opacity:1"
+         id="rect5556" />
+      <rect
+         width="145.98987"
+         height="183.63167"
+         x="219.05891"
+         y="417.39328"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:20.84075737;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:1.5;stroke-dasharray:none;stroke-opacity:1"
+         id="rect6443" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_40.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_40.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_40.svg	(revision 38262)
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.8369185,0,0,0.8360407,-85.210991,-36.850036)"
+       id="g2624">
+      <g
+         transform="matrix(0.791217,0,0,0.784707,193.4718,-11.49344)"
+         id="g7487">
+        <g
+           transform="translate(-128.7692,0)"
+           id="g4677">
+          <g
+             transform="matrix(0.971457,0,0,0.854229,7.969158,79.25222)"
+             id="g2880">
+            <g
+               transform="matrix(1,0,0,1.094658,-7.576144,-116.9675)"
+               id="g2816">
+              <g
+                 transform="matrix(0,0.977376,-1.108433,0,946.5542,176.5779)"
+                 id="g2774">
+                <g
+                   id="g2764">
+                  <path
+                     d="M 361.26494,521.30569 L 361.26494,531.09724 L 372.73506,531.09724 C 372.17308,525.85757 370.20395,521.47039 361.26494,521.30569 z "
+                     style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path1872" />
+                  <path
+                     d="M 361.08929,521.27289 L 361.08929,531.06444 L 349.61917,531.06444 C 350.18115,525.82477 352.15028,521.43759 361.08929,521.27289 z "
+                     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path2762" />
+                </g>
+                <g
+                   transform="matrix(-1,0,0,-1,722.3542,1062.297)"
+                   id="g2768">
+                  <path
+                     d="M 361.26494,521.30569 L 361.26494,531.09724 L 372.73506,531.09724 C 372.17308,525.85757 370.20395,521.47039 361.26494,521.30569 z "
+                     style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path2770" />
+                  <path
+                     d="M 361.08929,521.27289 L 361.08929,531.06444 L 349.61917,531.06444 C 350.18115,525.82477 352.15028,521.43759 361.08929,521.27289 z "
+                     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path2772" />
+                </g>
+              </g>
+              <g
+                 transform="matrix(2.103961,0,0,2.23862,-402.8135,-659.013)"
+                 id="g2788">
+                <g
+                   id="g2790">
+                  <path
+                     d="M 361.26494,521.30569 L 361.26494,531.09724 L 372.73506,531.09724 C 372.17308,525.85757 370.20395,521.47039 361.26494,521.30569 z "
+                     style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path2792" />
+                  <path
+                     d="M 361.08929,521.27289 L 361.08929,531.06444 L 349.61917,531.06444 C 350.18115,525.82477 352.15028,521.43759 361.08929,521.27289 z "
+                     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path2794" />
+                </g>
+                <g
+                   transform="matrix(-1,0,0,-1,722.3542,1062.297)"
+                   id="g2796">
+                  <path
+                     d="M 361.26494,521.30569 L 361.26494,531.09724 L 372.73506,531.09724 C 372.17308,525.85757 370.20395,521.47039 361.26494,521.30569 z "
+                     style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path2798" />
+                  <path
+                     d="M 361.08929,521.27289 L 361.08929,531.06444 L 349.61917,531.06444 C 350.18115,525.82477 352.15028,521.43759 361.08929,521.27289 z "
+                     style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.52988255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                     id="path2800" />
+                </g>
+              </g>
+            </g>
+            <g
+               transform="matrix(0,-7.547046,6.042845,0,-2725.338,3604.531)"
+               id="g2842">
+              <path
+                 d="M 427.36015,509.11223 L 416.50687,509.11223 L 416.50687,520.32285 C 422.3147,519.77359 427.17759,517.84901 427.36015,509.11223 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.55152494;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2806" />
+              <path
+                 d="M 427.27025,508.84857 L 416.41697,508.84857 L 416.41697,497.63795 C 422.22479,498.18721 427.08769,500.11179 427.27025,508.84857 z "
+                 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.55152494;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2808" />
+            </g>
+            <g
+               transform="matrix(0,7.547046,-6.042845,0,3425.287,-2683.494)"
+               id="g2874">
+              <path
+                 d="M 427.36015,509.11223 L 416.50687,509.11223 L 416.50687,520.32285 C 422.3147,519.77359 427.17759,517.84901 427.36015,509.11223 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.55152494;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2876" />
+              <path
+                 d="M 427.27025,508.84857 L 416.41697,508.84857 L 416.41697,497.63795 C 422.22479,498.18721 427.08769,500.11179 427.27025,508.84857 z "
+                 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.55152494;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2878" />
+            </g>
+          </g>
+          <path
+             d="M 264.65997 434.6539 A 75.00383 84.34774 0 1 1  114.65231,434.6539 A 75.00383 84.34774 0 1 1  264.65997 434.6539 z"
+             transform="matrix(0.909272,0,0,0.889383,179.589,85.28945)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:12.19096565;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2903" />
+        </g>
+        <path
+           d="M 321.73359 471.77701 A 98.742409 98.742409 0 1 1  124.24877,471.77701 A 98.742409 98.742409 0 1 1  321.73359 471.77701 z"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:10.9630003;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4675" />
+        <path
+           d="M 415.17269 425.81506 A 18.940361 18.940361 0 1 1  377.29197,425.81506 A 18.940361 18.940361 0 1 1  415.17269 425.81506 z"
+           transform="translate(-177.2818,48.9924)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:10.9630003;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4702" />
+        <g
+           transform="matrix(0.773465,-0.806212,0.773465,0.806212,-489.2498,310.4752)"
+           id="g7363">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4704" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5591" />
+        </g>
+        <g
+           transform="matrix(0,-1,1.370927,0,-525.4876,834.2622)"
+           id="g7367">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7369" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7371" />
+        </g>
+        <g
+           transform="matrix(-1,0,0,-1,576.7521,1043.131)"
+           id="g7373">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7375" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7377" />
+        </g>
+        <g
+           transform="matrix(0,1,-1.320327,0,946.7844,109.6182)"
+           id="g7379">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7381" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7383" />
+        </g>
+        <g
+           transform="matrix(-6.349602,0,0,7.893866,2509.173,-3511.318)"
+           id="g7385">
+          <path
+             d="M 360.35808,491.65901 L 354.57049,492.29557 L 360.24559,477.11659 L 360.35808,491.65901 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7387" />
+          <path
+             d="M 360.35787,491.43225 L 365.67544,492.52265 L 360.24538,476.85781 L 360.35787,491.43225 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7389" />
+        </g>
+        <g
+           transform="matrix(0.806212,0.773465,-0.806212,0.773465,380.4122,-244.3374)"
+           id="g7391">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7393" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7395" />
+        </g>
+        <g
+           transform="matrix(-0.773465,0.806212,-0.773465,-0.806212,938.1283,630.2744)"
+           id="g7397">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7399" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7401" />
+        </g>
+        <g
+           transform="matrix(-0.806212,-0.773465,0.806212,-0.773465,61.40929,1183.452)"
+           id="g7403">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7405" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7407" />
+        </g>
+        <g
+           transform="translate(-138.8727,-100.1242)"
+           id="g7409">
+          <path
+             d="M 360.24559,497.35523 L 354.57049,492.29557 L 360.24559,477.11659 L 360.24559,497.35523 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7411" />
+          <path
+             d="M 360.24538,497.74427 L 365.67544,492.52265 L 360.24538,476.85781 L 360.24538,497.74427 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7413" />
+        </g>
+        <g
+           transform="matrix(6.349602,0,0,-7.893866,-2068.875,4452.955)"
+           id="g7415">
+          <path
+             d="M 360.35808,491.65901 L 354.57049,492.29557 L 360.24559,477.11659 L 360.35808,491.65901 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7417" />
+          <path
+             d="M 360.35787,491.43225 L 365.67544,492.52265 L 360.24538,476.85781 L 360.35787,491.43225 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7419" />
+        </g>
+        <g
+           transform="matrix(0,-6.349602,-7.893866,0,4204.025,2755.34)"
+           id="g7421">
+          <path
+             d="M 360.35808,491.65901 L 354.57049,492.29557 L 360.24559,477.11659 L 360.35808,491.65901 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7423" />
+          <path
+             d="M 360.35787,491.43225 L 365.67544,492.52265 L 360.24538,476.85781 L 360.35787,491.43225 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7425" />
+        </g>
+        <g
+           transform="matrix(0,6.349602,7.893866,0,-3760.225,-1814.241)"
+           id="g7427">
+          <path
+             d="M 360.35808,491.65901 L 354.57049,492.29557 L 360.24559,477.11659 L 360.35808,491.65901 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.414;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7429" />
+          <path
+             d="M 360.35787,491.43225 L 365.67544,492.52265 L 360.24538,476.85781 L 360.35787,491.43225 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.30639601;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7431" />
+        </g>
+        <g
+           transform="matrix(0,1,-1,0,697.4462,233.063)"
+           id="g7459">
+          <path
+             d="M 305.70361,545.14042 L 280.24237,567.55227 L 341.6215,582.21057 L 305.70361,545.14042 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88635445;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7447" />
+          <path
+             d="M 307.13089,545.75404 L 326.94823,520.3061 L 344.28179,583.86251 L 307.13089,545.75404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.43641043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7449" />
+        </g>
+        <g
+           transform="matrix(-1,0,0,-1,460.0686,944.3811)"
+           id="g7469">
+          <path
+             d="M 305.70361,545.14042 L 280.24237,567.55227 L 341.6215,582.21057 L 305.70361,545.14042 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88635445;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7471" />
+          <path
+             d="M 307.13089,545.75404 L 326.94823,520.3061 L 344.28179,583.86251 L 307.13089,545.75404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.43641043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7473" />
+        </g>
+        <g
+           transform="matrix(0,-1,1,0,-252.7986,704.8668)"
+           id="g7475">
+          <path
+             d="M 305.70361,545.14042 L 280.24237,567.55227 L 341.6215,582.21057 L 305.70361,545.14042 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88635445;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7477" />
+          <path
+             d="M 307.13089,545.75404 L 326.94823,520.3061 L 344.28179,583.86251 L 307.13089,545.75404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.43641043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7479" />
+        </g>
+        <g
+           transform="translate(-12.50478,-4.722123)"
+           id="g7481">
+          <path
+             d="M 305.70361,545.14042 L 280.24237,567.55227 L 341.6215,582.21057 L 305.70361,545.14042 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88635445;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7483" />
+          <path
+             d="M 307.13089,545.75404 L 326.94823,520.3061 L 344.28179,583.86251 L 307.13089,545.75404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1.43641043;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path7485" />
+        </g>
+      </g>
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(24.02516,-131.2246)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(221.9285,59.65504)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_23.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_23.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_23.svg	(revision 38262)
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.8532494,0,0,0.761749,-99.778453,-68.522937)"
+       id="g2351">
+      <path
+         d="M -28.571419 510.93362 A 127.14286 127.14286 0 1 1  -282.85714,510.93362 A 127.14286 127.14286 0 1 1  -28.571419 510.93362 z"
+         transform="matrix(0.8185667,0,0,0.8477863,506.79762,-8.5147898)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.91922426;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2259" />
+      <g
+         transform="matrix(0,-0.758562,0.763105,0,6.8490004,23.428044)"
+         id="g3314">
+        <path
+           d="M -472.14286,541.6479 L -432.85714,533.07647 L -428.57143,604.50504 L -472.14286,541.6479 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3308" />
+        <path
+           d="M -428.57142,605.93362 L -494.28571,575.21933 L -471.42857,540.93361 L -428.57142,605.93362 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3312" />
+      </g>
+      <g
+         transform="matrix(0,0.758562,-0.763105,0,751.15132,828.76865)"
+         id="g3321">
+        <path
+           d="M -472.14286,541.6479 L -432.85714,533.07647 L -428.57143,604.50504 L -472.14286,541.6479 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3323" />
+        <path
+           d="M -428.57142,605.93362 L -494.28571,575.21933 L -471.42857,540.93361 L -428.57142,605.93362 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3325" />
+      </g>
+      <g
+         transform="matrix(0.763105,0,0,0.758562,789.70201,45.208672)"
+         id="g3327">
+        <path
+           d="M -472.14286,541.6479 L -432.85714,533.07647 L -428.57143,604.50504 L -472.14286,541.6479 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3329" />
+        <path
+           d="M -428.57142,605.93362 L -494.28571,575.21933 L -471.42857,540.93361 L -428.57142,605.93362 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3331" />
+      </g>
+      <g
+         transform="matrix(-0.763105,0,0,-0.758562,-30.163195,805.00654)"
+         id="g3333">
+        <path
+           d="M -472.14286,541.6479 L -432.85714,533.07647 L -428.57143,604.50504 L -472.14286,541.6479 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3335" />
+        <path
+           d="M -428.57142,605.93362 L -494.28571,575.21933 L -471.42857,540.93361 L -428.57142,605.93362 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3337" />
+      </g>
+      <path
+         d="M 338.63805,386.97205 L 379.69891,268.42909 L 420.75975,386.97205 L 543.94237,426.48637 L 420.75975,466.0007 L 379.69891,584.54365 L 338.63805,466.0007 L 215.45549,426.48637 L 338.63805,386.97205 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:8.05603409px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 418.12436,383.16019 L 383.47915,422.84897 L 383.47915,279.96937 L 418.12436,383.16019 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.4162693px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1892" />
+      <path
+         d="M 421.1571,460.61889 L 378.46158,428.38341 L 532.16537,428.38341 L 421.1571,460.61889 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.41973352px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1894" />
+      <path
+         d="M 335.88577,390.55616 L 377.15359,422.90219 L 228.5895,422.90219 L 335.88577,390.55616 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.30712128px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1896" />
+      <path
+         d="M 341.95835,480.83114 L 379.05515,441.08949 L 379.05515,584.15943 L 341.95835,480.83114 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.67929459px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1898" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="matrix(1.2766808,0,0,1.2303519,151.83018,56.391499)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(1.2766808,0,0,1.2303519,-61.418448,-143.70626)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+      <path
+         d="M 79.802052 680.62604 A 24.748737 26.263966 0 1 1  30.304577,680.62604 A 24.748737 26.263966 0 1 1  79.802052 680.62604 z"
+         transform="matrix(0.763105,0,0,0.758562,340.01378,-89.163903)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:none;stroke-width:20.46800041;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path10789" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_41.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_41.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_41.svg	(revision 38262)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.082866,0,0,1.1213034,-202.9737,-324.75211)"
+       id="g2552">
+      <path
+         d="M 420.22346 526.07269 A 72.225906 72.225906 0 1 1  275.77165,526.07269 A 72.225906 72.225906 0 1 1  420.22346 526.07269 z"
+         transform="matrix(1.793901,0,0,1.759529,-226.3569,-421.2793)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 349.00772 525.31506 A 4.2931485 5.8083773 0 1 1  340.42142,525.31506 A 4.2931485 5.8083773 0 1 1  349.00772 525.31506 z"
+         transform="matrix(2.024842,0,0,1.476896,-305.6869,-268.054)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1874" />
+      <path
+         d="M 391.3786,491.58647 L 384.2245,481.4665 L 391.3786,451.10659 L 391.3786,491.58647 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1876" />
+      <path
+         d="M 391.07227,491.58647 L 398.22637,481.4665 L 391.07227,451.10659 L 391.07227,491.58647 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1878" />
+      <g
+         transform="matrix(0,1.57571,-3.576656,-1.556359e-4,2364.573,-90.43622)"
+         id="g1884">
+        <path
+           d="M 380,547.36218 L 375,542.36218 L 380,527.36218 L 380,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1886" />
+        <path
+           d="M 379.91071,547.36218 L 384.91071,542.36218 L 379.91071,527.36218 L 379.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1888" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(156.2568,208.1376)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="translate(53.67975,300.184)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2037" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(48.7288,113.1833)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+      <path
+         d="M 323.98047,297.71605 C 323.98047,291.1718 325.80338,286.07675 329.44922,282.43089 C 333.09504,278.7851 338.17186,276.96218 344.67969,276.96214 C 351.35153,276.96218 356.49215,278.75319 360.10156,282.33519 C 363.7109,285.91725 365.51558,290.93482 365.51563,297.38792 C 365.51558,302.07283 364.72717,305.91463 363.15039,308.91331 C 361.57353,311.91202 359.29488,314.24535 356.31445,315.91331 C 353.33395,317.58128 349.61976,318.41526 345.17188,318.41526 C 340.65102,318.41526 336.90949,317.69521 333.94727,316.25511 C 330.98502,314.81501 328.58333,312.53636 326.74219,309.41917 C 324.90104,306.302 323.98047,302.40096 323.98047,297.71605 L 323.98047,297.71605 z M 336.36719,297.77073 C 336.36717,301.81762 337.11912,304.72517 338.62305,306.49339 C 340.12693,308.26163 342.17316,309.14574 344.76172,309.14573 C 347.42315,309.14574 349.48304,308.27986 350.94141,306.54808 C 352.39971,304.81632 353.12887,301.70825 353.12891,297.22386 C 353.12887,293.45045 352.36781,290.69329 350.8457,288.95237 C 349.32354,287.21152 347.25909,286.34108 344.65234,286.34105 C 342.15493,286.34108 340.14972,287.22519 338.63672,288.99339 C 337.12368,290.76165 336.36717,293.68742 336.36719,297.77073 L 336.36719,297.77073 z "
+         transform="translate(-40.88264,207.4234)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2053" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(0.235703,0.235703,-0.502149,0.502149,671.0318,92.90989)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2584" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(0.235703,0.235703,-0.502149,0.502149,633.139,62.37056)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2586" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(0.235703,-0.235703,0.502149,0.502149,-48.48814,267.3679)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2588" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(0.235703,-0.235703,0.502149,0.502149,-7.893392,233.3536)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2590" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(0.235703,-0.235703,0.502149,0.502149,107.2289,416.8547)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2592" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(0.235703,-0.235703,0.502149,0.502149,146.5118,377.1568)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2594" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(-0.235703,-0.235703,0.502149,-0.502149,152.5393,940.9112)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2596" />
+      <path
+         d="M 356.25001 526.20148 A 6.1607141 6.1607141 0 1 1  343.92858,526.20148 A 6.1607141 6.1607141 0 1 1  356.25001 526.20148 z"
+         transform="matrix(0.235703,0.235703,-0.502149,0.502149,484.9749,217.1093)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2598" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_24.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_24.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_24.svg	(revision 38262)
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.0646113,0,0,1.0445461,-107.99269,-239.52049)"
+       id="g2290">
+      <path
+         d="M 270.22876,451.0387 L 302.39096,354.68987 L 334.55315,451.0387 L 431.03974,483.15497 L 334.55315,515.27125 L 302.39096,611.62007 L 270.22876,515.27125 L 173.74218,483.15497 L 270.22876,451.0387 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6.42784548px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 332.48889,447.94051 L 305.35195,480.19858 L 305.35195,364.06953 L 332.48889,447.94051 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.91738272px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1892" />
+      <path
+         d="M 334.86437,510.89705 L 301.42178,484.69684 L 421.81508,484.69684 L 334.86437,510.89705 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.92014647px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1894" />
+      <path
+         d="M 268.07295,453.95177 L 300.39726,480.24184 L 184.0298,480.24184 L 268.07295,453.95177 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.83029413px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1896" />
+      <path
+         d="M 270.50127,514.97334 L 302.87963,481.39902 L 302.87963,602.26659 L 270.50127,514.97334 z "
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:6.59418631px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1898" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(123.9057,182.3509)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-43.12799,19.71645)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+      <path
+         d="M 450.35715 547.89789 A 8.3928576 8.3928576 0 1 1  433.57144,547.89789 A 8.3928576 8.3928576 0 1 1  450.35715 547.89789 z"
+         transform="translate(-137.8571,-64.16256)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:20.46800041;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2532" />
+      <path
+         d="M 406.07143 568.25507 A 15.714286 14.821428 0 1 1  374.64286,568.25507 A 15.714286 14.821428 0 1 1  406.07143 568.25507 z"
+         transform="matrix(1.536168,0,0,1.61666,-295.3682,-435.0628)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:5.46799994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2536" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_42.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_42.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_42.svg	(revision 38262)
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.9092843,0,0,0.9010322,-90.57057,-116.67757)"
+       id="g2576">
+      <path
+         d="M 298.50007 514.45593 A 12.121831 12.121831 0 1 1  274.2564,514.45593 A 12.121831 12.121831 0 1 1  298.50007 514.45593 z"
+         transform="matrix(1.592735,0,0,1.283951,-102.5613,-260.5466)"
+         style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:9.39999962;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="matrix(1.276681,0,0,1.230352,101.9083,39.3762)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="matrix(1.276681,0,0,1.230352,-80.7513,219.1963)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2037" />
+      <path
+         d="M 325.33346,196.08352 L 340.10007,196.08352 L 359.36998,223.36753 L 359.36998,196.08352 L 374.27623,196.08352 L 374.27623,245.40333 L 359.36998,245.40333 L 340.2048,218.32117 L 340.2048,245.40333 L 325.33346,245.40333 L 325.33346,196.08352 z "
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+      <path
+         d="M 135.44046,410.17409 C 135.44046,401.17965 137.6689,393.76755 142.12577,387.93775 C 146.58262,382.10804 152.60212,379.19319 160.18424,379.19313 C 168.85336,379.19319 175.40277,382.61699 179.83252,389.46459 C 183.39252,394.97976 185.17255,401.77189 185.17261,409.84097 C 185.17255,418.90949 182.96451,426.34012 178.54845,432.13283 C 174.1323,437.92557 168.02449,440.82194 160.22501,440.82194 C 153.26792,440.82194 147.64249,438.41602 143.34869,433.60414 C 138.07654,427.64485 135.44046,419.83484 135.44046,410.17409 L 135.44046,410.17409 z M 152.07219,410.11858 C 152.07218,415.37463 152.85349,419.26112 154.41614,421.77807 C 155.97873,424.29508 157.9422,425.55356 160.30654,425.55354 C 162.698,425.55356 164.66146,424.31357 166.19693,421.8336 C 167.73236,419.35365 168.50007,415.37463 168.50012,409.89648 C 168.50007,404.78854 167.72556,400.98533 166.17656,398.48682 C 164.6275,395.98839 162.71158,394.73917 160.42883,394.73913 C 158.01013,394.73917 156.01271,396.00691 154.43651,398.54236 C 152.86029,401.07786 152.07218,404.93661 152.07219,410.11858 L 152.07219,410.11858 z "
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2053" />
+      <g
+         transform="matrix(1.137542,1.182307,-3.626093,3.768791,1936.7667,-2104.843)"
+         id="g2102">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2104" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2106" />
+      </g>
+      <g
+         transform="matrix(1.640381,3.165364e-2,0.100903,5.228973,-301.1927,-2491.233)"
+         id="g2108">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2110" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2112" />
+      </g>
+      <g
+         transform="matrix(-1.182307,1.137542,-3.768791,-3.626093,2860.8027,1982.095)"
+         id="g2114">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2116" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2118" />
+      </g>
+      <g
+         transform="matrix(-1.137542,-1.182307,3.626093,-3.768791,-1231.1553,2908.294)"
+         id="g2120">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2122" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2124" />
+      </g>
+      <g
+         transform="matrix(-1.137542,1.182307,3.626093,3.768791,-1232.2073,-2105.538)"
+         id="g2126">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2128" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2130" />
+      </g>
+      <g
+         transform="matrix(3.165364e-2,-1.640381,5.228973,-0.100903,-2544.4383,1058.699)"
+         id="g2132">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2134" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2136" />
+      </g>
+      <g
+         transform="matrix(-1.640381,-3.165364e-2,-0.100903,-5.228973,1007.6358,3296.133)"
+         id="g2138">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2140" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2142" />
+      </g>
+      <g
+         transform="matrix(-3.165364e-2,-1.640381,-5.228973,-0.100903,3251.4977,1056.556)"
+         id="g2144">
+        <path
+           d="M 365,547.36218 L 365,522.36218 L 355,542.36218 L 365,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2146" />
+        <path
+           d="M 364.91071,547.36218 L 364.91071,522.36218 L 374.91071,542.36218 L 364.91071,547.36218 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2148" />
+      </g>
+      <path
+         d="M -533.36052 422.02701 A 143.44167 143.44167 0 1 1  -820.24385,422.02701 A 143.44167 143.44167 0 1 1  -533.36052 422.02701 z"
+         transform="matrix(1.053785,0,0,1.027923,1067.7499,-31.88065)"
+         style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:7.27700138;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path2150" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_25.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_25.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_25.svg	(revision 38262)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.0587175,0,0,1.0527831,-267.98969,-477.69647)"
+       id="g2317">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(263.3523,396.1393)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(111.3186,247.0762)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+      <g
+         transform="translate(5.714286,-4.285714)"
+         id="g3526">
+        <g
+           transform="matrix(0.568373,0,0,0.62482,179.0582,277.4692)"
+           id="g3486">
+          <path
+             d="M 476.78571 602.89789 A 21.25 23.035715 0 1 1  434.28571,602.89789 A 21.25 23.035715 0 1 1  476.78571 602.89789 z"
+             transform="matrix(1.326212,0,0,1.28339,-124.2005,-99.83376)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5.46799994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2520" />
+          <path
+             d="M 567.50001 591.11218 A 38.035713 38.035713 0 1 1  491.42858,591.11218 A 38.035713 38.035713 0 1 1  567.50001 591.11218 z"
+             transform="matrix(1.480367,0,0,1.456455,-303.0604,-186.2503)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:12.99924469;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2522" />
+        </g>
+        <g
+           transform="matrix(0,-1.617502,0.758826,0,25.37736,1413.412)"
+           id="g3502">
+          <path
+             d="M 463.283,562.10964 L 459.36687,527.36218 L 520,561.17551 L 463.283,562.10964 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3504" />
+          <path
+             d="M 463.27101,560.84811 L 459.35489,595.84811 L 519.98801,562.03479 L 463.27101,560.84811 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3506" />
+        </g>
+        <g
+           transform="matrix(1.617502,0,0,0.758826,-262.1424,273.3014)"
+           id="g3508">
+          <path
+             d="M 463.283,562.10964 L 459.36687,527.36218 L 520,561.17551 L 463.283,562.10964 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3510" />
+          <path
+             d="M 463.27101,560.84811 L 459.35489,595.84811 L 519.98801,562.03479 L 463.27101,560.84811 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3512" />
+        </g>
+        <g
+           transform="matrix(0,1.617502,-0.758826,0,878.117,-14.93325)"
+           id="g3514">
+          <path
+             d="M 463.283,562.10964 L 459.36687,527.36218 L 520,561.17551 L 463.283,562.10964 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3516" />
+          <path
+             d="M 463.27101,560.84811 L 459.35489,595.84811 L 519.98801,562.03479 L 463.27101,560.84811 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3518" />
+        </g>
+        <g
+           transform="matrix(-1.617502,0,0,-0.758826,1166.647,1125.061)"
+           id="g3520">
+          <path
+             d="M 463.283,562.10964 L 459.36687,527.36218 L 520,561.17551 L 463.283,562.10964 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3522" />
+          <path
+             d="M 463.27101,560.84811 L 459.35489,595.84811 L 519.98801,562.03479 L 463.27101,560.84811 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3524" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_43.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_43.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_43.svg	(revision 38262)
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-176.85714,-283.42857)"
+       id="g2706">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="matrix(1.005509,0,0,1.005509,213.5616,229.4051)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="matrix(1.005509,0,0,1.005509,64.42266,84.16993)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="matrix(1.005509,0,0,1.005509,67.94369,377.9957)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1980" />
+      <path
+         d="M 323.98047,297.71605 C 323.98047,291.1718 325.80338,286.07675 329.44922,282.43089 C 333.09504,278.7851 338.17186,276.96218 344.67969,276.96214 C 351.35153,276.96218 356.49215,278.75319 360.10156,282.33519 C 363.7109,285.91725 365.51558,290.93482 365.51563,297.38792 C 365.51558,302.07283 364.72717,305.91463 363.15039,308.91331 C 361.57353,311.91202 359.29488,314.24535 356.31445,315.91331 C 353.33395,317.58128 349.61976,318.41526 345.17188,318.41526 C 340.65102,318.41526 336.90949,317.69521 333.94727,316.25511 C 330.98502,314.81501 328.58333,312.53636 326.74219,309.41917 C 324.90104,306.302 323.98047,302.40096 323.98047,297.71605 L 323.98047,297.71605 z M 336.36719,297.77073 C 336.36717,301.81762 337.11912,304.72517 338.62305,306.49339 C 340.12693,308.26163 342.17316,309.14574 344.76172,309.14573 C 347.42315,309.14574 349.48304,308.27986 350.94141,306.54808 C 352.39971,304.81632 353.12887,301.70825 353.12891,297.22386 C 353.12887,293.45045 352.36781,290.69329 350.8457,288.95237 C 349.32354,287.21152 347.25909,286.34108 344.65234,286.34105 C 342.15493,286.34108 340.14972,287.22519 338.63672,288.99339 C 337.12368,290.76165 336.36717,293.68742 336.36719,297.77073 L 336.36719,297.77073 z "
+         transform="matrix(1.005509,0,0,1.005509,-96.24449,232.1767)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1988" />
+      <g
+         transform="translate(75.71429,35.71429)"
+         id="g8901">
+        <g
+           transform="matrix(0.913314,0,0,0.870761,49.74248,-3.284198)"
+           id="g7056">
+          <path
+             d="M 705.08646 481.62601 A 103.54063 110.10663 0 1 1  498.00521,481.62601 A 103.54063 110.10663 0 1 1  705.08646 481.62601 z"
+             transform="matrix(0.93543,0,0,0.902583,-251.0718,133.9098)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.8201046;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4266" />
+          <g
+             transform="translate(-2.0203,34.36693)"
+             id="g5203">
+            <g
+               transform="matrix(0.649211,0,0,0.650927,101.3467,196.6624)"
+               id="g5153">
+              <path
+                 d="M 510.71429 493.43362 A 43.214287 43.214287 0 1 1  424.28571,493.43362 A 43.214287 43.214287 0 1 1  510.71429 493.43362 z"
+                 transform="matrix(0.87031,0,0,0.875059,-76.20417,89.64063)"
+                 style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:9.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2458" />
+              <path
+                 d="M 329.9926,484.23338 L 329.9926,559.58953"
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.57082582;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path3345" />
+              <path
+                 d="M 369.37143,520.25407 L 294.42428,520.25407"
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.57082582;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path4232" />
+              <path
+                 d="M 358.83525,491.89716 L 305.83961,545.18201"
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.57082582;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path4234" />
+              <path
+                 d="M 304.66659,495.60051 L 357.66223,548.88535"
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.57082582;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path4238" />
+              <path
+                 d="M 355.71429 510.57648 A 15.357142 15.357142 0 1 1  325,510.57648 A 15.357142 15.357142 0 1 1  355.71429 510.57648 z"
+                 transform="matrix(0.87031,0,0,0.875059,34.08737,73.38953)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke-width:0.30000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2456" />
+            </g>
+            <g
+               transform="translate(-1.428571,16.42857)"
+               id="g5181">
+              <path
+                 d="M 317.02424,493.83574 L 317.52932,443.91421 L 336.07336,499.98349 L 317.02424,493.83574 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path4250" />
+              <path
+                 d="M 315.56,493.45015 L 317.07523,443.91421 L 298.53118,499.98349 L 315.56,493.45015 z "
+                 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path4252" />
+            </g>
+            <g
+               transform="matrix(0,-1,1,0,-204.0918,853.2359)"
+               id="g5185">
+              <path
+                 d="M 317.02424,493.83574 L 317.52932,443.91421 L 336.07336,499.98349 L 317.02424,493.83574 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path5187" />
+              <path
+                 d="M 315.56,493.45015 L 317.07523,443.91421 L 298.53118,499.98349 L 315.56,493.45015 z "
+                 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path5189" />
+            </g>
+            <g
+               transform="matrix(0,1,-1,0,834.4488,217.9171)"
+               id="g5191">
+              <path
+                 d="M 317.02424,493.83574 L 317.52932,443.91421 L 336.07336,499.98349 L 317.02424,493.83574 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path5193" />
+              <path
+                 d="M 315.56,493.45015 L 317.07523,443.91421 L 298.53118,499.98349 L 315.56,493.45015 z "
+                 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path5195" />
+            </g>
+            <g
+               transform="matrix(-1,0,0,-1,632.6165,1056.097)"
+               id="g5197">
+              <path
+                 d="M 317.02424,493.83574 L 317.52932,443.91421 L 336.07336,499.98349 L 317.02424,493.83574 z "
+                 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path5199" />
+              <path
+                 d="M 315.56,493.45015 L 317.07523,443.91421 L 298.53118,499.98349 L 315.56,493.45015 z "
+                 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82929599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+                 id="path5201" />
+            </g>
+          </g>
+          <path
+             d="M 294.712,551.32652 L 247.99244,493.74783"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path5247" />
+          <path
+             d="M 332.7521,550.46921 L 377.02834,496.40527"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.9433198px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path5249" />
+          <path
+             d="M 331.90156,588.3036 L 380.9155,638.93739"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.96050525px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path5251" />
+          <path
+             d="M 296.09924,587.86391 L 245.50173,641.39854"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00346363px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path5253" />
+          <path
+             d="M 387.64604,569.50926 L 408.35417,569.25673 L 408.35417,569.25673"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5255" />
+          <path
+             d="M 216.7474,570.59183 L 237.45553,570.3393 L 237.45553,570.3393"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6142" />
+          <path
+             d="M 313.85727,494.78042 L 313.62736,471.23776 L 313.62736,471.23776"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.32261062;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6144" />
+          <path
+             d="M 313.5261,666.23137 L 313.27357,645.52324 L 313.27357,645.52324"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path6146" />
+        </g>
+        <path
+           d="M 714.17786 514.45593 A 101.52033 101.52033 0 1 1  511.1372,514.45593 A 101.52033 101.52033 0 1 1  714.17786 514.45593 z"
+           transform="matrix(1.024864,0,0,1.009938,-294.4041,-27.53248)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:5.82982922;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7054" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(0.245116,0,0,1.112072,230.6493,-69.4339)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8857" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(0,-0.307545,1.172697,0,-452.3854,624.9073)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8859" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(0,-0.36963,0.968446,0,-140.6693,650.4016)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8861" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(-0.202867,-0.192674,-0.678216,0.644141,885.9138,126.3354)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8863" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(0.192935,-0.201634,0.645011,0.674096,-60.76122,247.0723)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8867" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(-0.216837,-0.216837,-0.724921,0.724921,789.091,226.551)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8869" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(0.216837,-0.216837,0.724921,0.724921,-249.4171,86.89736)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8871" />
+        <path
+           d="M 431.08261 589.20721 A 2.1465743 4.2931485 0 1 1  426.78946,589.20721 A 2.1465743 4.2931485 0 1 1  431.08261 589.20721 z"
+           transform="matrix(0.326338,0,0,0.917389,196.4197,-143.0014)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.24100018;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path8873" />
+        <g
+           transform="translate(-122.1429,-88.57143)"
+           id="g8879">
+          <path
+             d="M 459.83675,476.95404 L 459.83675,456.87726 L 475.36606,477.36218 L 459.83675,476.95404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8875" />
+          <path
+             d="M 459.0503,477.06564 L 459.0503,456.98886 L 443.52099,477.47378 L 459.0503,477.06564 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8877" />
+        </g>
+        <g
+           transform="matrix(0,-1,1,0,-247.9738,953.5914)"
+           id="g8883">
+          <path
+             d="M 459.83675,476.95404 L 459.83675,456.87726 L 475.36606,477.36218 L 459.83675,476.95404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8885" />
+          <path
+             d="M 459.0503,477.06564 L 459.0503,456.98886 L 443.52099,477.47378 L 459.0503,477.06564 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8887" />
+        </g>
+        <g
+           transform="matrix(-1,0,0,-1,794.0864,1072.038)"
+           id="g8889">
+          <path
+             d="M 459.83675,476.95404 L 459.83675,456.87726 L 475.36606,477.36218 L 459.83675,476.95404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8891" />
+          <path
+             d="M 459.0503,477.06564 L 459.0503,456.98886 L 443.52099,477.47378 L 459.0503,477.06564 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8893" />
+        </g>
+        <g
+           transform="matrix(0,1,-1,0,916.3773,33.27581)"
+           id="g8895">
+          <path
+             d="M 459.83675,476.95404 L 459.83675,456.87726 L 475.36606,477.36218 L 459.83675,476.95404 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8897" />
+          <path
+             d="M 459.0503,477.06564 L 459.0503,456.98886 L 443.52099,477.47378 L 459.0503,477.06564 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path8899" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_26.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_26.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_26.svg	(revision 38262)
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.0703751,0,0,1.0644861,-214.68022,-204.72749)"
+       id="g2353">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(222.3454,140.0558)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(59.76398,-16.51779)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+      <g
+         transform="matrix(0.311736,0,0,0.302213,279.8002,284.787)"
+         id="g3222">
+        <g
+           transform="matrix(0.781857,0,0,0.766882,63.83974,141.9881)"
+           id="g3205">
+          <path
+             d="M 398.25392,383.31251 C 414.38946,377.47009 430.78354,374.47169 448.25392,383.31251 L 425.63489,339.52316 L 398.25392,383.31251 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3178" />
+          <g
+             id="g3192">
+            <g
+               transform="matrix(0.587863,0,0,0.552833,146.4351,243.0267)"
+               id="g3166">
+              <path
+                 d="M 418.57143 483.79074 A 30.714285 30.714285 0 1 1  357.14286,483.79074 A 30.714285 30.714285 0 1 1  418.57143 483.79074 z"
+                 transform="matrix(3.260196,0,0,3.305983,-784.3987,-1182.114)"
+                 style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:15.0170002;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2270" />
+              <path
+                 d="M 322.85714 567.36218 A 27.857143 27.857143 0 1 1  267.14286,567.36218 A 27.857143 27.857143 0 1 1  322.85714 567.36218 z"
+                 transform="matrix(1.398549,0,0,1.449831,66.71392,-405.2167)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:15.0170002;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path3164" />
+            </g>
+            <path
+               d="M 336.44036,500.51572 C 330.59794,484.38018 327.59954,467.9861 336.44036,450.51572 L 292.65101,473.13475 L 336.44036,500.51572 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3174" />
+            <path
+               d="M 483.35799 632.6438 A 75.256363 75.256363 0 1 1  332.84526,632.6438 A 75.256363 75.256363 0 1 1  483.35799 632.6438 z"
+               transform="matrix(1.199403,0,0,1.175914,-60.29851,-269.8845)"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:15.0170002;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3176" />
+            <path
+               d="M 522.07247,449.55493 C 527.9149,465.69047 530.9133,482.08455 522.07247,499.55493 L 565.86183,476.93589 L 522.07247,449.55493 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3180" />
+            <path
+               d="M 507.44045,423.87181 C 500.16211,408.33104 490.68994,394.61849 472.08511,388.51647 L 519.04292,373.54679 L 507.44045,423.87181 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3182" />
+            <path
+               d="M 453.80976,565.29225 C 437.67422,571.13466 421.28013,574.13307 403.80976,565.29225 L 426.42877,609.0816 L 453.80976,565.29225 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3184" />
+            <path
+               d="M 342.68712,430.01692 C 349.96546,414.47613 359.43763,400.76359 378.04246,394.66156 L 331.08465,379.6919 L 342.68712,430.01692 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3186" />
+            <path
+               d="M 476.88331,556.71909 C 492.42407,549.44075 506.13662,539.96858 512.23864,521.36375 L 527.20833,568.32157 L 476.88331,556.71909 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3188" />
+            <path
+               d="M 347.2328,522.36218 C 354.51114,537.90294 363.98331,551.61549 382.58814,557.71751 L 335.63032,572.6872 L 347.2328,522.36218 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path3190" />
+          </g>
+        </g>
+        <path
+           d="M 783.87836 426.57269 A 101.52033 97.479721 0 1 1  580.8377,426.57269 A 101.52033 97.479721 0 1 1  783.87836 426.57269 z"
+           transform="matrix(1.112549,0,0,1.101028,-360.5463,35.14687)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:23.84678459;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3220" />
+      </g>
+      <g
+         transform="matrix(2.836932,0,0,5.390526,-517.6559,-1354.956)"
+         id="g4168">
+        <path
+           d="M 315,327.36218 L 325,325.93361 L 325,307.04651 L 315,327.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3279" />
+        <path
+           d="M 335.10714,327.71933 L 324.57143,325.75504 L 324.9394,306.78246 L 335.10714,327.71933 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4166" />
+      </g>
+      <g
+         transform="matrix(0,-2.836932,5.390526,0,-1387.849,1358.038)"
+         id="g4172">
+        <path
+           d="M 315,327.36218 L 325,325.93361 L 325,307.04651 L 315,327.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4174" />
+        <path
+           d="M 335.10714,327.71933 L 324.57143,325.75504 L 324.9394,306.78246 L 335.10714,327.71933 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4176" />
+      </g>
+      <g
+         transform="matrix(-2.836932,0,0,-5.390526,1326.737,2228.14)"
+         id="g4178">
+        <path
+           d="M 315,327.36218 L 325,325.93361 L 325,307.04651 L 315,327.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4180" />
+        <path
+           d="M 335.10714,327.71933 L 325.10554,325.94243 L 324.9394,306.78246 L 335.10714,327.71933 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4182" />
+      </g>
+      <g
+         transform="matrix(0,2.836932,-5.390526,0,2197.005,-483.6711)"
+         id="g4184">
+        <path
+           d="M 315,327.36218 L 325,325.93361 L 325,307.04651 L 315,327.36218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4186" />
+        <path
+           d="M 335.10714,327.71933 L 324.57143,325.75504 L 324.9394,306.78246 L 335.10714,327.71933 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4188" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_44.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_44.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_44.svg	(revision 38262)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.9056777,0,0,0.9067649,-1.6034056,-234.939)"
+       id="g2470">
+      <g
+         transform="matrix(11.20515,0,0,10.81525,-3804.37,-5258.72)"
+         id="g1936">
+        <g
+           transform="translate(2.148909,2.188814)"
+           id="g1904">
+          <path
+             d="M 360.44643 532.18359 A 1.0714285 11.339286 0 1 1  358.30357,532.18359 A 1.0714285 11.339286 0 1 1  360.44643 532.18359 z"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1872" />
+          <path
+             d="M 360.44643 532.18359 A 1.0714285 11.339286 0 1 1  358.30357,532.18359 A 1.0714285 11.339286 0 1 1  360.44643 532.18359 z"
+             transform="matrix(0,1,-1,0,892.0943,172.7658)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1874" />
+          <path
+             d="M 360.44643 532.18359 A 1.0714285 11.339286 0 1 1  358.30357,532.18359 A 1.0714285 11.339286 0 1 1  360.44643 532.18359 z"
+             transform="matrix(-0.5355,0.5355,0.209582,0.209582,440.3929,228.3843)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1876" />
+          <path
+             d="M 360.44643 532.18359 A 1.0714285 11.339286 0 1 1  358.30357,532.18359 A 1.0714285 11.339286 0 1 1  360.44643 532.18359 z"
+             transform="matrix(0.5355,0.5355,-0.209582,0.209582,278.6071,228.2915)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1880" />
+          <path
+             d="M 359.97683,543.24378 L 359.34954,544.96402 L 358.76551,543.24378 L 359.34954,543.75064 L 359.97683,543.24378 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.28870204px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1888" />
+          <path
+             d="M 358.77059,521.03796 L 359.39788,519.31772 L 359.98191,521.03796 L 359.39788,520.5311 L 358.77059,521.03796 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.28870204px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1894" />
+          <path
+             d="M 348.74841,532.78927 L 347.02817,532.16198 L 348.74841,531.57795 L 348.24155,532.16198 L 348.74841,532.78927 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.28870204px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1896" />
+          <path
+             d="M 370.9865,531.53296 L 372.70674,532.16025 L 370.9865,532.74428 L 371.49336,532.16025 L 370.9865,531.53296 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.28870204px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path1898" />
+        </g>
+        <path
+           d="M 390.67649 532.98596 A 5.5874062 5.5874062 0 1 1  379.50167,532.98596 A 5.5874062 5.5874062 0 1 1  390.67649 532.98596 z"
+           transform="translate(-23.64467,1.269573)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1900" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(77.20367,223.5084)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-97.39909,62.79767)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="translate(-95.50705,390.4)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1980" />
+      <path
+         d="M 323.98047,297.71605 C 323.98047,291.1718 325.80338,286.07675 329.44922,282.43089 C 333.09504,278.7851 338.17186,276.96218 344.67969,276.96214 C 351.35153,276.96218 356.49215,278.75319 360.10156,282.33519 C 363.7109,285.91725 365.51558,290.93482 365.51563,297.38792 C 365.51558,302.07283 364.72717,305.91463 363.15039,308.91331 C 361.57353,311.91202 359.29488,314.24535 356.31445,315.91331 C 353.33395,317.58128 349.61976,318.41526 345.17188,318.41526 C 340.65102,318.41526 336.90949,317.69521 333.94727,316.25511 C 330.98502,314.81501 328.58333,312.53636 326.74219,309.41917 C 324.90104,306.302 323.98047,302.40096 323.98047,297.71605 L 323.98047,297.71605 z M 336.36719,297.77073 C 336.36717,301.81762 337.11912,304.72517 338.62305,306.49339 C 340.12693,308.26163 342.17316,309.14574 344.76172,309.14573 C 347.42315,309.14574 349.48304,308.27986 350.94141,306.54808 C 352.39971,304.81632 353.12887,301.70825 353.12891,297.22386 C 353.12887,293.45045 352.36781,290.69329 350.8457,288.95237 C 349.32354,287.21152 347.25909,286.34108 344.65234,286.34105 C 342.15493,286.34108 340.14972,287.22519 338.63672,288.99339 C 337.12368,290.76165 336.36717,293.68742 336.36719,297.77073 L 336.36719,297.77073 z "
+         transform="translate(-273.0134,223.2292)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1988" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_27.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_27.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_27.svg	(revision 38262)
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.0809585,0,0,1.0641244,-176.53288,-143.02454)"
+       id="g2407">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(180.17464,83.2019)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(18.1918,-72.08816)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+      <g
+         transform="matrix(0.500988,0,0,0.429254,212.79719,166.5877)"
+         id="g3332">
+        <path
+           d="M 320.71429 496.64789 A 20 20 0 1 1  280.71429,496.64789 A 20 20 0 1 1  320.71429 496.64789 z"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:none;stroke-width:8.10099983;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path2363" />
+        <path
+           d="M 160 533.07648 A 28.571428 28.571428 0 1 1  102.85715,533.07648 A 28.571428 28.571428 0 1 1  160 533.07648 z"
+           transform="translate(169.2857,-36.42857)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:8.10099983;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path2365" />
+        <path
+           d="M 300.77292,477.36218 L 300.77292,468.74655 L 300.77292,468.74655 L 301.02546,468.99909"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2367" />
+        <path
+           d="M 320,497.36218 L 326.42857,497.36218 L 326.42857,497.36218 L 326.42857,497.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2375" />
+        <path
+           d="M 281.25,497.36218 L 275,497.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2377" />
+        <path
+           d="M 300.53571,515.75504 L 300.53571,521.6479"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2379" />
+        <path
+           d="M 242.85714 495.75504 A 29.464285 29.464285 0 1 1  183.92857,495.75504 A 29.464285 29.464285 0 1 1  242.85714 495.75504 z"
+           transform="matrix(1.374169,0,0,1.382302,7.83358,-188.3956)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.40057325;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path2381" />
+        <path
+           d="M 300.71429,528.61218 L 300.89286,535.75504"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3268" />
+        <path
+           d="M 333.39286,497.36218 L 340,497.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3270" />
+        <path
+           d="M 275 497.36218 A 47.857143 47.857143 0 1 1  179.28571,497.36218 A 47.857143 47.857143 0 1 1  275 497.36218 z"
+           transform="matrix(1.095189,0,0,1.080264,51.94672,-39.91708)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.06500006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3276" />
+        <path
+           d="M 258.03571,497.36218 L 250,497.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3278" />
+        <path
+           d="M 300.89286,540.3979 L 300.89286,545.93361"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3280" />
+        <path
+           d="M 344.28572,497.36218 L 351.42857,497.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3282" />
+        <path
+           d="M 301.07143,464.32647 L 300.89286,456.29075"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3284" />
+        <path
+           d="M 300.71429,453.96932 L 300.53571,446.29075"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3286" />
+        <path
+           d="M 270,497.36218 L 262.85714,497.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3288" />
+        <path
+           d="M 207.08128 460.16025 A 58.336311 58.336311 0 1 1  90.408653,460.16025 A 58.336311 58.336311 0 1 1  207.08128 460.16025 z"
+           transform="matrix(1.111107,0,0,1.111107,135.7538,-13.49903)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.06500006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3290" />
+        <path
+           d="M 300.77292,443.74527 L 300.52038,433.13867"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3292" />
+        <path
+           d="M 356.07877,497.36218 L 365.42268,497.36218"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3294" />
+        <path
+           d="M 245.97215,496.77828 L 238.64854,496.77828"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3296" />
+        <path
+           d="M 301.07143,551.82647 L 301.07143,560.75504"
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3298" />
+        <g
+           transform="matrix(-1.826981,1.826981,-1.992814,-1.992814,2128.49,939.9551)"
+           id="g3310">
+          <path
+             d="M 376.5168,545.73446 L 376.71228,536.6295 L 370.9087,546.62956 L 376.5168,545.73446 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3300" />
+          <path
+             d="M 376.48827,545.64485 L 376.58601,536.6295 L 382.38958,546.62956 L 376.48827,545.64485 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3302" />
+        </g>
+        <g
+           transform="matrix(1.826981,1.826981,-1.992814,1.992814,747.9553,-1325.587)"
+           id="g3314">
+          <path
+             d="M 376.5168,545.73446 L 376.71228,536.6295 L 370.9087,546.62956 L 376.5168,545.73446 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3316" />
+          <path
+             d="M 376.48827,545.64485 L 376.58601,536.6295 L 382.38958,546.62956 L 376.48827,545.64485 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3318" />
+        </g>
+        <g
+           transform="matrix(-1.826981,-1.826981,1.992814,-1.992814,-144.8943,2322.242)"
+           id="g3320">
+          <path
+             d="M 376.5168,545.73446 L 376.71228,536.6295 L 370.9087,546.62956 L 376.5168,545.73446 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3322" />
+          <path
+             d="M 376.48827,545.64485 L 376.58601,536.6295 L 382.38958,546.62956 L 376.48827,545.64485 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3324" />
+        </g>
+        <g
+           transform="matrix(1.826981,-1.826981,1.992814,1.992814,-1525.701,53.88859)"
+           id="g3326">
+          <path
+             d="M 376.5168,545.73446 L 376.71228,536.6295 L 370.9087,546.62956 L 376.5168,545.73446 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3328" />
+          <path
+             d="M 376.48827,545.64485 L 376.58601,536.6295 L 382.38958,546.62956 L 376.48827,545.64485 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3330" />
+        </g>
+      </g>
+      <g
+         transform="matrix(0.780471,0,0,1.483532,30.325,-400.8828)"
+         id="g3377">
+        <path
+           d="M 425.64511,506.95071 L 400.64511,511.71708 L 426.00225,435.37917 L 425.64511,506.95071 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29021394px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3367" />
+        <path
+           d="M 426.37577,506.86431 L 452.43082,512.31159 L 426.00225,434.19228 C 426.00225,452.74031 426.37577,480.70549 426.37577,506.86431 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3369" />
+      </g>
+      <g
+         transform="matrix(0,0.780471,-1.483532,0,1148.8701,49.8087)"
+         id="g3381">
+        <path
+           d="M 425.64511,506.95071 L 400.64511,511.71708 L 426.00225,435.37917 L 425.64511,506.95071 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29021394px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3383" />
+        <path
+           d="M 426.37577,506.86431 L 452.43082,512.31159 L 426.00225,434.19228 C 426.00225,452.74031 426.37577,480.70549 426.37577,506.86431 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3385" />
+      </g>
+      <g
+         transform="matrix(-0.780471,0,0,-1.483532,695.7676,1161.5894)"
+         id="g3387">
+        <path
+           d="M 425.64511,506.95071 L 400.64511,511.71708 L 426.00225,435.37917 L 425.64511,506.95071 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29021394px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3389" />
+        <path
+           d="M 426.37577,506.86431 L 452.43082,512.31159 L 426.00225,434.19228 C 426.00225,452.74031 426.37577,480.70549 426.37577,506.86431 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3391" />
+      </g>
+      <g
+         transform="matrix(0,-0.74657,1.483532,0,-422.2781,700.6498)"
+         id="g3393">
+        <path
+           d="M 425.64511,506.95071 L 400.64511,511.71708 L 426.00225,435.37917 L 425.64511,506.95071 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.29021394px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3395" />
+        <path
+           d="M 426.37577,506.86431 L 452.43082,512.31159 L 426.00225,434.19228 C 426.00225,452.74031 426.37577,480.70549 426.37577,506.86431 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path3397" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_45.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_45.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_45.svg	(revision 38262)
@@ -0,0 +1,455 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.8244691,0,0,0.8606256,-58.158405,-13.67261)"
+       id="g2531">
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(189.46167,11.9818)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-0.2339,-180.99781)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="translate(6.1172,188.228)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1980" />
+      <path
+         d="M 132.57022,307.39815 C 132.57022,300.8539 134.39313,295.75885 138.03897,292.11299 C 141.68479,288.4672 146.76161,286.64428 153.26944,286.64424 C 159.94128,286.64428 165.0819,288.43529 168.69131,292.01729 C 172.30065,295.59935 174.10533,300.61692 174.10538,307.07002 C 174.10533,311.75493 173.31692,315.59673 171.74014,318.59541 C 170.16328,321.59412 167.88463,323.92745 164.9042,325.59541 C 161.9237,327.26338 158.20951,328.09736 153.76163,328.09736 C 149.24077,328.09736 145.49924,327.37731 142.53702,325.93721 C 139.57477,324.49711 137.17308,322.21846 135.33194,319.10127 C 133.49079,315.9841 132.57022,312.08306 132.57022,307.39815 L 132.57022,307.39815 z M 144.95694,307.45283 C 144.95692,311.49972 145.70887,314.40727 147.2128,316.17549 C 148.71668,317.94373 150.76291,318.82784 153.35147,318.82783 C 156.0129,318.82784 158.07279,317.96196 159.53116,316.23018 C 160.98946,314.49842 161.71862,311.39035 161.71866,306.90596 C 161.71862,303.13255 160.95756,300.37539 159.43545,298.63447 C 157.91329,296.89362 155.84884,296.02318 153.24209,296.02315 C 150.74468,296.02318 148.73947,296.90729 147.22647,298.67549 C 145.71343,300.44375 144.95692,303.36952 144.95694,307.45283 L 144.95694,307.45283 z "
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1988" />
+      <g
+         transform="translate(126.8851,-218.5714)"
+         id="g7272">
+        <g
+           transform="matrix(3.334851,0,0,3.2579,-711.3987,-1202.829)"
+           id="g5046">
+          <g
+             transform="translate(-71.21575,-2.020305)"
+             id="g4788">
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-3.267155,-7.381458)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2010" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-3.168929,-2.615909)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2026" />
+            <g
+               transform="translate(-21.2132,12.37437)"
+               id="g2060">
+              <g
+                 id="g2012">
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(-1.325834,-0.694484)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1986" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(13.22669,-5.489639)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1988" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(13.22669,-0.615909)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1990" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(8.389126,-0.552774)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1992" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(3.515396,-0.615909)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1994" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(-1.33029,-10.36545)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1996" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(-1.358334,-5.489639)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path1998" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(3.578531,-5.426504)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2000" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(8.3022,-5.426504)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2002" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(13.16356,-10.30026)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2004" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(8.2909,-10.32248)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2006" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(3.515396,-10.23713)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2008" />
+              </g>
+              <g
+                 transform="translate(3.229466e-7,-14.45995)"
+                 id="g2028">
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(-1.325834,-0.694484)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2030" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(13.22669,-5.489639)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2032" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(13.22669,-0.615909)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2034" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(8.389126,-0.552774)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2036" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(3.515396,-0.615909)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2038" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(-1.33029,-10.36545)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2040" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(-1.358334,-5.489639)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2042" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(3.578531,-5.426504)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2044" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(8.3022,-5.426504)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2046" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(13.16356,-10.30026)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2048" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(8.2909,-10.32248)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2050" />
+                <path
+                   d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+                   transform="translate(3.515396,-10.23713)"
+                   style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                   id="path2052" />
+              </g>
+            </g>
+            <path
+               d="M 366.60713 529.37109 A 17.633928 17.633928 0 1 1  331.33928,529.37109 A 17.633928 17.633928 0 1 1  366.60713 529.37109 z"
+               transform="matrix(0.965631,0,0,0.965124,12.7403,19.09994)"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.71435535;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2054" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-27.35833,-2.794481)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2088" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-3.20402,7.166641)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2090" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-3.20402,2.229776)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2092" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-27.44762,6.953302)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2094" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-27.35833,-7.615909)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2096" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="translate(-27.35644,2.042588)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2098" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(1.010885,0,0,0.686059,-16.91146,150.0973)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2100" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(1.036272,0,0,0.605544,-31.12346,193.0675)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2102" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(0.812021,0,0,1.006253,69.56949,-5.834976)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2104" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(0.792744,0,0,0.912882,71.6354,34.28776)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2106" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(0.809162,0,0,1.006354,70.61645,-0.986769)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2108" />
+            <path
+               d="M 366.11715,530.52368 A 2.3044105,2.443229 0 1 1 366.08027,530.08832"
+               transform="matrix(0.78029,0,0,0.49421,71.22944,252.4729)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2110" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(1.016727,0,0,0.543009,-18.62048,257.9201)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path2112" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(0.716905,0,0,0.75565,99.03454,140.9138)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3002" />
+            <path
+               d="M 332.88917,529.97296 C 332.88917,529.97296 333.92002,531.15934 333.92692,532.23839 C 333.93381,533.31742 332.91677,534.28914 332.91677,534.28914 L 332.51947,531.99187 L 332.86158,529.97296 L 332.86158,529.97296"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.14608978;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3004" />
+            <path
+               d="M 364.70038,535.45146 C 364.70038,535.45146 362.73386,536.38049 362.7207,537.22548 C 362.70754,538.07047 364.64774,538.83141 364.64774,538.83141 L 365.40565,537.03243 L 364.75302,535.45146 L 364.75302,535.45146"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.17855735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3891" />
+            <path
+               d="M 365.03076,521.30913 C 365.03076,521.30913 363.03183,522.53028 363.01844,523.64095 C 363.00507,524.75163 364.97725,525.75184 364.97725,525.75184 L 365.74766,523.38721 L 365.08427,521.30913 L 365.08427,521.30913"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.2063939;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3893" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(0.711739,0,0,0.477379,96.35023,292.2892)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3895" />
+            <path
+               d="M 366.11715 530.52368 A 2.3044105 2.3044105 0 1 1  361.50833,530.52368 A 2.3044105 2.3044105 0 1 1  366.11715 530.52368 z"
+               transform="matrix(1.016727,0,0,0.543009,-23.96074,257.9203)"
+               style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3897" />
+            <path
+               d="M 332.93069,525.24006 C 332.93069,525.24006 333.93354,526.62656 333.94025,527.88761 C 333.94696,529.14867 332.95753,530.2843 332.95753,530.2843 L 332.57103,527.59951 L 332.90384,525.24006 L 332.90384,525.24006"
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.15577166;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path3901" />
+          </g>
+          <path
+             d="M 309.61175 526.45154 A 28.663078 28.663078 0 1 1  252.28559,526.45154 A 28.663078 28.663078 0 1 1  309.61175 526.45154 z"
+             transform="matrix(0.871265,0,0,0.879667,33.59686,65.19904)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5006" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,59.0852,140.089)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5008" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,78.86765,158.0872)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5010" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,76.39621,150.8466)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5012" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,71.74773,145.089)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5014" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,65.624,141.3392)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5016" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,52.21976,141.4358)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5018" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,71.26994,178.5589)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5020" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,76.26994,173.0031)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5022" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,78.9888,165.932)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5024" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.650196,0,0,0.711083,37.65554,184.8343)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5026" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.606594,0,0,0.708345,53.1809,179.5363)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5028" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,40.85557,149.2645)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5030" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,46.26994,144.4663)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5032" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.618361,0,0,0.713985,56.73972,199.9055)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5034" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,51.46218,182.2321)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5036" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,58.19234,182.852)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5038" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.65164,0,0,0.757366,65.35178,182.2321)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5040" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.613628,0,0,0.658744,53.74936,221.9529)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5042" />
+          <path
+             d="M 342.44173 483.52002 A 4.4194174 4.4194174 0 1 1  333.60289,483.52002 A 4.4194174 4.4194174 0 1 1  342.44173 483.52002 z"
+             transform="matrix(0.601391,0,0,-0.715861,54.5157,881.202)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path5044" />
+        </g>
+        <path
+           d="M 444.28571 471.64789 A 175 160.71428 0 1 1  94.285706,471.64789 A 175 160.71428 0 1 1  444.28571 471.64789 z"
+           transform="matrix(0.694709,0,0,0.738459,30.55252,169.6205)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.87430239;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5472" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,114.675,193.7766)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5474" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,12.57562,304.2572)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5476" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,117.6315,396.1811)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5478" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,216.6264,303.2471)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path5480" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,40.27534,224.5366)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6367" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,184.5611,368.8223)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6369" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,46.70391,369.5366)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6371" />
+        <path
+           d="M 148.57143 265.21933 A 21.428572 21.428572 0 1 1  105.71429,265.21933 A 21.428572 21.428572 0 1 1  148.57143 265.21933 z"
+           transform="matrix(0.806823,0,0,0.840156,189.4479,226.6793)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.65499997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6373" />
+        <path
+           d="M 243.33007,634.80144 C 228.97268,638.24551 214.48156,639.41636 199.65011,634.80144 L 221.49009,679.72828 L 243.33007,634.80144 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.44299009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path6379" />
+        <path
+           d="M 196.09854,400.54878 C 210.45593,397.10471 224.94705,395.93386 239.7785,400.54878 L 217.93852,355.62194 L 196.09854,400.54878 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.44299009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7266" />
+        <path
+           d="M 336.64581,505.74797 C 340.08988,520.10536 341.26073,534.59648 336.64581,549.42793 L 381.57265,527.58795 L 336.64581,505.74797 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.44299009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7268" />
+        <path
+           d="M 98.224859,547.91269 C 94.780789,533.5553 93.609939,519.06418 98.224859,504.23273 L 53.298019,526.07271 L 98.224859,547.91269 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.44299009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path7270" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_28.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_28.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_28.svg	(revision 38262)
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.108799,0,0,1.0728296,-103.86298,-303.1657)"
+       id="g2374">
+      <g
+         transform="matrix(4.68386,0,0,5.159583,-653.4472,-2365.377)"
+         id="g4199">
+        <g
+           transform="matrix(0.330231,0,0,0.326986,129.2325,382.611)"
+           id="g4128">
+          <g
+             transform="matrix(1.001355,0,0,0.97775,-0.260911,12.75667)"
+             id="g2315">
+            <g
+               transform="matrix(0.486888,0,0,0.468202,98.9607,304.8798)"
+               id="g2303">
+              <path
+                 d="M 285.3681 516.72882 A 38.638336 38.638336 0 1 1  208.09143,516.72882 A 38.638336 38.638336 0 1 1  285.3681 516.72882 z"
+                 style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.06500006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2297" />
+              <path
+                 d="M 285.3681 516.72882 A 38.638336 38.638336 0 1 1  208.09143,516.72882 A 38.638336 38.638336 0 1 1  285.3681 516.72882 z"
+                 transform="matrix(1.282951,0,0,1.335239,-70.1382,-172.2173)"
+                 style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.06500006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2301" />
+            </g>
+            <rect
+               width="2.0546257"
+               height="2.3071637"
+               x="217.67072"
+               y="524.36737"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.01037455;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="rect2307" />
+            <rect
+               width="2.0546257"
+               height="2.3071637"
+               x="195.94019"
+               y="545.87982"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.01037455;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="rect2309" />
+            <rect
+               width="2.0546257"
+               height="2.3071637"
+               x="239.89407"
+               y="545.62726"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.01037455;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="rect2311" />
+            <rect
+               width="2.0546257"
+               height="2.3071637"
+               x="217.41818"
+               y="566.33539"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.01037455;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="rect2313" />
+          </g>
+          <path
+             d="M 176.96428 504.32648 A 3.3928571 3.3928571 0 1 1  170.17857,504.32648 A 3.3928571 3.3928571 0 1 1  176.96428 504.32648 z"
+             transform="matrix(2.065176,0,0,1.855593,-139.259,-388.5523)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:6.06500006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path2324" />
+        </g>
+        <g
+           transform="matrix(-0.487972,0,0,-0.614019,338.0609,910.8315)"
+           id="g4116">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4118" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4120" />
+        </g>
+        <g
+           transform="matrix(0,-0.487972,0.614019,0,-147.3954,698.2145)"
+           id="g4139">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4141" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4143" />
+        </g>
+        <g
+           transform="matrix(0.487972,0,0,0.614019,64.99151,212.7874)"
+           id="g4151">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4153" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4155" />
+        </g>
+        <g
+           transform="matrix(0,0.487972,-0.614019,0,550.4186,424.8941)"
+           id="g4157">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4159" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4161" />
+        </g>
+        <g
+           transform="matrix(-0.228464,0.260814,-0.148329,-0.169332,354.5441,587.1342)"
+           id="g4175">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4177" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4179" />
+        </g>
+        <g
+           transform="matrix(0.260814,0.228464,-0.169332,0.148329,227.7437,408.9894)"
+           id="g4181">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4183" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4185" />
+        </g>
+        <g
+           transform="matrix(-0.260814,-0.228464,0.169332,-0.148329,175.7916,714.4944)"
+           id="g4187">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4189" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4191" />
+        </g>
+        <g
+           transform="matrix(0.228464,-0.260814,0.148329,0.169332,48.95192,535.3813)"
+           id="g4193">
+          <path
+             d="M 280.07919,555.84733 L 269.28533,557.36256 L 279.70038,525.1261 L 280.07919,555.84733 z "
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.39899999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4195" />
+          <path
+             d="M 279.82142,555.98853 L 290.53571,557.63003 L 279.62753,524.91633 L 279.82142,555.98853 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4197" />
+        </g>
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(95.38128,231.1886)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2029" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-54.47973,79.66574)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2045" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_46.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_46.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_46.svg	(revision 38262)
@@ -0,0 +1,512 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.7952555,0,0,0.7499971,-48.86649,-22.086995)"
+       id="g2585">
+      <g
+         transform="matrix(1.267811,0,0,1.311632,177.19772,-149.59913)"
+         id="g5667">
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.004336,0,0,0.527545,-139.5076,139.21)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1918" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,-1.004664,0.498031,0,-72.36866,751.7734)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1920" />
+        <g
+           transform="matrix(0.941046,0,0,1,-160.0324,-40.46175)"
+           id="g3009">
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="translate(-83.29021,-108.7499)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1924" />
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="matrix(0,-1,1,0,-272.1702,742.0941)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1926" />
+        </g>
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.004664,0,0,0.498031,-162.4193,70.779)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1930" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,-1.004499,0.512786,0,-103.304,656.1562)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1932" />
+        <g
+           transform="matrix(0.937911,0,0,1,-50.10407,5.252538)"
+           id="g2979">
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="translate(-71.68301,-153.5714)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1936" />
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="matrix(0,-1,1,0,-260.563,697.2726)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path1938" />
+        </g>
+        <g
+           transform="translate(-246.1713,-102.6046)"
+           id="g2917">
+          <g
+             id="g1900">
+            <g
+               transform="translate(11.04459,1.25)"
+               id="g1876">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1872" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1874" />
+            </g>
+            <g
+               transform="translate(35.35709,1.339276)"
+               id="g1882">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1884" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1886" />
+            </g>
+            <g
+               transform="translate(11.04459,-22.76787)"
+               id="g1888">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1890" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1892" />
+            </g>
+            <g
+               transform="translate(35.53567,-22.76787)"
+               id="g1894">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1896" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1898" />
+            </g>
+          </g>
+          <g
+             transform="translate(4.650269e-6,-48.30357)"
+             id="g1940">
+            <g
+               transform="translate(11.04459,1.25)"
+               id="g1942">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1944" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1946" />
+            </g>
+            <g
+               transform="translate(35.35709,1.339276)"
+               id="g1948">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1950" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1952" />
+            </g>
+            <g
+               transform="translate(11.04459,-22.76787)"
+               id="g1954">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1956" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1958" />
+            </g>
+            <g
+               transform="translate(35.53567,-22.76787)"
+               id="g1960">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1962" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1964" />
+            </g>
+          </g>
+          <g
+             transform="translate(49.56697,-47.23214)"
+             id="g1966">
+            <g
+               transform="translate(11.04459,1.25)"
+               id="g1968">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1970" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1972" />
+            </g>
+            <g
+               transform="translate(35.35709,1.339276)"
+               id="g1974">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1976" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1978" />
+            </g>
+            <g
+               transform="translate(11.04459,-22.76787)"
+               id="g1980">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1982" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1984" />
+            </g>
+            <g
+               transform="translate(35.53567,-22.76787)"
+               id="g1986">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1988" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1990" />
+            </g>
+          </g>
+          <g
+             transform="translate(48.49554,0.625003)"
+             id="g1992">
+            <g
+               transform="translate(11.04459,1.25)"
+               id="g1994">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1996" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path1998" />
+            </g>
+            <g
+               transform="translate(35.35709,1.339276)"
+               id="g2000">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2002" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2004" />
+            </g>
+            <g
+               transform="translate(11.04459,-22.76787)"
+               id="g2006">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2008" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2010" />
+            </g>
+            <g
+               transform="translate(35.53567,-22.76787)"
+               id="g2012">
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2014" />
+              <path
+                 d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+                 transform="matrix(0,-1,1,0,-188.88,850.844)"
+                 style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+                 id="path2016" />
+            </g>
+          </g>
+        </g>
+        <path
+           d="M 204.28571 381.64789 A 70.714287 70.714287 0 1 1  62.85714,381.64789 A 70.714287 70.714287 0 1 1  204.28571 381.64789 z"
+           transform="matrix(1.000723,0,0,0.930016,-0.553585,26.24739)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.86979723;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path2030" />
+        <g
+           transform="matrix(0.926308,0,0,1,-156.202,-16.47078)"
+           id="g3013">
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="translate(-83.29021,-108.7499)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3015" />
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="matrix(0,-1,1,0,-272.1702,742.0941)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3017" />
+        </g>
+        <g
+           transform="matrix(0.941046,0,0,1,-40.7735,-15.70293)"
+           id="g3019">
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="translate(-83.29021,-108.7499)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3021" />
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="matrix(0,-1,1,0,-272.1702,742.0941)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3023" />
+        </g>
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.002767,0,0,0.675128,-138.9881,0.83985)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3027" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,-0.990161,0.468587,0,-164.7878,746.4745)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3029" />
+        <g
+           transform="matrix(1,0,0,0.852616,-127.524,-26.19663)"
+           id="g3031">
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="translate(-83.29021,-108.7499)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3033" />
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="matrix(0,-1,1,0,-272.1702,742.0941)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3035" />
+        </g>
+        <g
+           transform="matrix(1,0,0,0.867354,-102.1668,-31.72137)"
+           id="g3037">
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="translate(-83.29021,-108.7499)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3039" />
+          <path
+             d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+             transform="matrix(0,-1,1,0,-272.1702,742.0941)"
+             style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3041" />
+        </g>
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,-1,1,0,-376.4799,773.7754)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3055" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,-1.004336,0.527545,0,-196.1563,678.7813)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3057" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,-1.004176,0.542302,0,-93.32075,680.1569)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3059" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.005709,0,0,0.409506,-237.0778,116.4773)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3061" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.005709,0,0,0.409506,-260.6492,198.62)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3063" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.007284,0,0,0.29263,-237.5988,281.9033)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3065" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.006671,0,0,0.335759,-164.5389,260.715)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3067" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.002419,0,0,-0.717678,-187.4179,813.072)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3071" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.002671,0,0,-0.691016,-211.787,798.5299)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3073" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,-1,1,0,-400.4085,774.1325)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3075" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(1.004279,0,0,0.527534,-259.4885,77.78699)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3077" />
+        <path
+           d="M 333.92856 519.95148 A 3.125 12.053572 0 1 1  327.67856,519.95148 A 3.125 12.053572 0 1 1  333.92856 519.95148 z"
+           transform="matrix(0,1.004607,-0.498021,0,362.24,-7.90042)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path3966" />
+        <path
+           d="M 27.142853 347.71933 A 91.785713 91.785713 0 1 1  -156.42857,347.71933 A 91.785713 91.785713 0 1 1  27.142853 347.71933 z"
+           transform="matrix(0.992558,0,0,0.980885,197.5823,40.57523)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4078" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(0.847588,0,0,0.64298,-105.409,91.41664)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4080" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(0,0.749719,-0.530065,0,227.4948,183.818)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4082" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(0.847588,0,0,0.64298,-105.1274,247.742)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4084" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(0,0.74352,-0.518546,0,383.529,186.2325)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4086" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(0.578331,0.553145,-0.403339,0.385774,48.96962,156.5383)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4094" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(0.535999,0.572473,-0.373816,0.399254,161.3861,32.2013)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4096" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(-0.526226,0.616496,0.367,0.429956,212.4529,126.7723)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4098" />
+        <path
+           d="M 282.85715 328.79074 A 2.5 13.571428 0 1 1  277.85715,328.79074 A 2.5 13.571428 0 1 1  282.85715 328.79074 z"
+           transform="matrix(-0.525748,0.525748,0.366667,0.366667,102.5547,58.69397)"
+           style="opacity:0.97000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path4100" />
+        <path
+           d="M 117.93007,291.45111 C 126.40039,288.97665 135.40607,287.83917 146.31358,291.45111 L 132.04091,265.27054 L 117.93007,291.45111 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82214069px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4118" />
+        <path
+           d="M 42.889787,407.4294 C 40.415327,398.95908 39.277847,389.9534 42.889787,379.04589 L 16.709217,393.31856 L 42.889787,407.4294 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82214069px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4120" />
+        <path
+           d="M 147.53189,471.06109 C 139.06157,473.53555 130.05589,474.67303 119.14838,471.06109 L 133.42105,497.24166 L 147.53189,471.06109 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82214069px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4122" />
+        <path
+           d="M 223.41344,379.29842 C 225.8879,387.76874 227.02538,396.77442 223.41344,407.68193 L 249.59401,393.40926 L 223.41344,379.29842 z "
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82214069px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path4124" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(176.50529,71.26976)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(1.0954,-120.28128)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="translate(4.5894,233.23026)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1980" />
+      <path
+         d="M 323.98047,297.71605 C 323.98047,291.1718 325.80338,286.07675 329.44922,282.43089 C 333.09504,278.7851 338.17186,276.96218 344.67969,276.96214 C 351.35153,276.96218 356.49215,278.75319 360.10156,282.33519 C 363.7109,285.91725 365.51558,290.93482 365.51563,297.38792 C 365.51558,302.07283 364.72717,305.91463 363.15039,308.91331 C 361.57353,311.91202 359.29488,314.24535 356.31445,315.91331 C 353.33395,317.58128 349.61976,318.41526 345.17188,318.41526 C 340.65102,318.41526 336.90949,317.69521 333.94727,316.25511 C 330.98502,314.81501 328.58333,312.53636 326.74219,309.41917 C 324.90104,306.302 323.98047,302.40096 323.98047,297.71605 L 323.98047,297.71605 z M 336.36719,297.77073 C 336.36717,301.81762 337.11912,304.72517 338.62305,306.49339 C 340.12693,308.26163 342.17316,309.14574 344.76172,309.14573 C 347.42315,309.14574 349.48304,308.27986 350.94141,306.54808 C 352.39971,304.81632 353.12887,301.70825 353.12891,297.22386 C 353.12887,293.45045 352.36781,290.69329 350.8457,288.95237 C 349.32354,287.21152 347.25909,286.34108 344.65234,286.34105 C 342.15493,286.34108 340.14972,287.22519 338.63672,288.99339 C 337.12368,290.76165 336.36717,293.68742 336.36719,297.77073 L 336.36719,297.77073 z "
+         transform="matrix(1.0729613,0,0,1.1462113,-202.53553,26.873207)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1988" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_29.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_29.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_29.svg	(revision 38262)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-78.571429,-218.57143)"
+       id="g2275">
+      <path
+         d="M 252.37093,444.65723 L 294.74501,339.2391 L 333.71714,444.65723 L 450.63351,479.7966 L 333.71714,514.93598 L 294.74501,620.3541 L 255.77289,514.93598 L 138.85651,479.7966 L 252.37093,444.65723 z "
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:7.40123272px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         id="path1872" />
+      <path
+         d="M 316.67798,458.07569 L 294.69131,397.24219 L 274.46984,458.07569 L 213.80536,478.3535 L 274.46984,498.63131 L 294.69131,559.4648 L 314.91285,498.63131 L 375.57733,478.3535 L 316.67798,458.07569 z "
+         style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:10.64999962;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path1874" />
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(150.6914,179.6853)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2055" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-51.68759,2.585353)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2063" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_47.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_47.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_47.svg	(revision 38262)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(0.9260094,0,0,0.8964267,-67.654734,-160.15169)"
+       id="g2444">
+      <g
+         transform="matrix(3.877834,0,0,4.014333,-986.6258,-1752.619)"
+         id="g1888">
+        <path
+           d="M 372.67859 536.91577 A 24.732143 24.732143 0 1 1  323.2143,536.91577 A 24.732143 24.732143 0 1 1  372.67859 536.91577 z"
+           transform="matrix(0.58963,0,0,0.549919,131.6257,253.798)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.69799995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1872" />
+        <path
+           d="M 331.72753,527.44773 L 331.72753,534.8331 L 341.5225,534.8331 L 341.5225,527.44773 L 347.39948,527.44773 L 336.625,512.67701 L 325.85053,527.44773 L 331.72753,527.44773 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.70105219px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1878" />
+        <path
+           d="M 342.04033,570.59808 L 342.04033,563.21271 L 332.24536,563.21271 L 332.24536,570.59808 L 326.36838,570.59808 L 337.14286,585.3688 L 347.91733,570.59808 L 342.04033,570.59808 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.70105219px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1882" />
+        <path
+           d="M 358.80732,543.69687 L 351.42195,543.69687 L 351.42195,553.49184 L 358.80732,553.49184 L 358.80732,559.36882 L 373.57804,548.59434 L 358.80732,537.81987 L 358.80732,543.69687 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.70105219px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1884" />
+        <path
+           d="M 314.22839,552.97394 L 321.61376,552.97394 L 321.61376,543.17897 L 314.22839,543.17897 L 314.22839,537.30199 L 299.45767,548.07647 L 314.22839,558.85094 L 314.22839,552.97394 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.70105219px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path1886" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(146.3301,148.847)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(-25.03919,-16.44011)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="translate(-19.74609,328.9903)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1980" />
+      <path
+         d="M 323.98047,297.71605 C 323.98047,291.1718 325.80338,286.07675 329.44922,282.43089 C 333.09504,278.7851 338.17186,276.96218 344.67969,276.96214 C 351.35153,276.96218 356.49215,278.75319 360.10156,282.33519 C 363.7109,285.91725 365.51558,290.93482 365.51563,297.38792 C 365.51558,302.07283 364.72717,305.91463 363.15039,308.91331 C 361.57353,311.91202 359.29488,314.24535 356.31445,315.91331 C 353.33395,317.58128 349.61976,318.41526 345.17188,318.41526 C 340.65102,318.41526 336.90949,317.69521 333.94727,316.25511 C 330.98502,314.81501 328.58333,312.53636 326.74219,309.41917 C 324.90104,306.302 323.98047,302.40096 323.98047,297.71605 L 323.98047,297.71605 z M 336.36719,297.77073 C 336.36717,301.81762 337.11912,304.72517 338.62305,306.49339 C 340.12693,308.26163 342.17316,309.14574 344.76172,309.14573 C 347.42315,309.14574 349.48304,308.27986 350.94141,306.54808 C 352.39971,304.81632 353.12887,301.70825 353.12891,297.22386 C 353.12887,293.45045 352.36781,290.69329 350.8457,288.95237 C 349.32354,287.21152 347.25909,286.34108 344.65234,286.34105 C 342.15493,286.34108 340.14972,287.22519 338.63672,288.99339 C 337.12368,290.76165 336.36717,293.68742 336.36719,297.77073 L 336.36719,297.77073 z "
+         transform="matrix(1.0343943,0,0,1.103387,-215.63412,119.34161)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1988" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simple.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simple.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simple.svg	(revision 38262)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+
+   Copyright 2001  The Apache Software Foundation 
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+-->
+<!-- ========================================================================= -->
+<!-- GVT under the spot-light!                                                 -->
+<!--                                                                           -->
+<!-- @author vincent.hardy@eng.sun.com                                         -->
+<!-- @version $Id$ -->
+<!-- ========================================================================= -->
+<svg
+   xmlns:xml="http://www.w3.org/XML/1998/namespace"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="450"
+   height="500"
+   viewBox="0 0 450 500"
+   id="svg2755"
+   sodipodi:version="0.32"
+   inkscape:version="0.40+cvs"
+   sodipodi:docname="simple.svg"
+   sodipodi:docbase="C:\Documents and Settings\fjp\Mis documentos">
+  <metadata
+     id="metadata2887">
+    <rdf:RDF
+       id="RDF2889">
+      <cc:Work
+         rdf:about=""
+         id="Work2891">
+        <dc:format
+           id="format2893">image/svg+xml</dc:format>
+        <dc:type
+           id="type2895"
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1152"
+     inkscape:window-height="804"
+     inkscape:zoom="0.72400000"
+     inkscape:cx="224.99999"
+     inkscape:cy="250.00000"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="svg2755" />
+  <defs
+     id="defs2757" />
+  <text
+     xml:space="preserve"
+     style="font-size:112.92661;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
+     x="200.62242"
+     y="94.693489"
+     id="text3740"
+     transform="scale(0.926461,1.079376)"><tspan
+       sodipodi:role="line"
+       id="tspan3742"
+       x="200.62242"
+       y="94.693489">N</tspan></text>
+  <path
+     style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+     d="M 224.68750,128.13156 L 173.50000,319.10031 L 208.09375,319.10031 L 208.09375,455.50656 L 224.68750,455.50656 L 224.68750,128.13156 z M 225.34375,128.13156 L 225.34375,455.50656 L 241.90625,455.50656 L 241.90625,319.10031 L 276.50000,319.10031 L 225.34375,128.13156 z "
+     id="path4585" />
+</svg>

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/simple.svg
___________________________________________________________________
Added: svn:eol-style
   + native
Added: svn:keywords
   + Author Date Id Revision

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_48.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_48.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_48.svg	(revision 38262)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="matrix(1.1623593,0,0,1.1802964,-250.75297,-236.30772)"
+       id="g2306">
+      <g
+         transform="matrix(4.849561,0,0,4.627945,-1251.39,-2038.366)"
+         id="g3653">
+        <path
+           d="M 341.93664 531.06036 A 3.9774756 3.9774756 0 1 1  333.98169,531.06036 A 3.9774756 3.9774756 0 1 1  341.93664 531.06036 z"
+           transform="matrix(1.990081,0,0,1.83135,-330.1242,-445.3484)"
+           style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.40749419;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="path1872" />
+        <path
+           d="M 340.08929,518.86218 L 345.08929,518.86218 L 345.08929,513.86218 L 355.08929,513.86218 L 342.50001,498.86218 L 330.08929,513.86218 L 340.08929,513.86218 L 340.08929,518.86218 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2760" />
+        <path
+           d="M 351.28444,525.18234 L 351.28444,530.18234 L 356.28444,530.18234 L 356.28444,540.18234 L 371.28444,527.59306 L 356.28444,515.18234 L 356.28444,525.18234 L 351.28444,525.18234 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2762" />
+        <path
+           d="M 344.95052,535.76482 L 339.91156,535.76482 L 339.91156,541.31603 L 329.83366,541.31603 L 342.52102,557.96972 L 355.02842,541.31603 L 344.95052,541.31603 L 344.95052,535.76482 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.05777824px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2764" />
+        <path
+           d="M 333.5,530.3979 L 333.5,525.3979 L 328.75254,525.27163 L 328.75254,515.27163 L 313.5,527.98718 L 328.67857,540.13004 L 328.5,530.3979 L 333.5,530.3979 z "
+           style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           id="path2766" />
+      </g>
+      <path
+         d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+         transform="translate(157.0553,104.6305)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2798" />
+      <path
+         d="M 325.62109,277.64573 L 337.1875,277.64573 L 352.28125,299.82151 L 352.28125,277.64573 L 363.95703,277.64573 L 363.95703,317.73167 L 352.28125,317.73167 L 337.26953,295.71995 L 337.26953,317.73167 L 325.62109,317.73167 L 325.62109,277.64573 z "
+         transform="translate(62.98691,17.62937)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot2790" />
+      <path
+         d="M 323.37891,304.46995 L 335.16406,303.73167 C 335.41926,305.64575 335.93879,307.10408 336.72266,308.10667 C 337.99868,309.72908 339.8216,310.54027 342.19141,310.54026 C 343.95961,310.54027 345.32224,310.12556 346.2793,309.29612 C 347.2363,308.46671 347.71482,307.50512 347.71484,306.41136 C 347.71482,305.37231 347.25909,304.44262 346.34766,303.6223 C 345.43617,302.802 343.32159,302.02726 340.00391,301.29808 C 334.5716,300.07674 330.69791,298.45435 328.38281,296.43089 C 326.04947,294.40748 324.88281,291.82805 324.88281,288.69261 C 324.88281,286.63274 325.47981,284.68678 326.67383,282.85472 C 327.86783,281.02272 329.6634,279.58262 332.06055,278.53441 C 334.45767,277.48627 337.74347,276.96218 341.91797,276.96214 C 347.04034,276.96218 350.94593,277.91465 353.63477,279.81956 C 356.32353,281.72455 357.92314,284.75514 358.43359,288.91136 L 346.75781,289.59495 C 346.44789,287.79029 345.7962,286.4778 344.80273,285.65745 C 343.80922,284.83717 342.43748,284.42702 340.6875,284.42698 C 339.24738,284.42702 338.16274,284.73236 337.43359,285.343 C 336.70441,285.95371 336.33983,286.69655 336.33984,287.57151 C 336.33983,288.20957 336.64061,288.78378 337.24219,289.29417 C 337.8255,289.82284 339.21092,290.31503 341.39844,290.77073 C 346.81247,291.93743 350.69073,293.11776 353.0332,294.31175 C 355.37562,295.50578 357.08004,296.9869 358.14648,298.75511 C 359.21285,300.52336 359.74606,302.50122 359.74609,304.6887 C 359.74606,307.25903 359.03512,309.62881 357.61328,311.79808 C 356.19137,313.96735 354.20439,315.61253 351.65234,316.73362 C 349.10023,317.85472 345.88279,318.41526 342,318.41526 C 335.18228,318.41526 330.46093,317.10277 327.83594,314.47776 C 325.21093,311.85277 323.72526,308.51684 323.37891,304.46995 L 323.37891,304.46995 z "
+         transform="translate(67.75074,196.7066)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1980" />
+      <path
+         d="M 323.98047,297.71605 C 323.98047,291.1718 325.80338,286.07675 329.44922,282.43089 C 333.09504,278.7851 338.17186,276.96218 344.67969,276.96214 C 351.35153,276.96218 356.49215,278.75319 360.10156,282.33519 C 363.7109,285.91725 365.51558,290.93482 365.51563,297.38792 C 365.51558,302.07283 364.72717,305.91463 363.15039,308.91331 C 361.57353,311.91202 359.29488,314.24535 356.31445,315.91331 C 353.33395,317.58128 349.61976,318.41526 345.17188,318.41526 C 340.65102,318.41526 336.90949,317.69521 333.94727,316.25511 C 330.98502,314.81501 328.58333,312.53636 326.74219,309.41917 C 324.90104,306.302 323.98047,302.40096 323.98047,297.71605 L 323.98047,297.71605 z M 336.36719,297.77073 C 336.36717,301.81762 337.11912,304.72517 338.62305,306.49339 C 340.12693,308.26163 342.17316,309.14574 344.76172,309.14573 C 347.42315,309.14574 349.48304,308.27986 350.94141,306.54808 C 352.39971,304.81632 353.12887,301.70825 353.12891,297.22386 C 353.12887,293.45045 352.36781,290.69329 350.8457,288.95237 C 349.32354,287.21152 347.25909,286.34108 344.65234,286.34105 C 342.15493,286.34108 340.14972,287.22519 338.63672,288.99339 C 337.12368,290.76165 336.36717,293.68742 336.36719,297.77073 L 336.36719,297.77073 z "
+         transform="matrix(0.9254454,0,0,1.083364,-3.0514849,80.324774)"
+         style="font-size:56px;font-family:Arial Black"
+         id="flowRoot1988" />
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_49.svg
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_49.svg	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/northimages/gvsig_49.svg	(revision 38262)
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Copyright © 2008 by Silvio Grosso, under the terms of the GNU GPL version 2. -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   viewBox="0 0 450 500"
+   width="450"
+   height="500"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     id="layer1">
+    <g
+       transform="translate(-114.28571,-294.28571)"
+       id="g2377">
+      <g
+         id="g2409">
+        <g
+           transform="matrix(2.490164,0,0,2.501418,-469.1066,-790.4677)"
+           id="g4623">
+          <g
+             transform="translate(-76.14023,1.308439)"
+             id="g3669">
+            <path
+               d="M 394.5,542.86218 C 399.5,546.16789 404.5,545.60644 409.5,542.86218 L 404.5,532.86218 L 399.5,532.86218 L 394.5,542.86218 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1872" />
+            <path
+               d="M 418.20314 529.48199 A 16.541248 16.541248 0 1 1  385.12065,529.48199 A 16.541248 16.541248 0 1 1  418.20314 529.48199 z"
+               transform="matrix(0.996614,0,0,0.992796,1.297126,3.940326)"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.68700004;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path1874" />
+            <path
+               d="M 388.8336,522.36077 C 385.52789,527.36077 386.08934,532.36077 388.8336,537.36077 L 398.8336,532.36077 L 398.8336,527.36077 L 388.8336,522.36077 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1876" />
+            <path
+               d="M 414.78104,537.29082 C 418.08675,532.29082 417.5253,527.29082 414.78104,522.29082 L 404.78104,527.29082 L 404.78104,532.29082 L 414.78104,537.29082 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1880" />
+            <path
+               d="M 409.16055,516.6836 C 404.16055,513.37789 399.16055,513.93934 394.16055,516.6836 L 399.16055,526.6836 L 404.16055,526.6836 L 409.16055,516.6836 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1882" />
+            <path
+               d="M 387.61799,519.00176 L 391.15352,515.46623 L 386.00508,513.54361 L 387.61799,519.00176 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1884" />
+            <path
+               d="M 391.51153,543.95406 L 387.976,540.41854 L 386.05338,545.56698 L 391.51153,543.95406 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1886" />
+            <path
+               d="M 416.00774,518.95279 L 412.47221,515.41726 L 417.62065,513.49464 L 416.00774,518.95279 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1888" />
+            <path
+               d="M 411.93854,544.20659 L 415.47407,540.67107 L 417.39669,545.81951 L 411.93854,544.20659 z "
+               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+               id="path1890" />
+            <path
+               d="M 425.40049 532.25989 A 21.844549 21.844549 0 1 1  381.71139,532.25989 A 21.844549 21.844549 0 1 1  425.40049 532.25989 z"
+               transform="matrix(1.056264,0,0,1.045084,-24.35541,-26.64766)"
+               style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.38103783;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+               id="path1892" />
+          </g>
+          <path
+             d="M 369.71582 530.49213 A 44.067905 44.067905 0 1 1  281.58001,530.49213 A 44.067905 44.067905 0 1 1  369.71582 530.49213 z"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.45099998;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3702" />
+          <path
+             d="M 349.51278,531.12347 L 370,530.87093 L 370,531.37601"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3706" />
+          <path
+             d="M 301.78307,531.62854 L 281.83256,531.62854"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3708" />
+          <path
+             d="M 326.02673,507.36218 L 326.02673,485.16153"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3710" />
+          <path
+             d="M 326.27927,553.8519 L 326.53181,574.05495"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3712" />
+          <path
+             d="M 342.18918,513.69834 L 355,497.36218"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3714" />
+          <path
+             d="M 341.43156,547.36218 L 354.56354,563.95343"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3716" />
+          <path
+             d="M 309.35922,547.36218 L 295.46962,561.68058"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3718" />
+          <path
+             d="M 309.35922,514.20341 L 296.73231,496.02067"
+             style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path3720" />
+          <path
+             d="M 382.59529 532.00732 A 52.149124 49.623745 0 1 1  278.29704,532.00732 A 52.149124 49.623745 0 1 1  382.59529 532.00732 z"
+             transform="matrix(0.999896,0,0,1.015158,-4.763756,-9.579154)"
+             style="opacity:0.97000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.45099998;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3722" />
+          <path
+             d="M 369.29168,526.58285 C 370.34729,529.55251 370.14715,532.71945 369.29168,535.98933 L 377.41844,531.05128 L 369.29168,526.58285 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.08522195;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path3724" />
+          <path
+             d="M 331.13369,574.1693 C 328.16284,575.13307 324.99464,574.95034 321.72345,574.1693 L 326.66347,581.58901 L 331.13369,574.1693 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.08144661;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4617" />
+          <path
+             d="M 281.74195,527.42468 C 280.68634,530.39434 280.88648,533.56128 281.74195,536.83116 L 273.61519,531.89311 L 281.74195,527.42468 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.08522195;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4619" />
+          <path
+             d="M 321.72193,487.17996 C 324.58099,486.21599 327.62997,486.39875 330.77807,487.17996 L 326.02393,479.75872 L 321.72193,487.17996 z "
+             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07990775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4621" />
+        </g>
+        <path
+           d="M 325.51172,277.64573 L 358.70703,277.64573 L 358.70703,286.20433 L 337.92578,286.20433 L 337.92578,292.57542 L 357.20313,292.57542 L 357.20313,300.7512 L 337.92578,300.7512 L 337.92578,308.65355 L 359.30859,308.65355 L 359.30859,317.73167 L 325.51172,317.73167 L 325.51172,277.64573 z "
+           transform="translate(154.4883,241.2908)"
+           style="font-size:56px;font-family:Arial Black"
+           id="flowRoot2798" />
+        <path
+           d="M 319.22941,359.11863 L 330.79582,359.11863 L 345.88957,381.29441 L 345.88957,359.11863 L 357.56535,359.11863 L 357.56535,399.20457 L 345.88957,399.20457 L 330.87785,377.19285 L 330.87785,399.20457 L 319.22941,399.20457 L 319.22941,359.11863 z "
+           style="font-size:56px;font-family:Arial Black"
+           id="flowRoot2790" />
+        <path
+           d="M 323.4638,704.14248 L 336.63778,703.32786 C 336.92306,705.43984 337.50381,707.04894 338.38006,708.15519 C 339.80645,709.94533 341.84419,710.84039 344.49328,710.84037 C 346.46985,710.84039 347.99306,710.3828 349.06291,709.46761 C 350.13268,708.55245 350.6676,707.49144 350.66761,706.2846 C 350.6676,705.13813 350.15816,704.11232 349.13932,703.20719 C 348.12042,702.30209 345.75664,701.44724 342.04798,700.64268 C 335.9755,699.29507 331.64531,697.50494 329.05739,695.27228 C 326.44907,693.03968 325.14493,690.19357 325.14493,686.73397 C 325.14493,684.46113 325.81228,682.31398 327.14702,680.29252 C 328.48172,678.27111 330.48889,676.68212 333.16854,675.52554 C 335.84814,674.36903 339.52116,673.79076 344.18761,673.79072 C 349.91363,673.79076 354.27947,674.84171 357.28518,676.94356 C 360.2908,679.0455 362.07892,682.38941 362.64952,686.97533 L 349.5978,687.7296 C 349.25136,685.73836 348.52288,684.29018 347.41233,683.38501 C 346.30174,682.47993 344.76834,682.02737 342.81213,682.02733 C 341.20231,682.02737 339.98984,682.36428 339.17476,683.03805 C 338.35966,683.7119 337.95211,684.53154 337.95212,685.49696 C 337.95211,686.20098 338.28833,686.83456 338.96081,687.39771 C 339.61286,687.98105 341.16154,688.52412 343.60686,689.02694 C 349.6589,690.31426 353.9942,691.61662 356.61272,692.93405 C 359.23119,694.25153 361.13646,695.88578 362.32858,697.83679 C 363.52062,699.78786 364.11666,701.97021 364.11669,704.38385 C 364.11666,707.21991 363.32194,709.8347 361.73255,712.22824 C 360.14307,714.62179 357.92193,716.43705 355.06913,717.67406 C 352.21627,718.91106 348.61967,719.52955 344.2793,719.52955 C 336.65815,719.52955 331.38041,718.08137 328.44608,715.18497 C 325.51172,712.28858 323.85097,708.60776 323.4638,704.14248 L 323.4638,704.14248 z "
+           style="font-size:56px;font-family:Arial Black"
+           id="flowRoot1980" />
+        <path
+           d="M 323.43359,303.29417 C 323.43359,298.8645 324.92838,295.21412 327.91797,292.343 C 330.90754,289.47193 334.9453,288.03639 340.03125,288.03636 C 345.84633,288.03639 350.23955,289.72258 353.21094,293.09495 C 355.59892,295.81112 356.79293,299.15617 356.79297,303.13011 C 356.79293,307.59626 355.31182,311.25577 352.34961,314.10862 C 349.38734,316.96149 345.29034,318.38792 340.05859,318.38792 C 335.39191,318.38792 331.61848,317.20303 328.73828,314.83323 C 325.20182,311.89834 323.43359,308.05199 323.43359,303.29417 L 323.43359,303.29417 z M 334.58984,303.26683 C 334.58983,305.85538 335.11392,307.76944 336.16211,309.00901 C 337.21027,310.24861 338.52733,310.8684 340.11328,310.86839 C 341.71743,310.8684 343.03448,310.25772 344.06445,309.03636 C 345.09438,307.81501 345.60935,305.85538 345.60938,303.15745 C 345.60935,300.64184 345.08982,298.7688 344.05078,297.53831 C 343.0117,296.30786 341.72654,295.69263 340.19531,295.69261 C 338.5729,295.69263 337.23306,296.31698 336.17578,297.56566 C 335.11848,298.81437 334.58983,300.71476 334.58984,303.26683 L 334.58984,303.26683 z "
+           transform="matrix(1.1070592,0,0,1.4000735,-189.30762,117.42833)"
+           style="font-size:56px;font-family:Arial Black"
+           id="flowRoot1988" />
+      </g>
+    </g>
+  </g>
+</svg>
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/splash.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/splash.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/andami-theme.xml
===================================================================
--- tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/andami-theme.xml	(revision 0)
+++ tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/andami-theme.xml	(revision 38262)
@@ -0,0 +1,15 @@
+<AndamiProperties>
+	<ApplicationImages>
+		<SplashImages>
+			<Splash
+				path="splash.png"
+				timer="10000"
+				version="2.0" x="300" y="50"
+				fontsize="16" color="80,170,240"
+				version="${package.info.gvSIGVersion}.${buildNumber}"/>
+		</SplashImages>		
+		<WallpaperType value="CENTERED"/>
+		<Icon path="icon.png"/>
+	</ApplicationImages>
+	<ApplicationName value="gvSIG ${package.info.gvSIGVersion}.${buildNumber}"/>
+</AndamiProperties>
\ No newline at end of file
Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/gvsig-proj-black-wallpaper.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/gvsig-proj-black-wallpaper.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/icon.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG/resources/theme/icon.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream


Property changes on: tags/v2_0_0_Build_2047/applications/appgvSIG
___________________________________________________________________
Added: svn:ignore
   + .classpath 
.project 
.settings 
maven-eclipse.xml
target
bin
hs_err_pid*
.externalToolBuilders
.settings
.classpath
.project
package.info


