Changeset 13:b15d81be8af3

Show
Ignore:
Timestamp:
11/29/11 17:16:47 (10 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

drobnosti: lgoování, formátování, netbeans…

Files:
9 modified

Legend:

Unmodified
Added
Removed
  • .hgignore

    r2 r13  
    66java/SuperPostak/build/* 
    77java/SuperPostak/nbproject/private/* 
     8 
     9grafika/logo.png 
  • java/Postak/nbproject/build-impl.xml

    r8 r13  
    5656    <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init"> 
    5757        <available file="${manifest.file}" property="manifest.available"/> 
    58         <available file="${application.splash}" property="splashscreen.available"/> 
     58        <condition property="splashscreen.available"> 
     59            <and> 
     60                <not> 
     61                    <equals arg1="${application.splash}" arg2="" trim="true"/> 
     62                </not> 
     63                <available file="${application.splash}"/> 
     64            </and> 
     65        </condition> 
    5966        <condition property="main.class.available"> 
    6067            <and> 
     
    7178            </and> 
    7279        </condition> 
     80        <condition property="do.archive"> 
     81            <not> 
     82                <istrue value="${jar.archive.disabled}"/> 
     83            </not> 
     84        </condition> 
    7385        <condition property="do.mkdist"> 
    7486            <and> 
     87                <isset property="do.archive"/> 
    7588                <isset property="libs.CopyLibs.classpath"/> 
    7689                <not> 
     
    8598            </and> 
    8699        </condition> 
    87         <condition property="manifest.available+main.class+mkdist.available+splashscreen.available"> 
    88             <and> 
    89                 <istrue value="${manifest.available+main.class+mkdist.available}"/> 
    90                 <istrue value="${splashscreen.available}"/> 
    91             </and> 
    92         </condition> 
    93         <condition property="do.archive"> 
    94             <not> 
    95                 <istrue value="${jar.archive.disabled}"/> 
    96             </not> 
    97         </condition> 
    98100        <condition property="do.archive+manifest.available"> 
    99101            <and> 
     
    102104            </and> 
    103105        </condition> 
     106        <condition property="do.archive+main.class.available"> 
     107            <and> 
     108                <isset property="main.class.available"/> 
     109                <istrue value="${do.archive}"/> 
     110            </and> 
     111        </condition> 
     112        <condition property="do.archive+splashscreen.available"> 
     113            <and> 
     114                <isset property="splashscreen.available"/> 
     115                <istrue value="${do.archive}"/> 
     116            </and> 
     117        </condition> 
    104118        <condition property="do.archive+manifest.available+main.class"> 
    105119            <and> 
     
    108122            </and> 
    109123        </condition> 
    110         <condition property="do.archive+manifest.available+main.class+mkdist.available"> 
    111             <and> 
    112                 <istrue value="${manifest.available+main.class+mkdist.available}"/> 
    113                 <istrue value="${do.archive}"/> 
    114             </and> 
    115         </condition> 
    116         <condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available"> 
    117             <and> 
    118                 <istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/> 
    119                 <istrue value="${do.archive}"/> 
    120             </and> 
     124        <condition property="manifest.available-mkdist.available"> 
     125            <or> 
     126                <istrue value="${manifest.available}"/> 
     127                <isset property="do.mkdist"/> 
     128            </or> 
     129        </condition> 
     130        <condition property="manifest.available+main.class-mkdist.available"> 
     131            <or> 
     132                <istrue value="${manifest.available+main.class}"/> 
     133                <isset property="do.mkdist"/> 
     134            </or> 
    121135        </condition> 
    122136        <condition property="have.tests"> 
     
    174188            <length length="0" string="${endorsed.classpath}" when="greater"/> 
    175189        </condition> 
    176         <property name="javac.fork" value="false"/> 
     190        <condition else="false" property="jdkBug6558476"> 
     191            <and> 
     192                <matches pattern="1\.[56]" string="${java.specification.version}"/> 
     193                <not> 
     194                    <os family="unix"/> 
     195                </not> 
     196            </and> 
     197        </condition> 
     198        <property name="javac.fork" value="${jdkBug6558476}"/> 
    177199        <property name="jar.index" value="false"/> 
     200        <property name="jar.index.metainf" value="${jar.index}"/> 
    178201        <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/> 
    179202    </target> 
     
    303326                    <files includesfile="${javac.includesfile.binary}"/> 
    304327                </delete> 
    305                 <delete file="${javac.includesfile.binary}"/> 
     328                <delete> 
     329                    <fileset file="${javac.includesfile.binary}"/> 
     330                </delete> 
    306331            </sequential> 
    307332        </macrodef> 
     
    313338            <attribute default="**" name="testincludes"/> 
    314339            <sequential> 
    315                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}"> 
     340                <property name="junit.forkmode" value="perTest"/> 
     341                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> 
    316342                    <batchtest todir="${build.test.results.dir}"> 
    317343                        <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> 
     
    329355                    <formatter type="xml"/> 
    330356                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> 
     357                    <jvmarg value="-ea"/> 
    331358                    <jvmarg line="${run.jvmargs}"/> 
    332359                </junit> 
    333360            </sequential> 
    334361        </macrodef> 
     362    </target> 
     363    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" name="profile-init"/> 
     364    <target name="-profile-pre-init"> 
     365        <!-- Empty placeholder for easier customization. --> 
     366        <!-- You can override this target in the ../build.xml file. --> 
     367    </target> 
     368    <target name="-profile-post-init"> 
     369        <!-- Empty placeholder for easier customization. --> 
     370        <!-- You can override this target in the ../build.xml file. --> 
     371    </target> 
     372    <target name="-profile-init-macrodef-profile"> 
     373        <macrodef name="resolve"> 
     374            <attribute name="name"/> 
     375            <attribute name="value"/> 
     376            <sequential> 
     377                <property name="@{name}" value="${env.@{value}}"/> 
     378            </sequential> 
     379        </macrodef> 
     380        <macrodef name="profile"> 
     381            <attribute default="${main.class}" name="classname"/> 
     382            <element name="customize" optional="true"/> 
     383            <sequential> 
     384                <property environment="env"/> 
     385                <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/> 
     386                <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}"> 
     387                    <jvmarg value="${profiler.info.jvmargs.agent}"/> 
     388                    <jvmarg line="${profiler.info.jvmargs}"/> 
     389                    <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> 
     390                    <arg line="${application.args}"/> 
     391                    <classpath> 
     392                        <path path="${run.classpath}"/> 
     393                    </classpath> 
     394                    <syspropertyset> 
     395                        <propertyref prefix="run-sys-prop."/> 
     396                        <mapper from="run-sys-prop.*" to="*" type="glob"/> 
     397                    </syspropertyset> 
     398                    <customize/> 
     399                </java> 
     400            </sequential> 
     401        </macrodef> 
     402    </target> 
     403    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" name="-profile-init-check"> 
     404        <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> 
     405        <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> 
    335406    </target> 
    336407    <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> 
     
    428499    <target name="-init-macrodef-copylibs"> 
    429500        <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> 
     501            <attribute default="${manifest.file}" name="manifest"/> 
    430502            <element name="customize" optional="true"/> 
    431503            <sequential> 
     
    443515                </pathconvert> 
    444516                <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> 
    445                 <copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> 
     517                <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> 
    446518                    <fileset dir="${build.classes.dir}"/> 
    447519                    <manifest> 
     
    572644        <!-- You can override this target in the ../build.xml file. --> 
    573645    </target> 
    574     <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available"> 
     646    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available"> 
    575647        <j2seproject1:jar/> 
    576648    </target> 
    577     <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class"> 
     649    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available"> 
    578650        <j2seproject1:jar manifest="${manifest.file}"/> 
    579651    </target> 
     
    584656            </j2seproject1:manifest> 
    585657        </j2seproject1:jar> 
    586         <echo>To run this application from the command line without Ant, try:</echo> 
     658        <echo level="info">To run this application from the command line without Ant, try:</echo> 
    587659        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> 
    588660        <property location="${dist.jar}" name="dist.jar.resolved"/> 
     
    591663            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> 
    592664        </pathconvert> 
    593         <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo> 
    594     </target> 
    595     <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-splashscreen"> 
     665        <echo level="info">java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo> 
     666    </target> 
     667    <target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available"> 
     668        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> 
     669        <touch file="${tmp.manifest.file}" verbose="false"/> 
     670    </target> 
     671    <target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest"> 
     672        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> 
     673        <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/> 
     674    </target> 
     675    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main"> 
     676        <manifest file="${tmp.manifest.file}" mode="update"> 
     677            <attribute name="Main-Class" value="${main.class}"/> 
     678        </manifest> 
     679    </target> 
     680    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen"> 
    596681        <basename file="${application.splash}" property="splashscreen.basename"/> 
    597682        <mkdir dir="${build.classes.dir}/META-INF"/> 
    598683        <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> 
    599         <j2seproject3:copylibs> 
    600             <customize> 
    601                 <attribute name="Main-Class" value="${main.class}"/> 
    602                 <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> 
    603             </customize> 
    604         </j2seproject3:copylibs> 
    605         <echo>To run this application from the command line without Ant, try:</echo> 
     684        <manifest file="${tmp.manifest.file}" mode="update"> 
     685            <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> 
     686        </manifest> 
     687    </target> 
     688    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack"> 
     689        <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> 
     690        <echo level="info">To run this application from the command line without Ant, try:</echo> 
    606691        <property location="${dist.jar}" name="dist.jar.resolved"/> 
    607         <echo>java -jar "${dist.jar.resolved}"</echo> 
    608     </target> 
    609     <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available"> 
    610         <j2seproject3:copylibs> 
    611             <customize> 
    612                 <attribute name="Main-Class" value="${main.class}"/> 
    613             </customize> 
    614         </j2seproject3:copylibs> 
    615         <echo>To run this application from the command line without Ant, try:</echo> 
    616         <property location="${dist.jar}" name="dist.jar.resolved"/> 
    617         <echo>java -jar "${dist.jar.resolved}"</echo> 
    618     </target> 
     692        <echo level="info">java -jar "${dist.jar.resolved}"</echo> 
     693    </target> 
     694    <target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest"> 
     695        <delete> 
     696            <fileset file="${tmp.manifest.file}"/> 
     697        </delete> 
     698    </target> 
     699    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/> 
    619700    <target name="-post-jar"> 
    620701        <!-- Empty placeholder for easier customization. --> 
    621702        <!-- You can override this target in the ../build.xml file. --> 
    622703    </target> 
    623     <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/> 
     704    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/> 
    624705    <!-- 
    625706                ================= 
     
    687768    <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> 
    688769    <!-- 
     770                ================= 
     771                PROFILING SECTION 
     772                ================= 
     773            --> 
     774    <target depends="profile-init,compile" description="Profile a project in the IDE." if="netbeans.home" name="profile"> 
     775        <nbprofiledirect> 
     776            <classpath> 
     777                <path path="${run.classpath}"/> 
     778            </classpath> 
     779        </nbprofiledirect> 
     780        <profile/> 
     781    </target> 
     782    <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="netbeans.home" name="profile-single"> 
     783        <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail> 
     784        <nbprofiledirect> 
     785            <classpath> 
     786                <path path="${run.classpath}"/> 
     787            </classpath> 
     788        </nbprofiledirect> 
     789        <profile classname="${profile.class}"/> 
     790    </target> 
     791    <!-- 
     792                ========================= 
     793                APPLET PROFILING  SECTION 
     794                ========================= 
     795            --> 
     796    <target depends="profile-init,compile-single" if="netbeans.home" name="profile-applet"> 
     797        <nbprofiledirect> 
     798            <classpath> 
     799                <path path="${run.classpath}"/> 
     800            </classpath> 
     801        </nbprofiledirect> 
     802        <profile classname="sun.applet.AppletViewer"> 
     803            <customize> 
     804                <arg value="${applet.url}"/> 
     805            </customize> 
     806        </profile> 
     807    </target> 
     808    <!-- 
     809                ========================= 
     810                TESTS PROFILING  SECTION 
     811                ========================= 
     812            --> 
     813    <target depends="profile-init,compile-test-single" if="netbeans.home" name="profile-test-single"> 
     814        <nbprofiledirect> 
     815            <classpath> 
     816                <path path="${run.test.classpath}"/> 
     817            </classpath> 
     818        </nbprofiledirect> 
     819        <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true"> 
     820            <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> 
     821            <jvmarg value="${profiler.info.jvmargs.agent}"/> 
     822            <jvmarg line="${profiler.info.jvmargs}"/> 
     823            <test name="${profile.class}"/> 
     824            <classpath> 
     825                <path path="${run.test.classpath}"/> 
     826            </classpath> 
     827            <syspropertyset> 
     828                <propertyref prefix="test-sys-prop."/> 
     829                <mapper from="test-sys-prop.*" to="*" type="glob"/> 
     830            </syspropertyset> 
     831            <formatter type="brief" usefile="false"/> 
     832            <formatter type="xml"/> 
     833        </junit> 
     834    </target> 
     835    <!-- 
    689836                =============== 
    690837                JAVADOC SECTION 
     
    697844                <path path="${javac.classpath}"/> 
    698845            </classpath> 
    699             <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> 
     846            <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}"> 
    700847                <filename name="**/*.java"/> 
    701848            </fileset> 
    702849            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> 
    703850                <include name="**/*.java"/> 
     851                <exclude name="*.java"/> 
    704852            </fileset> 
    705853        </javadoc> 
     
    732880        <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> 
    733881    </target> 
    734     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> 
     882    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> 
    735883        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/> 
    736884        <copy todir="${build.test.classes.dir}"> 
     
    747895        <!-- You can override this target in the ../build.xml file. --> 
    748896    </target> 
    749     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> 
     897    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> 
    750898        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> 
    751899        <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> 
  • java/Postak/nbproject/genfiles.properties

    r8 r13  
    55# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. 
    66nbproject/build-impl.xml.data.CRC32=ecce8ba0 
    7 nbproject/build-impl.xml.script.CRC32=bcebfc1f 
    8 nbproject/build-impl.xml.stylesheet.CRC32=229523de@1.38.3.45 
     7nbproject/build-impl.xml.script.CRC32=c4083fc9 
     8nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45 
  • java/Postak/src/cz/frantovo/postak/HromadnaZprava.java

    r0 r13  
    1414public class HromadnaZprava implements Cloneable { 
    1515 
    16     private static Logger log = Logger.getLogger(HromadnaZprava.class.getName()); 
     16    private static final Logger log = Logger.getLogger(HromadnaZprava.class.getName()); 
    1717    /** Předmět zprávy */ 
    1818    private String predmet; 
     
    6666    public void pridejPrijemce(Collection<InternetAddressKomu> prijemci) { 
    6767        if (prijemci == null) { 
    68             log.log(Level.FINER, "Prázdná množina příjemců - nic nepřidáme"); 
     68            log.log(Level.FINER, "Prázdná množina příjemců nic nepřidáme"); 
    6969        } else { 
    7070            this.prijemci.addAll(prijemci); 
  • java/SuperPostak/nbproject/build-impl.xml

    r7 r13  
    5757    <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init"> 
    5858        <available file="${manifest.file}" property="manifest.available"/> 
    59         <available file="${application.splash}" property="splashscreen.available"/> 
     59        <condition property="splashscreen.available"> 
     60            <and> 
     61                <not> 
     62                    <equals arg1="${application.splash}" arg2="" trim="true"/> 
     63                </not> 
     64                <available file="${application.splash}"/> 
     65            </and> 
     66        </condition> 
    6067        <condition property="main.class.available"> 
    6168            <and> 
     
    7279            </and> 
    7380        </condition> 
     81        <condition property="do.archive"> 
     82            <not> 
     83                <istrue value="${jar.archive.disabled}"/> 
     84            </not> 
     85        </condition> 
    7486        <condition property="do.mkdist"> 
    7587            <and> 
     88                <isset property="do.archive"/> 
    7689                <isset property="libs.CopyLibs.classpath"/> 
    7790                <not> 
     
    8699            </and> 
    87100        </condition> 
    88         <condition property="manifest.available+main.class+mkdist.available+splashscreen.available"> 
    89             <and> 
    90                 <istrue value="${manifest.available+main.class+mkdist.available}"/> 
    91                 <istrue value="${splashscreen.available}"/> 
    92             </and> 
    93         </condition> 
    94         <condition property="do.archive"> 
    95             <not> 
    96                 <istrue value="${jar.archive.disabled}"/> 
    97             </not> 
    98         </condition> 
    99101        <condition property="do.archive+manifest.available"> 
    100102            <and> 
     
    103105            </and> 
    104106        </condition> 
     107        <condition property="do.archive+main.class.available"> 
     108            <and> 
     109                <isset property="main.class.available"/> 
     110                <istrue value="${do.archive}"/> 
     111            </and> 
     112        </condition> 
     113        <condition property="do.archive+splashscreen.available"> 
     114            <and> 
     115                <isset property="splashscreen.available"/> 
     116                <istrue value="${do.archive}"/> 
     117            </and> 
     118        </condition> 
    105119        <condition property="do.archive+manifest.available+main.class"> 
    106120            <and> 
     
    109123            </and> 
    110124        </condition> 
    111         <condition property="do.archive+manifest.available+main.class+mkdist.available"> 
    112             <and> 
    113                 <istrue value="${manifest.available+main.class+mkdist.available}"/> 
    114                 <istrue value="${do.archive}"/> 
    115             </and> 
    116         </condition> 
    117         <condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available"> 
    118             <and> 
    119                 <istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/> 
    120                 <istrue value="${do.archive}"/> 
    121             </and> 
     125        <condition property="manifest.available-mkdist.available"> 
     126            <or> 
     127                <istrue value="${manifest.available}"/> 
     128                <isset property="do.mkdist"/> 
     129            </or> 
     130        </condition> 
     131        <condition property="manifest.available+main.class-mkdist.available"> 
     132            <or> 
     133                <istrue value="${manifest.available+main.class}"/> 
     134                <isset property="do.mkdist"/> 
     135            </or> 
    122136        </condition> 
    123137        <condition property="have.tests"> 
     
    175189            <length length="0" string="${endorsed.classpath}" when="greater"/> 
    176190        </condition> 
    177         <property name="javac.fork" value="false"/> 
     191        <condition else="false" property="jdkBug6558476"> 
     192            <and> 
     193                <matches pattern="1\.[56]" string="${java.specification.version}"/> 
     194                <not> 
     195                    <os family="unix"/> 
     196                </not> 
     197            </and> 
     198        </condition> 
     199        <property name="javac.fork" value="${jdkBug6558476}"/> 
    178200        <property name="jar.index" value="false"/> 
     201        <property name="jar.index.metainf" value="${jar.index}"/> 
    179202        <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/> 
    180203    </target> 
     
    304327                    <files includesfile="${javac.includesfile.binary}"/> 
    305328                </delete> 
    306                 <delete file="${javac.includesfile.binary}"/> 
     329                <delete> 
     330                    <fileset file="${javac.includesfile.binary}"/> 
     331                </delete> 
    307332            </sequential> 
    308333        </macrodef> 
     
    314339            <attribute default="**" name="testincludes"/> 
    315340            <sequential> 
    316                 <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}"> 
     341                <property name="junit.forkmode" value="perTest"/> 
     342                <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> 
    317343                    <batchtest todir="${build.test.results.dir}"> 
    318344                        <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> 
     
    330356                    <formatter type="xml"/> 
    331357                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> 
     358                    <jvmarg value="-ea"/> 
    332359                    <jvmarg line="${run.jvmargs}"/> 
    333360                </junit> 
    334361            </sequential> 
    335362        </macrodef> 
     363    </target> 
     364    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" name="profile-init"/> 
     365    <target name="-profile-pre-init"> 
     366        <!-- Empty placeholder for easier customization. --> 
     367        <!-- You can override this target in the ../build.xml file. --> 
     368    </target> 
     369    <target name="-profile-post-init"> 
     370        <!-- Empty placeholder for easier customization. --> 
     371        <!-- You can override this target in the ../build.xml file. --> 
     372    </target> 
     373    <target name="-profile-init-macrodef-profile"> 
     374        <macrodef name="resolve"> 
     375            <attribute name="name"/> 
     376            <attribute name="value"/> 
     377            <sequential> 
     378                <property name="@{name}" value="${env.@{value}}"/> 
     379            </sequential> 
     380        </macrodef> 
     381        <macrodef name="profile"> 
     382            <attribute default="${main.class}" name="classname"/> 
     383            <element name="customize" optional="true"/> 
     384            <sequential> 
     385                <property environment="env"/> 
     386                <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/> 
     387                <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}"> 
     388                    <jvmarg value="${profiler.info.jvmargs.agent}"/> 
     389                    <jvmarg line="${profiler.info.jvmargs}"/> 
     390                    <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> 
     391                    <arg line="${application.args}"/> 
     392                    <classpath> 
     393                        <path path="${run.classpath}"/> 
     394                    </classpath> 
     395                    <syspropertyset> 
     396                        <propertyref prefix="run-sys-prop."/> 
     397                        <mapper from="run-sys-prop.*" to="*" type="glob"/> 
     398                    </syspropertyset> 
     399                    <customize/> 
     400                </java> 
     401            </sequential> 
     402        </macrodef> 
     403    </target> 
     404    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" name="-profile-init-check"> 
     405        <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> 
     406        <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> 
    336407    </target> 
    337408    <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> 
     
    429500    <target name="-init-macrodef-copylibs"> 
    430501        <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> 
     502            <attribute default="${manifest.file}" name="manifest"/> 
    431503            <element name="customize" optional="true"/> 
    432504            <sequential> 
     
    444516                </pathconvert> 
    445517                <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> 
    446                 <copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> 
     518                <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> 
    447519                    <fileset dir="${build.classes.dir}"/> 
    448520                    <manifest> 
     
    587659        <!-- You can override this target in the ../build.xml file. --> 
    588660    </target> 
    589     <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available"> 
     661    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available"> 
    590662        <j2seproject1:jar/> 
    591663    </target> 
    592     <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class"> 
     664    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available"> 
    593665        <j2seproject1:jar manifest="${manifest.file}"/> 
    594666    </target> 
     
    599671            </j2seproject1:manifest> 
    600672        </j2seproject1:jar> 
    601         <echo>To run this application from the command line without Ant, try:</echo> 
     673        <echo level="info">To run this application from the command line without Ant, try:</echo> 
    602674        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> 
    603675        <property location="${dist.jar}" name="dist.jar.resolved"/> 
     
    606678            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> 
    607679        </pathconvert> 
    608         <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo> 
    609     </target> 
    610     <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-splashscreen"> 
     680        <echo level="info">java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo> 
     681    </target> 
     682    <target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available"> 
     683        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> 
     684        <touch file="${tmp.manifest.file}" verbose="false"/> 
     685    </target> 
     686    <target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest"> 
     687        <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> 
     688        <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/> 
     689    </target> 
     690    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main"> 
     691        <manifest file="${tmp.manifest.file}" mode="update"> 
     692            <attribute name="Main-Class" value="${main.class}"/> 
     693        </manifest> 
     694    </target> 
     695    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen"> 
    611696        <basename file="${application.splash}" property="splashscreen.basename"/> 
    612697        <mkdir dir="${build.classes.dir}/META-INF"/> 
    613698        <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> 
    614         <j2seproject3:copylibs> 
    615             <customize> 
    616                 <attribute name="Main-Class" value="${main.class}"/> 
    617                 <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> 
    618             </customize> 
    619         </j2seproject3:copylibs> 
    620         <echo>To run this application from the command line without Ant, try:</echo> 
     699        <manifest file="${tmp.manifest.file}" mode="update"> 
     700            <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> 
     701        </manifest> 
     702    </target> 
     703    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack"> 
     704        <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> 
     705        <echo level="info">To run this application from the command line without Ant, try:</echo> 
    621706        <property location="${dist.jar}" name="dist.jar.resolved"/> 
    622         <echo>java -jar "${dist.jar.resolved}"</echo> 
    623     </target> 
    624     <target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available"> 
    625         <j2seproject3:copylibs> 
    626             <customize> 
    627                 <attribute name="Main-Class" value="${main.class}"/> 
    628             </customize> 
    629         </j2seproject3:copylibs> 
    630         <echo>To run this application from the command line without Ant, try:</echo> 
    631         <property location="${dist.jar}" name="dist.jar.resolved"/> 
    632         <echo>java -jar "${dist.jar.resolved}"</echo> 
    633     </target> 
     707        <echo level="info">java -jar "${dist.jar.resolved}"</echo> 
     708    </target> 
     709    <target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest"> 
     710        <delete> 
     711            <fileset file="${tmp.manifest.file}"/> 
     712        </delete> 
     713    </target> 
     714    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/> 
    634715    <target name="-post-jar"> 
    635716        <!-- Empty placeholder for easier customization. --> 
    636717        <!-- You can override this target in the ../build.xml file. --> 
    637718    </target> 
    638     <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar,jnlp" description="Build JAR." name="jar"/> 
     719    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar,jnlp" description="Build JAR." name="jar"/> 
    639720    <!-- 
    640721                ================= 
     
    702783    <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> 
    703784    <!-- 
     785                ================= 
     786                PROFILING SECTION 
     787                ================= 
     788            --> 
     789    <target depends="profile-init,compile" description="Profile a project in the IDE." if="netbeans.home" name="profile"> 
     790        <nbprofiledirect> 
     791            <classpath> 
     792                <path path="${run.classpath}"/> 
     793            </classpath> 
     794        </nbprofiledirect> 
     795        <profile/> 
     796    </target> 
     797    <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="netbeans.home" name="profile-single"> 
     798        <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail> 
     799        <nbprofiledirect> 
     800            <classpath> 
     801                <path path="${run.classpath}"/> 
     802            </classpath> 
     803        </nbprofiledirect> 
     804        <profile classname="${profile.class}"/> 
     805    </target> 
     806    <!-- 
     807                ========================= 
     808                APPLET PROFILING  SECTION 
     809                ========================= 
     810            --> 
     811    <target depends="profile-init,compile-single" if="netbeans.home" name="profile-applet"> 
     812        <nbprofiledirect> 
     813            <classpath> 
     814                <path path="${run.classpath}"/> 
     815            </classpath> 
     816        </nbprofiledirect> 
     817        <profile classname="sun.applet.AppletViewer"> 
     818            <customize> 
     819                <arg value="${applet.url}"/> 
     820            </customize> 
     821        </profile> 
     822    </target> 
     823    <!-- 
     824                ========================= 
     825                TESTS PROFILING  SECTION 
     826                ========================= 
     827            --> 
     828    <target depends="profile-init,compile-test-single" if="netbeans.home" name="profile-test-single"> 
     829        <nbprofiledirect> 
     830            <classpath> 
     831                <path path="${run.test.classpath}"/> 
     832            </classpath> 
     833        </nbprofiledirect> 
     834        <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true"> 
     835            <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> 
     836            <jvmarg value="${profiler.info.jvmargs.agent}"/> 
     837            <jvmarg line="${profiler.info.jvmargs}"/> 
     838            <test name="${profile.class}"/> 
     839            <classpath> 
     840                <path path="${run.test.classpath}"/> 
     841            </classpath> 
     842            <syspropertyset> 
     843                <propertyref prefix="test-sys-prop."/> 
     844                <mapper from="test-sys-prop.*" to="*" type="glob"/> 
     845            </syspropertyset> 
     846            <formatter type="brief" usefile="false"/> 
     847            <formatter type="xml"/> 
     848        </junit> 
     849    </target> 
     850    <!-- 
    704851                =============== 
    705852                JAVADOC SECTION 
     
    712859                <path path="${javac.classpath}"/> 
    713860            </classpath> 
    714             <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> 
     861            <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}"> 
    715862                <filename name="**/*.java"/> 
    716863            </fileset> 
    717864            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> 
    718865                <include name="**/*.java"/> 
     866                <exclude name="*.java"/> 
    719867            </fileset> 
    720868        </javadoc> 
     
    747895        <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> 
    748896    </target> 
    749     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> 
     897    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> 
    750898        <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/> 
    751899        <copy todir="${build.test.classes.dir}"> 
     
    762910        <!-- You can override this target in the ../build.xml file. --> 
    763911    </target> 
    764     <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> 
     912    <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> 
    765913        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> 
    766914        <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> 
  • java/SuperPostak/nbproject/genfiles.properties

    r7 r13  
    55# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. 
    66nbproject/build-impl.xml.data.CRC32=d917048a 
    7 nbproject/build-impl.xml.script.CRC32=232b6b6d 
    8 nbproject/build-impl.xml.stylesheet.CRC32=229523de@1.38.3.45 
     7nbproject/build-impl.xml.script.CRC32=ccb272cf 
     8nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45 
  • java/SuperPostak/src/cz/frantovo/superPostak/Data.java

    r3 r13  
    1616public class Data { 
    1717 
    18     private static Logger log = Logger.getLogger(Data.class.getName()); 
     18    private static final Logger log = Logger.getLogger(Data.class.getName()); 
    1919    private static Connection spojeni; 
    2020    private static byte[] hash; 
     
    4949        hash = hashuj(url, jmeno, heslo); 
    5050        spojeni = DriverManager.getConnection(url, jmeno, String.valueOf(heslo)); 
    51         log.log(Level.INFO, "Otevřeno nové spoejní spojení k databázi: " + url); 
     51        log.log(Level.INFO, "Otevřeno nové spoejní spojení k databázi: {0}", url); 
    5252        return spojeni; 
    5353    } 
  • java/SuperPostak/src/cz/frantovo/superPostak/DataSQL.java

    r3 r13  
    1818public class DataSQL { 
    1919 
    20     private static Logger log = Logger.getLogger(DataSQL.class.getName()); 
     20    private static final Logger log = Logger.getLogger(DataSQL.class.getName()); 
    2121    private Connection spojeni; 
    2222 
  • java/SuperPostak/src/cz/frantovo/superPostak/SuperPostak.java

    r7 r13  
    4545public class SuperPostak extends javax.swing.JFrame { 
    4646 
    47     /** Soubor, kde je uložené nastavení */ 
    48     private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz"; 
    49     private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore"; 
    50     private static final String NASTAVENI_SLOZKA = ".SuperPostak"; 
    51     private static final String DOMACI_ADRESAR = System.getProperty("user.home"); 
    52     private static final Logger log = Logger.getLogger(SuperPostak.class.getName()); 
    53     private static final long serialVersionUID = -7026850569575604048L; 
    54     private Nastaveni nastaveni = new Nastaveni(); 
    55     private Postak postak = new Postak(nastaveni); 
    56  
    57     /** 
    58     * Creates new form SuperPostak 
    59     * @param ladit předvyplní testovací hodnoty - zprávu 
    60      * @param exit při zavření okna ukončí program      
    61     */ 
    62     public SuperPostak(boolean ladit, boolean exit) { 
    63         log.log(Level.WARNING, "Program byl spuštěn."); 
    64         nactiOvladaceJDBC(); 
    65         vytvorSlozkuProgramu(); 
    66         initComponents(); 
    67  
    68         nactiNastaveni(); 
    69         ulozNastaveni(); 
    70         nastaveni.setCestaKCertifikatum(getCestaKCertifikatum()); 
    71  
    72         inicializujCardLayout(); 
    73         setLocationRelativeTo(null); 
     47        /** Soubor, kde je uložené nastavení */ 
     48        private static final String NASTAVENI_SOUBOR = "Nastaveni.xml.gz"; 
     49        private static final String CERTIFIKATY_SOUBOR = "DuveryhodneCertifikaty.keystore"; 
     50        private static final String NASTAVENI_SLOZKA = ".SuperPostak"; 
     51        private static final String DOMACI_ADRESAR = System.getProperty("user.home"); 
     52        private static final Logger log = Logger.getLogger(SuperPostak.class.getName()); 
     53        private static final long serialVersionUID = -7026850569575604048L; 
     54        private Nastaveni nastaveni = new Nastaveni(); 
     55        private Postak postak = new Postak(nastaveni); 
     56 
     57        /** 
     58        * Creates new form SuperPostak 
     59        * @param ladit předvyplní testovací hodnoty - zprávu 
     60         * @param exit při zavření okna ukončí program 
     61        */ 
     62        public SuperPostak(boolean ladit, boolean exit) { 
     63                log.log(Level.WARNING, "Program byl spuštěn."); 
     64                nactiOvladaceJDBC(); 
     65                vytvorSlozkuProgramu(); 
     66                initComponents(); 
     67 
     68                nactiNastaveni(); 
     69                ulozNastaveni(); 
     70                nastaveni.setCestaKCertifikatum(getCestaKCertifikatum()); 
     71 
     72                inicializujCardLayout(); 
     73                setLocationRelativeTo(null); 
    7474 
    7575                /** Kvůli souborovým dialogům – aby se otvírali ve stejné složce jako minule. */ 
     
    7878                prijemciZkusebni.setNastaveni(nastaveni); 
    7979 
    80         /** Vyřešíme problém TAB vs. Focus */ 
    81         vyresitTabFocusProblem(vstupSQL); 
    82         vyresitTabFocusProblem(vstupZprava); 
    83  
    84         /** Ladicí hodnoty */ 
    85         if (ladit) { 
    86             nastavLadiciHodnoty(); 
    87         } 
    88  
    89         if (exit) { 
    90             setDefaultCloseOperation(EXIT_ON_CLOSE); 
    91         } 
    92  
    93  
    94     } 
    95  
    96     private void inicializujCardLayout() { 
    97         panelDatabaze.setName("panelDatabaze"); 
    98         panelOdeslat.setName("panelOdeslat"); 
    99         panelPrijemci.setName("panelPrijemci"); 
    100         panelServer.setName("panelServer"); 
    101         panelVychoziPrijemci.setName("panelVychoziPrijemci"); 
    102         panelZprava.setName("panelZprava"); 
    103  
    104         panel.add(panelDatabaze, panelDatabaze.getName()); 
    105         panel.add(panelOdeslat, panelOdeslat.getName()); 
    106         panel.add(panelPrijemci, panelPrijemci.getName()); 
    107         panel.add(panelServer, panelServer.getName()); 
    108         panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName()); 
    109         panel.add(panelZprava, panelZprava.getName()); 
    110  
    111         setPanel(panelZprava); 
    112         pack(); 
    113     } 
    114  
    115     /** 
    116     * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami, 
    117     * aby se dal program testovat jedním kliknutím. 
    118     */ 
    119     private void nastavLadiciHodnoty() { 
    120         try { 
    121             vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz"); 
    122             vstupJmenoOdesilatele.setText("SuperPošťák"); 
    123             vstupPredmet.setText("Zkušební zpráva od SuperPošťáka"); 
    124             vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)"); 
    125             ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>(); 
    126             adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák")); 
    127             prijemciZkusebni.setAdresy(adresy); 
    128         } catch (UnsupportedEncodingException e) { 
    129             log.log(Level.SEVERE, null, e); 
    130         } 
    131     } 
    132  
    133     /** 
    134     * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu. 
    135     * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách. 
    136     * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161 
    137     */ 
    138     private void nactiOvladaceJDBC() { 
    139         nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL"); 
    140         nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL"); 
    141         nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL"); 
    142         nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com"); 
    143         nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle"); 
    144     } 
    145  
    146     /** 
    147     * @param trida ovladač databáze, který se má načíst 
    148      * @param jmeno název databáze      
    149     */ 
    150     private void nactiOvladacJDBC(String trida, String jmeno) { 
    151         try { 
    152             Class.forName(trida); 
    153             log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " byl úspěšně načten."); 
    154         } catch (ClassNotFoundException e) { 
    155             log.log(Level.INFO, "JDBC ovladač pro " + jmeno + " se nepodařilo načíst."); 
    156         } 
    157     } 
    158  
    159     /** Vrací plnou cestu k souboru s nastavením */ 
    160     protected static String getCestaKCertifikatum() { 
    161         return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR; 
    162     } 
    163  
    164     /** Vrací plnou cestu k souboru s nastavením */ 
    165     protected static String getCestaKNastaveni() { 
    166         return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR; 
    167     } 
    168  
    169     /** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */ 
    170     protected static String getCestaKeSlozceProgramu() { 
    171         return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator; 
    172     } 
    173  
    174     /** Načte nastavení ze souboru */ 
    175     private void nactiNastaveni() { 
    176         try { 
    177             XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni())))); 
    178             Object xmlObjekt = d.readObject(); 
    179             d.close(); 
    180  
    181             if (xmlObjekt instanceof Nastaveni) { 
    182                 nastaveni = (Nastaveni) xmlObjekt; 
    183             } else { 
    184                 nastaveni = new Nastaveni(); 
    185                 log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí"); 
    186             } 
    187  
    188             nactiNastaveniGUI(); 
    189  
    190             log.log(Level.INFO, "Nastavení bylo načteno."); 
    191         } catch (FileNotFoundException ex) { 
    192             log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex); 
    193         } catch (IOException ex) { 
    194             log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex); 
    195         } 
    196     } 
    197  
    198     /** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */ 
    199     private static boolean vytvorSlozkuProgramu() { 
    200         if (new File(getCestaKeSlozceProgramu()).mkdirs()) { 
    201             log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: " + getCestaKeSlozceProgramu()); 
    202             return true; 
    203         } else { 
    204             return false; 
    205         } 
    206     } 
    207  
    208     /** Uloží nastavení do souboru */ 
    209     private void ulozNastaveni() { 
    210         try { 
    211             ulozNastaveniGUI(); 
    212  
    213             vytvorSlozkuProgramu(); 
    214  
    215             XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni())))); 
    216             e.writeObject(nastaveni); 
    217             e.close(); 
    218             log.log(Level.INFO, "Nastavení bylo uloženo."); 
    219         } catch (FileNotFoundException ex) { 
    220             log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex); 
    221         } catch (IOException ex) { 
    222             log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex); 
    223         } 
    224     } 
    225  
    226     /** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */ 
    227     private void ulozNastaveniGUI() { 
    228         nastaveni.setDatabaze(vstupDatabaze.getText()); 
    229         nastaveni.setDbHeslo(vstupDBheslo.getPassword()); 
    230         nastaveni.setDbJmeno(vstupDBjmeno.getText()); 
    231         nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue()); 
    232         nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword()); 
    233         nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText()); 
    234         nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue()); 
    235         nastaveni.setPostovniServer(vstupSMTPserver.getText()); 
    236         nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy()); 
    237     } 
    238  
    239     /** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */ 
    240     private void nactiNastaveniGUI() { 
    241         vstupDatabaze.setText(nastaveni.getDatabaze()); 
    242         if (nastaveni.getDbHeslo() != null) { 
    243             vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo())); 
    244         } 
    245         vstupDBjmeno.setText(nastaveni.getDbJmeno()); 
    246         vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav()); 
    247         if (nastaveni.getPostovniHeslo() != null) { 
    248             vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo())); 
    249         } 
    250         vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno()); 
    251         vstupSMTPport.setValue(nastaveni.getPostovniPort()); 
    252         vstupSMTPserver.setText(nastaveni.getPostovniServer()); 
    253         prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci()); 
    254     } 
    255  
    256     protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    257         zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat); 
    258     } 
    259  
    260     protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) { 
    261         JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE); 
    262         if (loguj) { 
    263             log.log(Level.INFO, nadpis + ": " + text); 
    264         } 
    265     } 
    266  
    267     protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    268         if (logovat) { 
    269             log.log(zavaznost, strucnaZprava, vyjimka); 
    270         } 
    271  
    272         JXErrorPane chybovyPanel = new JXErrorPane(); 
    273         ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null); 
    274         chybovyPanel.setErrorInfo(chybovaInformace); 
    275         JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel); 
    276         dialog.setVisible(true); 
    277     } 
    278  
    279     private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    280         zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat); 
    281     } 
    282  
    283     private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) { 
    284         zobrazInformacniDialog(this, nadpis, text, loguj); 
    285     } 
    286  
    287     private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
    288         zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat); 
    289     } 
    290  
    291     /** This method is called from within the constructor to 
    292     * initialize the form. 
    293     * WARNING: Do NOT modify this code. The content of this method is 
    294     * always regenerated by the Form Editor. 
    295     */ 
     80                /** Vyřešíme problém TAB vs. Focus */ 
     81                vyresitTabFocusProblem(vstupSQL); 
     82                vyresitTabFocusProblem(vstupZprava); 
     83 
     84                /** Ladicí hodnoty */ 
     85                if (ladit) { 
     86                        nastavLadiciHodnoty(); 
     87                } 
     88 
     89                if (exit) { 
     90                        setDefaultCloseOperation(EXIT_ON_CLOSE); 
     91                } 
     92 
     93 
     94        } 
     95 
     96        private void inicializujCardLayout() { 
     97                panelDatabaze.setName("panelDatabaze"); 
     98                panelOdeslat.setName("panelOdeslat"); 
     99                panelPrijemci.setName("panelPrijemci"); 
     100                panelServer.setName("panelServer"); 
     101                panelVychoziPrijemci.setName("panelVychoziPrijemci"); 
     102                panelZprava.setName("panelZprava"); 
     103 
     104                panel.add(panelDatabaze, panelDatabaze.getName()); 
     105                panel.add(panelOdeslat, panelOdeslat.getName()); 
     106                panel.add(panelPrijemci, panelPrijemci.getName()); 
     107                panel.add(panelServer, panelServer.getName()); 
     108                panel.add(panelVychoziPrijemci, panelVychoziPrijemci.getName()); 
     109                panel.add(panelZprava, panelZprava.getName()); 
     110 
     111                setPanel(panelZprava); 
     112                pack(); 
     113        } 
     114 
     115        /** 
     116        * Vyplní formuláře (odesílatel, předmět, zpráva, příjemci...) výchozími hodnotami, 
     117        * aby se dal program testovat jedním kliknutím. 
     118        */ 
     119        private void nastavLadiciHodnoty() { 
     120                try { 
     121                        vstupAdresaOdesilatele.setText("SuperPostak@frantovo.cz"); 
     122                        vstupJmenoOdesilatele.setText("SuperPošťák"); 
     123                        vstupPredmet.setText("Zkušební zpráva od SuperPošťáka"); 
     124                        vstupZprava.setText("Toto je obyčejná zkušební zpráva v češtině :-)"); 
     125                        ArrayList<InternetAddressKomu> adresy = new ArrayList<InternetAddressKomu>(); 
     126                        adresy.add(new InternetAddressKomu("SuperPostak@frantovo.cz", "SuperPošťák")); 
     127                        prijemciZkusebni.setAdresy(adresy); 
     128                } catch (UnsupportedEncodingException e) { 
     129                        log.log(Level.SEVERE, null, e); 
     130                } 
     131        } 
     132 
     133        /** 
     134        * Pokusíme se načíst ovladače pro různé DB a výsledek zapíšeme do logu. 
     135        * Další ovladače je možné přidat pomocí manifestu v příslušných knihovnách. 
     136        * viz http://www.sweb.cz/pichlik/archive/2006_08_06_archive.html#115502885631518161 
     137        */ 
     138        private void nactiOvladaceJDBC() { 
     139                nactiOvladacJDBC("org.postgresql.Driver", "PostgreSQL"); 
     140                nactiOvladacJDBC("com.mysql.jdbc.Driver", "MySQL"); 
     141                nactiOvladacJDBC("net.sourceforge.jtds.jdbc.Driver", "jTDS Sybase a MS SQL"); 
     142                nactiOvladacJDBC("com.sybase.jdbc2.jdbc.SybDriver", "Sybase.com"); 
     143                nactiOvladacJDBC("oracle.jdbc.OracleDriver", "Oracle"); 
     144        } 
     145 
     146        /** 
     147        * @param trida ovladač databáze, který se má načíst 
     148         * @param jmeno název databáze 
     149        */ 
     150        private void nactiOvladacJDBC(String trida, String jmeno) { 
     151                try { 
     152                        Class.forName(trida); 
     153                        log.log(Level.INFO, "JDBC ovladač pro {0} byl úspěšně načten.", jmeno); 
     154                } catch (ClassNotFoundException e) { 
     155                        log.log(Level.INFO, "JDBC ovladač pro {0} se nepodařilo načíst.", jmeno); 
     156                } 
     157        } 
     158 
     159        /** Vrací plnou cestu k souboru s nastavením */ 
     160        protected static String getCestaKCertifikatum() { 
     161                return getCestaKeSlozceProgramu() + CERTIFIKATY_SOUBOR; 
     162        } 
     163 
     164        /** Vrací plnou cestu k souboru s nastavením */ 
     165        protected static String getCestaKNastaveni() { 
     166                return getCestaKeSlozceProgramu() + NASTAVENI_SOUBOR; 
     167        } 
     168 
     169        /** Vrací plnou cestu ke složce programu (nastavení, certifikáty a logy) */ 
     170        protected static String getCestaKeSlozceProgramu() { 
     171                return DOMACI_ADRESAR + File.separator + NASTAVENI_SLOZKA + File.separator; 
     172        } 
     173 
     174        /** Načte nastavení ze souboru */ 
     175        private void nactiNastaveni() { 
     176                try { 
     177                        XMLDecoder d = new XMLDecoder(new BufferedInputStream(new GZIPInputStream(new FileInputStream(getCestaKNastaveni())))); 
     178                        Object xmlObjekt = d.readObject(); 
     179                        d.close(); 
     180 
     181                        if (xmlObjekt instanceof Nastaveni) { 
     182                                nastaveni = (Nastaveni) xmlObjekt; 
     183                        } else { 
     184                                nastaveni = new Nastaveni(); 
     185                                log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: není instancí"); 
     186                        } 
     187 
     188                        nactiNastaveniGUI(); 
     189 
     190                        log.log(Level.INFO, "Nastavení bylo načteno."); 
     191                } catch (FileNotFoundException ex) { 
     192                        log.log(Level.SEVERE, "Nepodařilo se načíst nastavení: soubor nenalezen", ex); 
     193                } catch (IOException ex) { 
     194                        log.log(Level.SEVERE, "Nastavení se nepodařilo načíst: I/O.", ex); 
     195                } 
     196        } 
     197 
     198        /** Vytvoří (pokud neexistuje) v domovském adresáři složku, kam se ukládá nastavení a případně logy */ 
     199        private static boolean vytvorSlozkuProgramu() { 
     200                if (new File(getCestaKeSlozceProgramu()).mkdirs()) { 
     201                        log.log(Level.INFO, "Složka pro nastavení programu byla vytvořena: {0}", getCestaKeSlozceProgramu()); 
     202                        return true; 
     203                } else { 
     204                        return false; 
     205                } 
     206        } 
     207 
     208        /** Uloží nastavení do souboru */ 
     209        private void ulozNastaveni() { 
     210                try { 
     211                        ulozNastaveniGUI(); 
     212 
     213                        vytvorSlozkuProgramu(); 
     214 
     215                        XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(getCestaKNastaveni())))); 
     216                        e.writeObject(nastaveni); 
     217                        e.close(); 
     218                        log.log(Level.INFO, "Nastavení bylo uloženo."); 
     219                } catch (FileNotFoundException ex) { 
     220                        log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: soubor nenalezen.", ex); 
     221                } catch (IOException ex) { 
     222                        log.log(Level.SEVERE, "Nastavení se nepodařilo uložit: I/O.", ex); 
     223                } 
     224        } 
     225 
     226        /** Posbírá zadané hodnoty z GUI a uloží je do objektu nastaveni */ 
     227        private void ulozNastaveniGUI() { 
     228                nastaveni.setDatabaze(vstupDatabaze.getText()); 
     229                nastaveni.setDbHeslo(vstupDBheslo.getPassword()); 
     230                nastaveni.setDbJmeno(vstupDBjmeno.getText()); 
     231                nastaveni.setLimitZprav((Integer) vstupSMTPlimitPrijemcu.getValue()); 
     232                nastaveni.setPostovniHeslo(vstupSMTPheslo.getPassword()); 
     233                nastaveni.setPostovniJmeno(vstupSMTPjmeno.getText()); 
     234                nastaveni.setPostovniPort((Integer) vstupSMTPport.getValue()); 
     235                nastaveni.setPostovniServer(vstupSMTPserver.getText()); 
     236                nastaveni.setVychoziPrijemci(prijemciVychozi.getAdresy()); 
     237        } 
     238 
     239        /** Aktualizuje GUI formuláře hodnotami z objektu nastaveni */ 
     240        private void nactiNastaveniGUI() { 
     241                vstupDatabaze.setText(nastaveni.getDatabaze()); 
     242                if (nastaveni.getDbHeslo() != null) { 
     243                        vstupDBheslo.setText(String.valueOf(nastaveni.getDbHeslo())); 
     244                } 
     245                vstupDBjmeno.setText(nastaveni.getDbJmeno()); 
     246                vstupSMTPlimitPrijemcu.setValue(nastaveni.getLimitZprav()); 
     247                if (nastaveni.getPostovniHeslo() != null) { 
     248                        vstupSMTPheslo.setText(String.valueOf(nastaveni.getPostovniHeslo())); 
     249                } 
     250                vstupSMTPjmeno.setText(nastaveni.getPostovniJmeno()); 
     251                vstupSMTPport.setValue(nastaveni.getPostovniPort()); 
     252                vstupSMTPserver.setText(nastaveni.getPostovniServer()); 
     253                prijemciVychozi.setAdresy(nastaveni.getVychoziPrijemci()); 
     254        } 
     255 
     256        protected static void zobrazChybovyDialog(Component vlastnik, String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     257                zobrazChybovyDialog(vlastnik, "Chyba", strucnaZprava, null, vyjimka, zavaznost, logovat); 
     258        } 
     259 
     260        protected static void zobrazInformacniDialog(Component vlastnik, String nadpis, String text, boolean loguj) { 
     261                JOptionPane.showMessageDialog(vlastnik, text, nadpis, JOptionPane.INFORMATION_MESSAGE); 
     262                if (loguj) { 
     263                        log.log(Level.INFO, "{0}: {1}", new Object[]{nadpis, text}); 
     264                } 
     265        } 
     266 
     267        protected static void zobrazChybovyDialog(Component vlastnik, String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     268                if (logovat) { 
     269                        log.log(zavaznost, strucnaZprava, vyjimka); 
     270                } 
     271 
     272                JXErrorPane chybovyPanel = new JXErrorPane(); 
     273                ErrorInfo chybovaInformace = new ErrorInfo(nadpis, strucnaZprava, podrobnaZprava, null, vyjimka, zavaznost, null); 
     274                chybovyPanel.setErrorInfo(chybovaInformace); 
     275                JDialog dialog = JXErrorPane.createDialog(vlastnik, chybovyPanel); 
     276                dialog.setVisible(true); 
     277        } 
     278 
     279        private void zobrazChybovyDialog(String strucnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     280                zobrazChybovyDialog(this, strucnaZprava, vyjimka, zavaznost, logovat); 
     281        } 
     282 
     283        private void zobrazInformacniDialog(String nadpis, String text, boolean loguj) { 
     284                zobrazInformacniDialog(this, nadpis, text, loguj); 
     285        } 
     286 
     287        private void zobrazChybovyDialog(String nadpis, String strucnaZprava, String podrobnaZprava, Throwable vyjimka, Level zavaznost, boolean logovat) { 
     288                zobrazChybovyDialog(this, nadpis, strucnaZprava, podrobnaZprava, vyjimka, zavaznost, logovat); 
     289        } 
     290 
     291        /** This method is called from within the constructor to 
     292        * initialize the form. 
     293        * WARNING: Do NOT modify this code. The content of this method is 
     294        * always regenerated by the Form Editor. 
     295        */ 
    296296    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents 
    297297    private void initComponents() { 
     
    927927 
    928928    private void lnTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnTextActionPerformed 
    929         setPanel(panelZprava); 
     929                setPanel(panelZprava); 
    930930    }//GEN-LAST:event_lnTextActionPerformed 
    931931 
    932932    private void lnPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnPrijemciActionPerformed 
    933         setPanel(panelPrijemci); 
     933                setPanel(panelPrijemci); 
    934934    }//GEN-LAST:event_lnPrijemciActionPerformed 
    935935 
    936936    private void lnOdeslatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnOdeslatActionPerformed 
    937         setPanel(panelOdeslat); 
     937                setPanel(panelOdeslat); 
    938938    }//GEN-LAST:event_lnOdeslatActionPerformed 
    939939 
    940940    private void lnServerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnServerActionPerformed 
    941         setPanel(panelServer); 
     941                setPanel(panelServer); 
    942942    }//GEN-LAST:event_lnServerActionPerformed 
    943943 
    944944    private void lnDatabazeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnDatabazeActionPerformed 
    945         setPanel(panelDatabaze); 
     945                setPanel(panelDatabaze); 
    946946    }//GEN-LAST:event_lnDatabazeActionPerformed 
    947947 
    948948    private void lnVychoziPrijemciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lnVychoziPrijemciActionPerformed 
    949         setPanel(panelVychoziPrijemci); 
     949                setPanel(panelVychoziPrijemci); 
    950950    }//GEN-LAST:event_lnVychoziPrijemciActionPerformed 
    951951 
    952952    private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing 
    953         ulozNastaveni(); 
    954         log.log(Level.WARNING, "Ukončuji program."); 
     953                ulozNastaveni(); 
     954                log.log(Level.WARNING, "Ukončuji program."); 
    955955    }//GEN-LAST:event_formWindowClosing 
    956956 
    957     /** 
    958     * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců, 
    959     * ti se přidají až dodatečně, podle toho, 
    960     * jestli jde o zkušební nebo skutečné rozesílání. 
    961     */ 
    962     private HromadnaZprava getZprava() throws UnsupportedEncodingException { 
    963         HromadnaZprava zprava = new HromadnaZprava(); 
    964         zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText())); 
    965         zprava.setPredmet(vstupPredmet.getText()); 
    966         zprava.setText(vstupZprava.getText()); 
    967         zprava.setFormatHTML(vstupFormatHTML.isSelected()); 
    968  
    969         if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) { 
    970             InternetAddress komu = new InternetAddress(); 
    971             komu.setPersonal(odpovedetKomuJmeno.getText()); 
    972             komu.setAddress(odpovedetKomuAdresa.getText()); 
    973             zprava.setOdpovedetKomu(komu); 
    974         } 
    975  
    976         return zprava; 
    977     } 
    978  
    979     /** Všichni příjemci, kterým bude odeslána ostrá zpráva. */ 
    980     private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException { 
    981         ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>(); 
    982         Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci(); 
    983         Collection<InternetAddressKomu> adresySQL = getPrijemciSQL(); 
    984         Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy(); 
    985  
    986         if (adresyVychozi != null) { 
    987             vsichni.addAll(adresyVychozi); 
    988         } 
    989         if (adresySQL != null) { 
    990             vsichni.addAll(adresySQL); 
    991         } 
    992         if (adresyDodatecne != null) { 
    993             vsichni.addAll(adresyDodatecne); 
    994         } 
    995         return vsichni; 
    996     } 
     957        /** 
     958        * Sestaví zprávu na základě GUI vstupů. Všechno kromě příjemců, 
     959        * ti se přidají až dodatečně, podle toho, 
     960        * jestli jde o zkušební nebo skutečné rozesílání. 
     961        */ 
     962        private HromadnaZprava getZprava() throws UnsupportedEncodingException { 
     963                HromadnaZprava zprava = new HromadnaZprava(); 
     964                zprava.setOdesilatel(new InternetAddress(vstupAdresaOdesilatele.getText(), vstupJmenoOdesilatele.getText())); 
     965                zprava.setPredmet(vstupPredmet.getText()); 
     966                zprava.setText(vstupZprava.getText()); 
     967                zprava.setFormatHTML(vstupFormatHTML.isSelected()); 
     968 
     969                if (Postak.zkontrolujAdresu(odpovedetKomuAdresa.getText())) { 
     970                        InternetAddress komu = new InternetAddress(); 
     971                        komu.setPersonal(odpovedetKomuJmeno.getText()); 
     972                        komu.setAddress(odpovedetKomuAdresa.getText()); 
     973                        zprava.setOdpovedetKomu(komu); 
     974                } 
     975 
     976                return zprava; 
     977        } 
     978 
     979        /** Všichni příjemci, kterým bude odeslána ostrá zpráva. */ 
     980        private ArrayList<InternetAddressKomu> getPrijemciVsichni() throws SQLException, UnsupportedEncodingException { 
     981                ArrayList<InternetAddressKomu> vsichni = new ArrayList<InternetAddressKomu>(); 
     982                Collection<InternetAddressKomu> adresyVychozi = nastaveni.getVychoziPrijemci(); 
     983                Collection<InternetAddressKomu> adresySQL = getPrijemciSQL(); 
     984                Collection<InternetAddressKomu> adresyDodatecne = prijemciDodatecni.getAdresy(); 
     985 
     986                if (adresyVychozi != null) { 
     987                        vsichni.addAll(adresyVychozi); 
     988                } 
     989                if (adresySQL != null) { 
     990                        vsichni.addAll(adresySQL); 
     991                } 
     992                if (adresyDodatecne != null) { 
     993                        vsichni.addAll(adresyDodatecne); 
     994                } 
     995                return vsichni; 
     996        } 
    997997 
    998998    private void rozeslatHromadnouZpravuTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed 
    999         try { 
    1000             ulozNastaveniGUI(); 
    1001             HromadnaZprava zprava = getZprava(); 
    1002             zprava.setPrijemci(getPrijemciVsichni()); 
    1003  
    1004             int volba = JOptionPane.showOptionDialog(this, "Počet příjemců hromadné zprávy: " + zprava.getPrijemci().size() + "\nPřejete si zprávu odeslat?", "Potvrdit odeslání", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); 
    1005             if (volba == JOptionPane.YES_OPTION) { 
    1006                 odesli(zprava); 
    1007                 Postak.vypisPrijemce(zprava.getPrijemci()); 
    1008                 zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true); 
    1009             } 
    1010         } catch (Exception e) { 
    1011             zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
    1012         } 
     999                try { 
     1000                        ulozNastaveniGUI(); 
     1001                        HromadnaZprava zprava = getZprava(); 
     1002                        zprava.setPrijemci(getPrijemciVsichni()); 
     1003 
     1004                        int volba = JOptionPane.showOptionDialog(this, "Počet příjemců hromadné zprávy: " + zprava.getPrijemci().size() + "\nPřejete si zprávu odeslat?", "Potvrdit odeslání", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); 
     1005                        if (volba == JOptionPane.YES_OPTION) { 
     1006                                odesli(zprava); 
     1007                                Postak.vypisPrijemce(zprava.getPrijemci()); 
     1008                                zobrazInformacniDialog("Odesláno", "Zpráva byla odeslána.\nPočet příjemců: " + zprava.getPrijemci().size(), true); 
     1009                        } 
     1010                } catch (Exception e) { 
     1011                        zobrazChybovyDialog("Zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
     1012                } 
    10131013}//GEN-LAST:event_rozeslatHromadnouZpravuTlacitkoActionPerformed 
    10141014 
    10151015    private void rozeslatZkusebniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rozeslatZkusebniTlacitkoActionPerformed 
    1016         try { 
    1017             ulozNastaveniGUI(); 
    1018             HromadnaZprava zprava = getZprava(); 
    1019             zprava.setPrijemci(prijemciZkusebni.getAdresy()); 
    1020  
    1021             odesli(zprava); 
    1022  
    1023             zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true); 
    1024         } catch (Exception e) { 
    1025             zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
    1026         } 
     1016                try { 
     1017                        ulozNastaveniGUI(); 
     1018                        HromadnaZprava zprava = getZprava(); 
     1019                        zprava.setPrijemci(prijemciZkusebni.getAdresy()); 
     1020 
     1021                        odesli(zprava); 
     1022 
     1023                        zobrazInformacniDialog("Odesláno", "Zkušební zpráva byla odeslána.\nPočet adresátů: " + zprava.getPrijemci().size(), true); 
     1024                } catch (Exception e) { 
     1025                        zobrazChybovyDialog("Zkušební zprávu se nepodařilo odeslat", e, Level.SEVERE, true); 
     1026                } 
    10271027    }//GEN-LAST:event_rozeslatZkusebniTlacitkoActionPerformed 
    10281028 
    10291029    private void vyzkousetPripojeniTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetPripojeniTlacitkoActionPerformed 
    1030         try { 
     1030                try { 
    10311031            getSpojeni();//GEN-LAST:event_vyzkousetPripojeniTlacitkoActionPerformed 
    1032             zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false); 
    1033         } catch (SQLException e) { 
    1034             zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true); 
    1035         } 
    1036     } 
     1032                        zobrazInformacniDialog("Připojeno k DB", "Připojení k DB proběhlo úspěšně", false); 
     1033                } catch (SQLException e) { 
     1034                        zobrazChybovyDialog("Spojení s DB", "Připojení k databázi selhalo", null, e, Level.SEVERE, true); 
     1035                } 
     1036        } 
    10371037 
    10381038    private void vyzkousetSQLTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vyzkousetSQLTlacitkoActionPerformed 
    1039         try { 
     1039                try { 
    10401040            Collection<InternetAddressKomu> adresy = getPrijemciSQL();//GEN-LAST:event_vyzkousetSQLTlacitkoActionPerformed 
    1041             if (adresy == null) { 
    1042                 zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false); 
    1043             } else { 
    1044                 zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false); 
    1045             } 
    1046         } catch (Exception e) { 
    1047             zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
    1048         } 
    1049     } 
     1041                        if (adresy == null) { 
     1042                                zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze neproběhl.\nSQL dotaz je prázdný.", false); 
     1043                        } else { 
     1044                                zobrazInformacniDialog("SQL dotaz", "Dotaz do databáze byl úspěšný.\nPočet získaných záznamů: " + adresy.size(), false); 
     1045                        } 
     1046                } catch (Exception e) { 
     1047                        zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
     1048                } 
     1049        } 
    10501050 
    10511051    private void zobrazitSQLPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitSQLPrijemceTlacitkoActionPerformed 
    1052         try { 
    1053             Collection<InternetAddressKomu> adresy = getPrijemciSQL(); 
    1054  
    1055             ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
     1052                try { 
     1053                        Collection<InternetAddressKomu> adresy = getPrijemciSQL(); 
     1054 
     1055                        ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
    10561056                        zobrazovac.setNastaveni(nastaveni); 
    1057             zobrazovac.setAdresy(adresy); 
    1058             zobrazovac.setLocationRelativeTo(this); 
    1059             zobrazovac.setVisible(true); 
    1060  
    1061         } catch (Exception e) { 
    1062             zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
    1063         } 
     1057                        zobrazovac.setAdresy(adresy); 
     1058                        zobrazovac.setLocationRelativeTo(this); 
     1059                        zobrazovac.setVisible(true); 
     1060 
     1061                } catch (Exception e) { 
     1062                        zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
     1063                } 
    10641064    }//GEN-LAST:event_zobrazitSQLPrijemceTlacitkoActionPerformed 
    10651065 
    10661066    private void zobrazitVsechnyPrijemceTlacitkoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed 
    1067         try { 
    1068             Collection<InternetAddressKomu> adresy = getPrijemciVsichni(); 
    1069  
    1070             ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
    1071             zobrazovac.setAdresy(adresy); 
    1072             zobrazovac.setLocationRelativeTo(this); 
    1073             zobrazovac.setVisible(true); 
    1074  
    1075         } catch (Exception e) { 
    1076             zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
    1077         } 
     1067                try { 
     1068                        Collection<InternetAddressKomu> adresy = getPrijemciVsichni(); 
     1069 
     1070                        ZobrazovacAdres zobrazovac = new ZobrazovacAdres(this, false); 
     1071                        zobrazovac.setAdresy(adresy); 
     1072                        zobrazovac.setLocationRelativeTo(this); 
     1073                        zobrazovac.setVisible(true); 
     1074 
     1075                } catch (Exception e) { 
     1076                        zobrazChybovyDialog("SQL dotaz", "Provedení SQL příkazu selhalo selhalo", null, e, Level.SEVERE, true); 
     1077                } 
    10781078    }//GEN-LAST:event_zobrazitVsechnyPrijemceTlacitkoActionPerformed 
    10791079 
    10801080    private void odpovedetKomuOdkazActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuOdkazActionPerformed 
    1081         odpovedetKomuDialog.pack(); 
    1082         odpovedetKomuDialog.setLocationRelativeTo(this); 
    1083         odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL); 
    1084         odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo); 
    1085         odpovedetKomuDialog.setVisible(true); 
     1081                odpovedetKomuDialog.pack(); 
     1082                odpovedetKomuDialog.setLocationRelativeTo(this); 
     1083                odpovedetKomuDialog.setModalityType(ModalityType.APPLICATION_MODAL); 
     1084                odpovedetKomuDialog.getRootPane().setDefaultButton(odpovedetKomuHotovo); 
     1085                odpovedetKomuDialog.setVisible(true); 
    10861086}//GEN-LAST:event_odpovedetKomuOdkazActionPerformed 
    10871087 
    10881088    private void odpovedetKomuHotovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_odpovedetKomuHotovoActionPerformed 
    1089         odpovedetKomuDialog.setVisible(false); 
     1089                odpovedetKomuDialog.setVisible(false); 
    10901090}//GEN-LAST:event_odpovedetKomuHotovoActionPerformed 
    10911091 
    1092     /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */ 
    1093     private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException { 
    1094         if ("".equals(vstupSQL.getText())) { 
    1095             return null; 
    1096         } else { 
    1097             return getSpojeni().getAdresy(vstupSQL.getText()); 
    1098         } 
    1099     } 
    1100  
    1101     private DataSQL getSpojeni() throws SQLException { 
    1102         return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword()); 
    1103     } 
    1104  
    1105     /** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */ 
    1106     private void odesli(HromadnaZprava zprava) throws MessagingException { 
    1107         setCursor(new Cursor(Cursor.WAIT_CURSOR)); 
    1108         try { 
    1109             postak.setNastaveni(nastaveni); 
    1110             postak.odesli(zprava); 
    1111  
    1112         } catch (MessagingException e) { 
    1113             throw e; 
    1114         } finally { 
    1115             setCursor(Cursor.getDefaultCursor()); 
    1116         } 
    1117     } 
    1118  
    1119     private void setPanel(JComponent komponenta) { 
    1120  
    1121         if (panel.getLayout() instanceof CardLayout) { 
    1122             CardLayout l = (CardLayout) panel.getLayout(); 
    1123             l.show(panel, komponenta.getName()); 
    1124         } else { 
    1125             log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout"); 
    1126         } 
    1127  
    1128     } 
    1129  
    1130     /** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */ 
    1131     private void vyresitTabFocusProblem(JTextArea textArea) { 
    1132         textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null); 
    1133         textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null); 
    1134     } 
    1135  
    1136     public JXTaskPaneContainer getTaskPanel() { 
    1137         return taskPanel; 
    1138     } 
    1139  
    1140     /** 
    1141     * @param args the command line arguments 
    1142     */ 
    1143     public static void main(String args[]) { 
    1144         final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit")); 
    1145  
    1146         try { 
    1147             //LookAndFeel laf = UIManager.getLookAndFeel(); 
    1148  
    1149             //laf = new SubstanceLookAndFeel(); 
    1150             //laf = new SubstanceBusinessLookAndFeel(); 
    1151             //laf = new SubstanceBusinessBlueSteelLookAndFeel(); 
    1152             //laf = new SubstanceBusinessBlackSteelLookAndFeel(); 
    1153  
    1154             UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel"); 
    1155         } catch (ClassNotFoundException ex) { 
    1156             log.log(Level.SEVERE, null, ex); 
    1157         } catch (InstantiationException ex) { 
    1158             log.log(Level.SEVERE, null, ex); 
    1159         } catch (IllegalAccessException ex) { 
    1160             log.log(Level.SEVERE, null, ex); 
    1161         } catch (UnsupportedLookAndFeelException ex) { 
    1162             log.log(Level.SEVERE, null, ex); 
    1163         } 
    1164  
    1165         java.awt.EventQueue.invokeLater(new Runnable() { 
    1166  
    1167             public void run() { 
    1168                 new SuperPostak(ladit, true).setVisible(true); 
    1169             } 
    1170         }); 
    1171     } 
     1092        /** Provede uživatelem zadaný SQL dotaz a vrátí získané příjemce */ 
     1093        private Collection<InternetAddressKomu> getPrijemciSQL() throws SQLException, UnsupportedEncodingException { 
     1094                if ("".equals(vstupSQL.getText())) { 
     1095                        return null; 
     1096                } else { 
     1097                        return getSpojeni().getAdresy(vstupSQL.getText()); 
     1098                } 
     1099        } 
     1100 
     1101        private DataSQL getSpojeni() throws SQLException { 
     1102                return Data.getSpojeniSQL(vstupDatabaze.getText(), vstupDBjmeno.getText(), vstupDBheslo.getPassword()); 
     1103        } 
     1104 
     1105        /** Obalovací třída, která v průběhu odesílání zobrazuje kurzor s hodinami. */ 
     1106        private void odesli(HromadnaZprava zprava) throws MessagingException { 
     1107                setCursor(new Cursor(Cursor.WAIT_CURSOR)); 
     1108                try { 
     1109                        postak.setNastaveni(nastaveni); 
     1110                        postak.odesli(zprava); 
     1111 
     1112                } catch (MessagingException e) { 
     1113                        throw e; 
     1114                } finally { 
     1115                        setCursor(Cursor.getDefaultCursor()); 
     1116                } 
     1117        } 
     1118 
     1119        private void setPanel(JComponent komponenta) { 
     1120 
     1121                if (panel.getLayout() instanceof CardLayout) { 
     1122                        CardLayout l = (CardLayout) panel.getLayout(); 
     1123                        l.show(panel, komponenta.getName()); 
     1124                } else { 
     1125                        log.log(Level.WARNING, "Neplatí: panel.getLayout() instanceof CardLayout"); 
     1126                } 
     1127 
     1128        } 
     1129 
     1130        /** Změní chování tabulátoru v textovém poli - aby se pomocí TABu dalo skočit na další komponentu */ 
     1131        private void vyresitTabFocusProblem(JTextArea textArea) { 
     1132                textArea.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null); 
     1133                textArea.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null); 
     1134        } 
     1135 
     1136        public JXTaskPaneContainer getTaskPanel() { 
     1137                return taskPanel; 
     1138        } 
     1139 
     1140        /** 
     1141        * @param args the command line arguments 
     1142        */ 
     1143        public static void main(String args[]) { 
     1144                final boolean ladit = (args != null && args.length > 0 && args[0].equals("ladit")); 
     1145 
     1146                try { 
     1147                        //LookAndFeel laf = UIManager.getLookAndFeel(); 
     1148 
     1149                        //laf = new SubstanceLookAndFeel(); 
     1150                        //laf = new SubstanceBusinessLookAndFeel(); 
     1151                        //laf = new SubstanceBusinessBlueSteelLookAndFeel(); 
     1152                        //laf = new SubstanceBusinessBlackSteelLookAndFeel(); 
     1153 
     1154                        UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel"); 
     1155                } catch (ClassNotFoundException ex) { 
     1156                        log.log(Level.SEVERE, null, ex); 
     1157                } catch (InstantiationException ex) { 
     1158                        log.log(Level.SEVERE, null, ex); 
     1159                } catch (IllegalAccessException ex) { 
     1160                        log.log(Level.SEVERE, null, ex); 
     1161                } catch (UnsupportedLookAndFeelException ex) { 
     1162                        log.log(Level.SEVERE, null, ex); 
     1163                } 
     1164 
     1165                java.awt.EventQueue.invokeLater(new Runnable() { 
     1166 
     1167                        public void run() { 
     1168                                new SuperPostak(ladit, true).setVisible(true); 
     1169                        } 
     1170                }); 
     1171        } 
    11721172    // Variables declaration - do not modify//GEN-BEGIN:variables 
    11731173    private javax.swing.JLabel jLabel1;