Substance added (5.2)

Config reconect - ip bug fixed

onHide/onSave bug fixed

git-svn-id: svn://svn.jdownloader.org/jdownloader/trunk@7058 ebf7c1c2-ba36-0410-9fe8-c592906822b4
This commit is contained in:
coalado 2009-08-04 20:32:05 +00:00
parent f4cf7cd6b3
commit 46accc3f73
19 changed files with 1479 additions and 337 deletions

View File

@ -5,7 +5,8 @@
<property name="dist" value="dist" />
<property name="res" value="ressourcen" />
<property name="keystore" value="G:\jDownloader.keystore" />
<property name="class-path" value="libs/Filters.jar libs/JTattoo.jar libs/JUnique.jar libs/JDGUI.jar libs/JDHttp.jar libs/JAntiCaptcha.jar libs/JDUtils.jar libs/BrowserLauncher2.jar libs/clink170.jar libs/cobra.jar libs/hsqldb.jar libs/htmlcleaner2_0.jar libs/irclib.jar libs/js.jar libs/looks.jar libs/mail.jar libs/miglayout.jar libs/savemytube.jar libs/substance-swingx.jar libs/substance.jar libs/svnkit.jar libs/swingworker.jar libs/swingx.jar libs/ui.jar libs/synthetica.jar libs/syntheticaBatik.jar libs/syntheticaBlackMoon.jar libs/syntheticaBlackStar.jar libs/syntheticaBlueIce.jar libs/syntheticaBlueMoon.jar libs/syntheticaBlueSteel.jar libs/syntheticaGreenDream.jar libs/syntheticaMauveMetallic.jar libs/syntheticaOrangeMetallic.jar libs/syntheticaSilverMoon.jar libs/syntheticaSimple2D.jar libs/syntheticaSkyMetallic.jar libs/syntheticaWhiteVision.jar" />
<property name="class-path" value="libs/jsynthlaf.jar libs/Filters.jar libs/JTattoo.jar libs/JUnique.jar libs/JDGUI.jar libs/JDHttp.jar libs/JAntiCaptcha.jar libs/JDUtils.jar libs/BrowserLauncher2.jar libs/clink170.jar libs/cobra.jar libs/hsqldb.jar libs/htmlcleaner2_0.jar libs/irclib.jar libs/js.jar libs/looks.jar libs/mail.jar libs/miglayout.jar libs/savemytube.jar libs/substance-swingx.jar libs/substance.jar libs/svnkit.jar libs/swingworker.jar libs/swingx.jar libs/ui.jar libs/synthetica.jar libs/syntheticaBatik.jar libs/syntheticaBlackMoon.jar libs/syntheticaBlackStar.jar libs/syntheticaBlueIce.jar libs/syntheticaBlueMoon.jar libs/syntheticaBlueSteel.jar libs/syntheticaGreenDream.jar libs/syntheticaMauveMetallic.jar libs/syntheticaOrangeMetallic.jar libs/syntheticaSilverMoon.jar libs/syntheticaSimple2D.jar libs/syntheticaSkyMetallic.jar libs/syntheticaWhiteVision.jar" />
<property name="class-path" value="libs/jsynthlaf.jar libs/Filters.jar libs/JTattoo.jar libs/JUnique.jar libs/JDGUI.jar libs/JDHttp.jar libs/JAntiCaptcha.jar libs/JDUtils.jar libs/BrowserLauncher2.jar libs/clink170.jar libs/cobra.jar libs/hsqldb.jar libs/htmlcleaner2_0.jar libs/irclib.jar libs/js.jar libs/looks.jar libs/mail.jar libs/miglayout.jar libs/savemytube.jar libs/substance-swingx.jar libs/substance.jar libs/svnkit.jar libs/swingworker.jar libs/swingx.jar libs/ui.jar" />
<target name="compile">
<mkdir dir="${cls}" />

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,632 @@
Use of the Quaqua Look and Feel is entirely at your own risk.
I will not be liable for any data loss, hardware damage or
whatever this program might cause.
Permission to use this release of the Quaqua Look and Feel is
granted provided you agree with its license terms, that the
license fee is paid and the copyright notice and this license
notice appear in all copies and in supporting documentation.
The license terms applies to the version of the Quaqua Look and
Feel, which is stated at the top of this document. Different
versions may have different license terms.
The license terms of the Quaqua Look and Feel do not apply to
third party libraries that are included with the Quaqua Look and
Feel. See section License Terms of Third Party Libraries.
License Terms
Source code, documentation and binaries of the Quaqua Look and
Feel (also called "this software") are subject to the GNU Lesser
General Public License (LGPL).
Alternatively, this software may be used under the terms of the
Modified BSD License.
Third party software used by the Quaqua Look and Feel come with
their own license restrictions.
You may not use or disclose this software except in compliance
with these license term.
Modified BSD License
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above
copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
3. The name of the author may not be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
GNU Lesser General Public License
Table of Contents
* GNU LESSER GENERAL PUBLIC LICENSE
o Preamble
o TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
o How to Apply These Terms to Your New Libraries
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted
to copy and distribute verbatim copies of this license document,
but changing it is not allowed. [This is the first released version
of the Lesser GPL. It also counts as the successor of the GNU
Library Public License, version 2, hence the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General
Public Licenses are intended to guarantee your freedom to share
and change free software--to make sure the software is free for
all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of
the Free Software Foundation and other authors who decide to use
it. You can use it too, but we suggest you first think carefully
about whether this license or the ordinary General Public License
is the better strategy to use in any particular case, based on
the explanations below.
When we speak of free software, we are referring to freedom of
use, not price. Our General Public Licenses are designed to make
sure that you have the freedom to distribute copies of free
software (and charge for this service if you wish); that you receive
source code or can get it if you want it; that you can change the
software and use pieces of it in new free programs; and that you
are informed that you can do these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender
these rights. These restrictions translate to certain
responsibilities for you if you distribute copies of the library
or if you modify it.
For example, if you distribute copies of the library, whether
gratis or for a fee, you must give the recipients all the rights
that we gave you. You must make sure that they, too, receive or
can get the source code. If you link other code with the library,
you must provide complete object files to the recipients, so that
they can relink them with the library after making changes to the
library and recompiling it. And you must show them these terms so
they know their rights.
We protect your rights with a two-step method: (1) we copyright
the library, and (2) we offer you this license, which gives you
legal permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library
is modified by someone else and passed on, the recipients should
know that what they have is not the original version, so that the
original author's reputation will not be affected by problems
that might be introduced by others.
Finally, software patents pose a constant threat to the existence
of any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist
that any patent license obtained for a version of the library must
be consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries,
and is quite different from the ordinary General Public License.
We use this license for certain libraries in order to permit
linking those libraries into non-free programs.
When a program is linked with a library, whether statically or
using a shared library, the combination of the two is legally
speaking a combined work, a derivative of the original library.
The ordinary General Public License therefore permits such linking
only if the entire combination fits its criteria of freedom. The
Lesser General Public License permits more lax criteria for linking
other code with the library.
We call this license the "Lesser" General Public License because
it does Less to protect the user's freedom than the ordinary
General Public License. It also provides other free software
developers Less of an advantage over competing non-free programs.
These disadvantages are the reason we use the ordinary General
Public License for many libraries. However, the Lesser license
provides advantages in certain special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that
it becomes a de-facto standard. To achieve this, non-free programs
must be allowed to use the library. A more frequent case is that
a free library does the same job as widely used non-free libraries.
In this case, there is little to gain by limiting the free library
to free software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body
of free software. For example, permission to use the GNU C Library
in non-free programs enables many more people to use the whole
GNU operating system, as well as its variant, the GNU/Linux
operating system.
Although the Lesser General Public License is Less protective
of the users' freedom, it does ensure that the user of a program
that is linked with the Library has the freedom and the wherewithal
to run that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between
a "work based on the library" and a "work that uses the library".
The former contains code derived from the library, whereas the
latter must be combined with the library in order to run.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or
other program which contains a notice placed by the copyright
holder or other authorized party saying it may be distributed
under the terms of this Lesser General Public License (also
called "this License"). Each licensee is addressed as "you".
A "library" means a collection of software functions and/or
data prepared so as to be conveniently linked with application
programs (which use some of those functions and data) to form
executables.
The "Library", below, refers to any such software library or
work which has been distributed under these terms. A "work based
on the Library" means either the Library or any derivative work
under copyright law: that is to say, a work containing the Library
or a portion of it, either verbatim or with modifications and/or
translated straightforwardly into another language. (Hereinafter,
translation is included without limitation in the term
"modification".)
"Source code" for a work means the preferred form of the work
for making modifications to it. For a library, complete source
code means all the source code for all modules it contains,
plus any associated interface definition files, plus the scripts
used to control compilation and installation of the library.
Activities other than copying, distribution and modification
are not covered by this License; they are outside its scope.
The act of running a program using the Library is not restricted,
and output from such a program is covered only if its contents
constitute a work based on the Library (independent of the use
of the Library in a tool for writing it). Whether that is true
depends on what the Library does and what the program that uses
the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided
that you conspicuously and appropriately publish on each copy
an appropriate copyright notice and disclaimer of warranty; keep
intact all the notices that refer to this License and to the
absence of any warranty; and distribute a copy of this License
along with the Library.
You may charge a fee for the physical act of transferring a
copy, and you may at your option offer warranty protection in
exchange for a fee.
2. You may modify your copy or copies of the Library or any
portion of it, thus forming a work based on the Library, and
copy and distribute such modifications or work under the terms
of Section 1 above, provided that you also meet all of these
conditions:
* a) The modified work must itself be a software library.
* b) You must cause the files modified to carry prominent
notices stating that you changed the files and the date of
any change.
* c) You must cause the whole of the work to be licensed at
no charge to all third parties under the terms of this License.
* d) If a facility in the modified Library refers to a
function or a table of data to be supplied by an application
program that uses the facility, other than as an argument
passed when the facility is invoked, then you must make a
good faith effort to ensure that, in the event an application
does not supply such function or table, the facility still
operates, and performs whatever part of its purpose remains
meaningful.
(For example, a function in a library to compute square
roots has a purpose that is entirely well-defined independent
of the application. Therefore, Subsection 2d requires that
any application-supplied function or table used by this
function must be optional: if the application does not supply
it, the square root function must still compute square roots.)
These requirements apply to the modified work as a whole.
If identifiable sections of that work are not derived from
the Library, and can be reasonably considered independent
and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute
them as separate works. But when you distribute the same
sections as part of a whole which is a work based on the
Library, the distribution of the whole must be on the terms
of this License, whose permissions for other licensees extend
to the entire whole, and thus to each and every part regardless
of who wrote it.
Thus, it is not the intent of this section to claim rights
or contest your rights to work written entirely by you;
rather, the intent is to exercise the right to control the
distribution of derivative or collective works based on the
Library.
In addition, mere aggregation of another work not based
on the Library with the Library (or with a work based on
the Library) on a volume of a storage or distribution medium
does not bring the other work under the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General
Public License instead of this License to a given copy of the
Library. To do this, you must alter all the notices that refer
to this License, so that they refer to the ordinary GNU General
Public License, version 2, instead of to this License. (If a
newer version than version 2 of the ordinary GNU General Public
License has appeared, then you can specify that version instead
if you wish.) Do not make any other change in these notices.
Once this change is made in a given copy, it is irreversible
for that copy, so the ordinary GNU General Public License applies
to all subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code
of the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable
form under the terms of Sections 1 and 2 above provided that
you accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of
Sections 1 and 2 above on a medium customarily used for software
interchange.
If distribution of object code is made by offering access to
copy from a designated place, then offering equivalent access
to copy the source code from the same place satisfies the
requirement to distribute the source code, even though third
parties are not compelled to copy the source along with the
object code.
5. A program that contains no derivative of any portion of
the Library, but is designed to work with the Library by being
compiled or linked with it, is called a "work that uses the
Library". Such a work, in isolation, is not a derivative work
of the Library, and therefore falls outside the scope of this
License.
However, linking a "work that uses the Library" with the
Library creates an executable that is a derivative of the
Library (because it contains portions of the Library), rather
than a "work that uses the library". The executable is therefore
covered by this License. Section 6 states terms for distribution
of such executables.
When a "work that uses the Library" uses material from a
header file that is part of the Library, the object code
for the work may be a derivative work of the Library even
though the source code is not. Whether this is true is especially
significant if the work can be linked without the Library,
or if the work is itself a library. The threshold for this to
be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small
inline functions (ten lines or less in length), then the use
of the object file is unrestricted, regardless of whether it
is legally a derivative work. (Executables containing this
object code plus portions of the Library will still fall
under Section 6.)
Otherwise, if the work is a derivative of the Library, you
may distribute the object code for the work under the terms
of Section 6. Any executables containing that work also fall
under Section 6, whether or not they are linked directly with
the Library itself.
6. As an exception to the Sections above, you may also combine
or link a "work that uses the Library" with the Library to
produce a work containing portions of the Library, and distribute
that work under terms of your choice, provided that the terms
permit modification of the work for the customer's own use and
reverse engineering for debugging such modifications.
You must give prominent notice with each copy of the work that
the Library is used in it and that the Library and its use are
covered by this License. You must supply a copy of this License.
If the work during execution displays copyright notices, you must
include the copyright notice for the Library among them, as well
as a reference directing the user to the copy of this License.
Also, you must do one of these things:
* a) Accompany the work with the complete corresponding
machine-readable source code for the Library including
whatever changes were used in the work (which must be
distributed under Sections 1 and 2 above); and, if the
work is an executable linked with the Library, with the
complete machine-readable "work that uses the Library", as
object code and/or source code, so that the user can modify
the Library and then relink to produce a modified executable
containing the modified Library. (It is understood that the
user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
* b) Use a suitable shared library mechanism for linking
with the Library. A suitable mechanism is one that (1) uses
at run time a copy of the library already present on the
user's computer system, rather than copying library functions
into the executable, and (2) will operate properly with a
modified version of the library, if the user installs one,
as long as the modified version is interface-compatible with
the version that the work was made with.
* c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more than
the cost of performing this distribution.
* d) If distribution of the work is made by offering access
to copy from a designated place, offer equivalent access to
copy the above specified materials from the same place.
* e) Verify that the user has already received a copy of
these materials or that you have already sent this user a
copy.
For an executable, the required form of the "work that uses
the Library" must include any data and utility programs needed
for reproducing the executable from it. However, as a special
exception, the materials to be distributed need not include
anything that is normally distributed (in either source or
binary form) with the major components (compiler, kernel, and
so on) of the operating system on which the executable runs,
unless that component itself accompanies the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means
you cannot use both them and the Library together in an executable
that you distribute.
7. You may place library facilities that are a work based on
the Library side-by-side in a single library together with other
library facilities not covered by this License, and distribute
such a combined library, provided that the separate distribution
of the work based on the Library and of the other library
facilities is otherwise permitted, and provided that you do
these two things:
* a) Accompany the combined library with a copy of the
same work based on the Library, uncombined with any other
library facilities. This must be distributed under the terms
of the Sections above.
* b) Give prominent notice with the combined library of the
fact that part of it is a work based on the Library, and
explaining where to find the accompanying uncombined form
of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.
Any attempt otherwise to copy, modify, sublicense, link with,
or distribute the Library is void, and will automatically
terminate your rights under this License. However, parties
who have received copies, or rights, from you under this License
will not have their licenses terminated so long as such parties
remain in full compliance.
9. You are not required to accept this License, since you have
not signed it. However, nothing else grants you permission to
modify or distribute the Library or its derivative works. These
actions are prohibited by law if you do not accept this License.
Therefore, by modifying or distributing the Library (or any work
based on the Library), you indicate your acceptance of this
License to do so, and all its terms and conditions for copying,
distributing or modifying the Library or works based on it.
10. Each time you redistribute the Library (or any work based
on the Library), the recipient automatically receives a license
from the original licensor to copy, distribute, link with or
modify the Library subject to these terms and conditions. You
may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible
for enforcing compliance by third parties with this License.
11. If, as a consequence of a court judgment or allegation of
patent infringement or for any other reason (not limited to
patent issues), conditions are imposed on you (whether by court
order, agreement or otherwise) that contradict the conditions
of this License, they do not excuse you from the conditions of
this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other
pertinent obligations, then as a consequence you may not
distribute the Library at all. For example, if a patent license
would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you,
then the only way you could satisfy both it and this License would
be to refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable
under any particular circumstance, the balance of the section
is intended to apply, and the section as a whole is intended to
apply in other circumstances.
It is not the purpose of this section to induce you to infringe
any patents or other property right claims or to contest validity
of any such claims; this section has the sole purpose of protecting
the integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is
willing to distribute software through any other system and a
licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed
to be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted
in certain countries either by patents or by copyrighted interfaces,
the original copyright holder who places the Library under this
License may add an explicit geographical distribution limitation
excluding those countries, so that distribution is permitted only
in or among countries not thus excluded. In such case, this
License incorporates the limitation as if written in the body of
this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library specifies a version number of this License which applies
to it and "any later version", you have the option of following
the terms and conditions either of that version or of any later
version published by the Free Software Foundation. If the Library
does not specify a license version number, you may choose any
version ever published by the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other
free programs whose distribution conditions are incompatible with
these, write to the author to ask for permission. For software
which is copyrighted by the Free Software Foundation, write to
the Free Software Foundation; we sometimes make exceptions for
this. Our decision will be guided by the two goals of preserving
the free status of all derivatives of our free software and of
promoting the sharing and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE,
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR
A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN
IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY
OF SUCH DAMAGES.
License Terms of Third Party Libraries
NanoXML
NanoXML is distributed under the zlib/libpng license, which is
OSS (Open Source Software) compliant. It is not GPL or LGPL and
it will never be part of the GNU project.
Copyrighted ©2000-2002 Marc De Scheemaecker, All Rights Reserved
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute
it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you
must not claim that you wrote the original software. If you use
this software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
Base64
Copyright © Robert Harder. All Rights reserved.
This software is in the public domain. Permission to use, copy,
modify, and distribute this software and its documentation for
any purpose and without fee is hereby granted, without any conditions
or restrictions. This software is provided "as is" without express
or implied warranty.
JBrowser
Copyright © Steve Roy. All Rights reserved.
You can do whatever you like with it. As usual with this kind of
stuff, if you have success with it, great, if you manage to create
a catastrophy with it, such as render your computer useless or
crash the entire Internet, too bad, although rather unlikely.
Swing-Layout
Copyright (C) 2005 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
This program is free software; you can redistribute it and/or modify
it under the terms of the Lesser GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
Copyright
Quaqua Look And Feel © 2003-2006
Werner Randelshofer, Staldenmattweg 2, Immensee, CH-6405, Switzerland
http://www.randelshofer.ch/
werner.randelshofer@bluewin.ch
All Rights Reserved.
Contributors
*
Christopher Atlan
* Steve Roy
Third Party Libraries
* NanoXML © 2000-2002
Marc De Scheemaecker
All Rights Reserved.
* Base64 ©
Robert Harder
* Swing-Layout
Sun Microsystems
https://swing-layout.dev.java.net/
All Rights Reserved.
Artwork
The artwork used by the Quaqua Look and Feel is copyright
Apple Computer Inc. Use of the artwork is only licensed for
Apple hardware running an Apple operating system.

View File

@ -0,0 +1,470 @@
MOZILLA PUBLIC LICENSE
Version 1.1
---------------
1. Definitions.
1.0.1. "Commercial Use" means distribution or otherwise making the
Covered Code available to a third party.
1.1. "Contributor" means each entity that creates or contributes to
the creation of Modifications.
1.2. "Contributor Version" means the combination of the Original
Code, prior Modifications used by a Contributor, and the Modifications
made by that particular Contributor.
1.3. "Covered Code" means the Original Code or Modifications or the
combination of the Original Code and Modifications, in each case
including portions thereof.
1.4. "Electronic Distribution Mechanism" means a mechanism generally
accepted in the software development community for the electronic
transfer of data.
1.5. "Executable" means Covered Code in any form other than Source
Code.
1.6. "Initial Developer" means the individual or entity identified
as the Initial Developer in the Source Code notice required by Exhibit
A.
1.7. "Larger Work" means a work which combines Covered Code or
portions thereof with code not governed by the terms of this License.
1.8. "License" means this document.
1.8.1. "Licensable" means having the right to grant, to the maximum
extent possible, whether at the time of the initial grant or
subsequently acquired, any and all of the rights conveyed herein.
1.9. "Modifications" means any addition to or deletion from the
substance or structure of either the Original Code or any previous
Modifications. When Covered Code is released as a series of files, a
Modification is:
A. Any addition to or deletion from the contents of a file
containing Original Code or previous Modifications.
B. Any new file that contains any part of the Original Code or
previous Modifications.
1.10. "Original Code" means Source Code of computer software code
which is described in the Source Code notice required by Exhibit A as
Original Code, and which, at the time of its release under this
License is not already Covered Code governed by this License.
1.10.1. "Patent Claims" means any patent claim(s), now owned or
hereafter acquired, including without limitation, method, process,
and apparatus claims, in any patent Licensable by grantor.
1.11. "Source Code" means the preferred form of the Covered Code for
making modifications to it, including all modules it contains, plus
any associated interface definition files, scripts used to control
compilation and installation of an Executable, or source code
differential comparisons against either the Original Code or another
well known, available Covered Code of the Contributor's choice. The
Source Code can be in a compressed or archival form, provided the
appropriate decompression or de-archiving software is widely available
for no charge.
1.12. "You" (or "Your") means an individual or a legal entity
exercising rights under, and complying with all of the terms of, this
License or a future version of this License issued under Section 6.1.
For legal entities, "You" includes any entity which controls, is
controlled by, or is under common control with You. For purposes of
this definition, "control" means (a) the power, direct or indirect,
to cause the direction or management of such entity, whether by
contract or otherwise, or (b) ownership of more than fifty percent
(50%) of the outstanding shares or beneficial ownership of such
entity.
2. Source Code License.
2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property
claims:
(a) under intellectual property rights (other than patent or
trademark) Licensable by Initial Developer to use, reproduce,
modify, display, perform, sublicense and distribute the Original
Code (or portions thereof) with or without Modifications, and/or
as part of a Larger Work; and
(b) under Patents Claims infringed by the making, using or
selling of Original Code, to make, have made, use, practice,
sell, and offer for sale, and/or otherwise dispose of the
Original Code (or portions thereof).
(c) the licenses granted in this Section 2.1(a) and (b) are
effective on the date Initial Developer first distributes
Original Code under the terms of this License.
(d) Notwithstanding Section 2.1(b) above, no patent license is
granted: 1) for code that You delete from the Original Code; 2)
separate from the Original Code; or 3) for infringements caused
by: i) the modification of the Original Code or ii) the
combination of the Original Code with other software or devices.
2.2. Contributor Grant.
Subject to third party intellectual property claims, each Contributor
hereby grants You a world-wide, royalty-free, non-exclusive license
(a) under intellectual property rights (other than patent or
trademark) Licensable by Contributor, to use, reproduce, modify,
display, perform, sublicense and distribute the Modifications
created by such Contributor (or portions thereof) either on an
unmodified basis, with other Modifications, as Covered Code
and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using, or
selling of Modifications made by that Contributor either alone
and/or in combination with its Contributor Version (or portions
of such combination), to make, use, sell, offer for sale, have
made, and/or otherwise dispose of: 1) Modifications made by that
Contributor (or portions thereof); and 2) the combination of
Modifications made by that Contributor with its Contributor
Version (or portions of such combination).
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
effective on the date Contributor first makes Commercial Use of
the Covered Code.
(d) Notwithstanding Section 2.2(b) above, no patent license is
granted: 1) for any code that Contributor has deleted from the
Contributor Version; 2) separate from the Contributor Version;
3) for infringements caused by: i) third party modifications of
Contributor Version or ii) the combination of Modifications made
by that Contributor with other software (except as part of the
Contributor Version) or other devices; or 4) under Patent Claims
infringed by Covered Code in the absence of Modifications made by
that Contributor.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are
governed by the terms of this License, including without limitation
Section 2.2. The Source Code version of Covered Code may be
distributed only under the terms of this License or a future version
of this License released under Section 6.1, and You must include a
copy of this License with every copy of the Source Code You
distribute. You may not offer or impose any terms on any Source Code
version that alters or restricts the applicable version of this
License or the recipients' rights hereunder. However, You may include
an additional document offering the additional rights described in
Section 3.5.
3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be
made available in Source Code form under the terms of this License
either on the same media as an Executable version or via an accepted
Electronic Distribution Mechanism to anyone to whom you made an
Executable version available; and if made available via Electronic
Distribution Mechanism, must remain available for at least twelve (12)
months after the date it initially became available, or at least six
(6) months after a subsequent version of that particular Modification
has been made available to such recipients. You are responsible for
ensuring that the Source Code version remains available even if the
Electronic Distribution Mechanism is maintained by a third party.
3.3. Description of Modifications.
You must cause all Covered Code to which You contribute to contain a
file documenting the changes You made to create that Covered Code and
the date of any change. You must include a prominent statement that
the Modification is derived, directly or indirectly, from Original
Code provided by the Initial Developer and including the name of the
Initial Developer in (a) the Source Code, and (b) in any notice in an
Executable version or related documentation in which You describe the
origin or ownership of the Covered Code.
3.4. Intellectual Property Matters
(a) Third Party Claims.
If Contributor has knowledge that a license under a third party's
intellectual property rights is required to exercise the rights
granted by such Contributor under Sections 2.1 or 2.2,
Contributor must include a text file with the Source Code
distribution titled "LEGAL" which describes the claim and the
party making the claim in sufficient detail that a recipient will
know whom to contact. If Contributor obtains such knowledge after
the Modification is made available as described in Section 3.2,
Contributor shall promptly modify the LEGAL file in all copies
Contributor makes available thereafter and shall take other steps
(such as notifying appropriate mailing lists or newsgroups)
reasonably calculated to inform those who received the Covered
Code that new knowledge has been obtained.
(b) Contributor APIs.
If Contributor's Modifications include an application programming
interface and Contributor has knowledge of patent licenses which
are reasonably necessary to implement that API, Contributor must
also include this information in the LEGAL file.
(c) Representations.
Contributor represents that, except as disclosed pursuant to
Section 3.4(a) above, Contributor believes that Contributor's
Modifications are Contributor's original creation(s) and/or
Contributor has sufficient rights to grant the rights conveyed by
this License.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source
Code. If it is not possible to put such notice in a particular Source
Code file due to its structure, then You must include such notice in a
location (such as a relevant directory) where a user would be likely
to look for such a notice. If You created one or more Modification(s)
You may add your name as a Contributor to the notice described in
Exhibit A. You must also duplicate this License in any documentation
for the Source Code where You describe recipients' rights or ownership
rights relating to Covered Code. You may choose to offer, and to
charge a fee for, warranty, support, indemnity or liability
obligations to one or more recipients of Covered Code. However, You
may do so only on Your own behalf, and not on behalf of the Initial
Developer or any Contributor. You must make it absolutely clear than
any such warranty, support, indemnity or liability obligation is
offered by You alone, and You hereby agree to indemnify the Initial
Developer and every Contributor for any liability incurred by the
Initial Developer or such Contributor as a result of warranty,
support, indemnity or liability terms You offer.
3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the
requirements of Section 3.1-3.5 have been met for that Covered Code,
and if You include a notice stating that the Source Code version of
the Covered Code is available under the terms of this License,
including a description of how and where You have fulfilled the
obligations of Section 3.2. The notice must be conspicuously included
in any notice in an Executable version, related documentation or
collateral in which You describe recipients' rights relating to the
Covered Code. You may distribute the Executable version of Covered
Code or ownership rights under a license of Your choice, which may
contain terms different from this License, provided that You are in
compliance with the terms of this License and that the license for the
Executable version does not attempt to limit or alter the recipient's
rights in the Source Code version from the rights set forth in this
License. If You distribute the Executable version under a different
license You must make it absolutely clear that any terms which differ
from this License are offered by You alone, not by the Initial
Developer or any Contributor. You hereby agree to indemnify the
Initial Developer and every Contributor for any liability incurred by
the Initial Developer or such Contributor as a result of any such
terms You offer.
3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code
not governed by the terms of this License and distribute the Larger
Work as a single product. In such a case, You must make sure the
requirements of this License are fulfilled for the Covered Code.
4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Code due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description
must be included in the LEGAL file described in Section 3.4 and must
be included with all distributions of the Source Code. Except to the
extent prohibited by statute or regulation, such description must be
sufficiently detailed for a recipient of ordinary skill to be able to
understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has
attached the notice in Exhibit A and to related Covered Code.
6. Versions of the License.
6.1. New Versions.
Netscape Communications Corporation ("Netscape") may publish revised
and/or new versions of the License from time to time. Each version
will be given a distinguishing version number.
6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the
License, You may always continue to use it under the terms of that
version. You may also choose to use such Covered Code under the terms
of any subsequent version of the License published by Netscape. No one
other than Netscape has the right to modify the terms applicable to
Covered Code created under this License.
6.3. Derivative Works.
If You create or use a modified version of this License (which you may
only do in order to apply it to code which is not already Covered Code
governed by this License), You must (a) rename Your license so that
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
"MPL", "NPL" or any confusingly similar phrase do not appear in your
license (except to note that your license differs from this License)
and (b) otherwise make it clear that Your version of the license
contains terms which differ from the Mozilla Public License and
Netscape Public License. (Filling in the name of the Initial
Developer, Original Code or Contributor in the notice described in
Exhibit A shall not of themselves be deemed to be modifications of
this License.)
7. DISCLAIMER OF WARRANTY.
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
8. TERMINATION.
8.1. This License and the rights granted hereunder will terminate
automatically if You fail to comply with terms herein and fail to cure
such breach within 30 days of becoming aware of the breach. All
sublicenses to the Covered Code which are properly granted shall
survive any termination of this License. Provisions which, by their
nature, must remain in effect beyond the termination of this License
shall survive.
8.2. If You initiate litigation by asserting a patent infringement
claim (excluding declatory judgment actions) against Initial Developer
or a Contributor (the Initial Developer or Contributor against whom
You file such action is referred to as "Participant") alleging that:
(a) such Participant's Contributor Version directly or indirectly
infringes any patent, then any and all rights granted by such
Participant to You under Sections 2.1 and/or 2.2 of this License
shall, upon 60 days notice from Participant terminate prospectively,
unless if within 60 days after receipt of notice You either: (i)
agree in writing to pay Participant a mutually agreeable reasonable
royalty for Your past and future use of Modifications made by such
Participant, or (ii) withdraw Your litigation claim with respect to
the Contributor Version against such Participant. If within 60 days
of notice, a reasonable royalty and payment arrangement are not
mutually agreed upon in writing by the parties or the litigation claim
is not withdrawn, the rights granted by Participant to You under
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
the 60 day notice period specified above.
(b) any software, hardware, or device, other than such Participant's
Contributor Version, directly or indirectly infringes any patent, then
any rights granted to You by such Participant under Sections 2.1(b)
and 2.2(b) are revoked effective as of the date You first made, used,
sold, distributed, or had made, Modifications made by that
Participant.
8.3. If You assert a patent infringement claim against Participant
alleging that such Participant's Contributor Version directly or
indirectly infringes any patent where such claim is resolved (such as
by license or settlement) prior to the initiation of patent
infringement litigation, then the reasonable value of the licenses
granted by such Participant under Sections 2.1 or 2.2 shall be taken
into account in determining the amount or value of any payment or
license.
8.4. In the event of termination under Sections 8.1 or 8.2 above,
all end user license agreements (excluding distributors and resellers)
which have been validly granted by You or any distributor hereunder
prior to termination shall survive termination.
9. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
10. U.S. GOVERNMENT END USERS.
The Covered Code is a "commercial item," as that term is defined in
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
software" and "commercial computer software documentation," as such
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
all U.S. Government End Users acquire Covered Code with only those
rights set forth herein.
11. MISCELLANEOUS.
This License represents the complete agreement concerning subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. This License shall be governed by
California law provisions (except to the extent applicable law, if
any, provides otherwise), excluding its conflict-of-law provisions.
With respect to disputes in which at least one party is a citizen of,
or an entity chartered or registered to do business in the United
States of America, any litigation relating to this License shall be
subject to the jurisdiction of the Federal Courts of the Northern
District of California, with venue lying in Santa Clara County,
California, with the losing party responsible for costs, including
without limitation, court costs and reasonable attorneys' fees and
expenses. The application of the United Nations Convention on
Contracts for the International Sale of Goods is expressly excluded.
Any law or regulation which provides that the language of a contract
shall be construed against the drafter shall not apply to this
License.
12. RESPONSIBILITY FOR CLAIMS.
As between Initial Developer and the Contributors, each party is
responsible for claims and damages arising, directly or indirectly,
out of its utilization of rights under this License and You agree to
work with Initial Developer and Contributors to distribute such
responsibility on an equitable basis. Nothing herein is intended or
shall be deemed to constitute any admission of liability.
13. MULTIPLE-LICENSED CODE.
Initial Developer may designate portions of the Covered Code as
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
Developer permits you to utilize portions of the Covered Code under
Your choice of the NPL or the alternative licenses, if any, specified
by the Initial Developer in the file described in Exhibit A.
EXHIBIT A -Mozilla Public License.
``The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is ______________________________________.
The Initial Developer of the Original Code is ________________________.
Portions created by ______________________ are Copyright (C) ______
_______________________. All Rights Reserved.
Contributor(s): ______________________________________.
Alternatively, the contents of this file may be used under the terms
of the _____ license (the "[___] License"), in which case the
provisions of [______] License are applicable instead of those
above. If you wish to allow use of your version of this file only
under the terms of the [____] License and not to allow others to use
your version of this file under the MPL, indicate your decision by
deleting the provisions above and replace them with the notice and
other provisions required by the [___] License. If you do not delete
the provisions above, a recipient may use your version of this file
under either the MPL or the [___] License."
[NOTE: The text of this Exhibit A may differ slightly from the text of
the notices in the Source Code files of the Original Code. You should
use the text of this Exhibit A rather than the text found in the
Original Code Source Code for Your Modifications.]

View File

@ -16,6 +16,7 @@
package jd;
import java.awt.Toolkit;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
@ -40,6 +41,7 @@ import jd.gui.swing.components.linkbutton.JLink;
import jd.gui.swing.jdgui.GUIUtils;
import jd.gui.swing.jdgui.JDGui;
import jd.gui.swing.jdgui.JDGuiConstants;
import jd.gui.swing.jdgui.events.EDTEventQueue;
import jd.gui.swing.laf.LookAndFeelController;
import jd.http.Browser;
import jd.http.Encoding;
@ -150,6 +152,8 @@ public class JDInit {
public void initGUI(JDController controller) {
LookAndFeelController.setUIManager();
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EDTEventQueue());
SwingGui.setInstance(JDGui.getInstance());
UserIF.setInstance(SwingGui.getInstance());
controller.addControlListener(SwingGui.getInstance());

View File

@ -180,7 +180,7 @@ public class Main {
LOGGER.info("Switching back to default JDownloader branch");
}
} else {
webConfig.setProperty("BRANCH", args[i + 1]);
if (webConfig.hasChanges()) {
webConfig.save();
@ -298,7 +298,7 @@ public class Main {
}.waitForEDT();
}
}
LOGGER.info("init Eventmanager");
Interaction.initTriggers();
LOGGER.info("init Localisation");

View File

@ -30,6 +30,14 @@ public class ImageComponent extends JComponent {
private static final long serialVersionUID = -1497469256400862388L;
private Image image;
public Image getImage() {
return image;
}
public void setImage(Image image) {
this.image = image;
}
/**
* @param image
*/

View File

@ -23,307 +23,293 @@ import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.SwingUtilities;
import jd.utils.JDUtilities;
import jd.nutils.Colors;
import jd.captcha.gui.ImageComponent;
import jd.captcha.gui.BasicWindow;
import jd.captcha.JAntiCaptcha;
import jd.captcha.gui.BasicWindow;
import jd.captcha.gui.ImageComponent;
import jd.captcha.pixelgrid.Captcha;
import jd.captcha.utils.Utilities;
import jd.nutils.Colors;
import jd.utils.JDUtilities;
public class ChooseC extends BasicWindow {
private static final long serialVersionUID = 1L;
private JPanel panel, Cpanel;
private int icd = 0;
private int icdb = 0;
private ImageComponent ic;
private Vector<cPoint> ret = new Vector<cPoint>();
private JSpinner tollerance;
protected Captcha captcha;
private void addPix(final cPoint p)
{
BufferedImage image = new BufferedImage(9, 9,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
graphics.setColor(new Color(p.color));
graphics.fillRect(x, y, 1, 1);
}
}
for (int x = 0; x < image.getWidth(); x++) {
graphics.setColor(Color.black);
graphics.fillRect(x, 0, 1, 1);
graphics.fillRect(x, image.getHeight(), 1, 1);
}
for (int y = 0; y < image.getHeight(); y++) {
graphics.setColor(Color.black);
graphics.fillRect(0, y, 1, 1);
graphics.fillRect(image.getWidth(), y, 1, 1);
}
if (icdb == 10) {
icd++;
icdb = 0;
}
final ImageComponent px = new ImageComponent(image);
px.setBackground(new Color(p.color));
px.addMouseListener(new MouseListener() {
private static final long serialVersionUID = 1L;
private JPanel panel, captchaPanel;
private int icd = 0;
private int icdb = 0;
private ImageComponent imageContainer;
private Vector<cPoint> ret = new Vector<cPoint>();
private JSpinner tollerance;
protected Captcha captcha;
public void mouseClicked(MouseEvent e) {
Cpanel.remove(px);
ret.remove(p);
Cpanel.repaint();
Cpanel.revalidate();
if (icdb > 0)
icdb--;
else {
icdb = 10;
icd--;
}
panel.remove(ic);
createIc();
panel.repaint();
panel.revalidate();
}
private void addPix(final cPoint p) {
BufferedImage image = new BufferedImage(9, 9, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
graphics.setColor(new Color(p.color));
graphics.fillRect(x, y, 1, 1);
}
}
for (int x = 0; x < image.getWidth(); x++) {
graphics.setColor(Color.black);
graphics.fillRect(x, 0, 1, 1);
graphics.fillRect(x, image.getHeight(), 1, 1);
}
for (int y = 0; y < image.getHeight(); y++) {
graphics.setColor(Color.black);
graphics.fillRect(0, y, 1, 1);
graphics.fillRect(image.getWidth(), y, 1, 1);
}
if (icdb == 10) {
icd++;
icdb = 0;
}
final ImageComponent px = new ImageComponent(image);
px.setBackground(new Color(p.color));
px.addMouseListener(new MouseListener() {
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseClicked(MouseEvent e) {
captchaPanel.remove(px);
ret.remove(p);
captchaPanel.repaint();
captchaPanel.revalidate();
if (icdb > 0)
icdb--;
else {
icdb = 10;
icd--;
}
panel.remove(imageContainer);
createIc();
panel.repaint();
panel.revalidate();
}
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
});
setComponent(icdb++, icd, px);
}
private void createIc() {
final Captcha captchaImage = new Captcha(captcha.getWidth(), captcha
.getHeight());
captchaImage.grid = new int[captcha.getWidth()][captcha.getHeight()];
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
for (int x = 0; x < captchaImage.getWidth(); x++) {
for (int y = 0; y < captchaImage.getHeight(); y++) {
captchaImage.grid[x][y] = captcha.getPixelValue(x, y);
}
});
setComponent(icdb++, icd, px);
}
for (cPoint cp : ret) {
if (cp.distance == 0) {
if (captcha.getPixelValue(x, y) == cp.color)
captchaImage.grid[x][y] = 0xff00ff;
} else if (Colors.getColorDifference(captcha.getPixelValue(
x, y), cp.color) < cp.distance) {
captchaImage.grid[x][y] = 0xff00ff;
}
}
private void createIc() {
final Captcha captchaImage = new Captcha(captcha.getWidth(), captcha.getHeight());
captchaImage.grid = new int[captcha.getWidth()][captcha.getHeight()];
}
for (int x = 0; x < captchaImage.getWidth(); x++) {
for (int y = 0; y < captchaImage.getHeight(); y++) {
captchaImage.grid[x][y] = captcha.getPixelValue(x, y);
}
for (cPoint cp : ret) {
if (cp.distance == 0) {
if (captcha.getPixelValue(x, y) == cp.color) captchaImage.grid[x][y] = 0xff00ff;
} else if (Colors.getColorDifference(captcha.getPixelValue(x, y), cp.color) < cp.distance) {
captchaImage.grid[x][y] = 0xff00ff;
}
}
ic = new ImageComponent(captchaImage.getImage().getScaledInstance(
captchaImage.getWidth() * 2, captchaImage.getHeight() * 2,
Image.SCALE_DEFAULT));
ic.addMouseListener(new MouseListener() {
}
public void mouseClicked(MouseEvent e) {
final cPoint p = new cPoint(e.getX() / 2, e.getY() / 2,
(Integer) tollerance.getValue(), captcha);
if (!ret.contains(p)) {
ret.add(p);
addPix(p);
Cpanel.repaint();
Cpanel.revalidate();
for (int x = 0; x < captchaImage.getWidth(); x++) {
for (int y = 0; y < captchaImage.getHeight(); y++) {
captchaImage.grid[x][y] = captchaImage.getPixelValue(x, y);
}
if (p.distance == 0) {
if (captcha.getPixelValue(x, y) == p.color)
captchaImage.grid[x][y] = 0xff00ff;
} else if (Colors.getColorDifference(captcha.getPixelValue(
x, y), p.color) < p.distance) {
captchaImage.grid[x][y] = 0xff00ff;
}
imageContainer = new ImageComponent(captchaImage.getImage().getScaledInstance(captchaImage.getWidth() * 2, captchaImage.getHeight() * 2, Image.SCALE_DEFAULT));
imageContainer.addMouseListener(new MouseListener() {
}
public void mouseClicked(MouseEvent e) {
final cPoint p = new cPoint(e.getX() / 2, e.getY() / 2, (Integer) tollerance.getValue(), captcha);
if (!ret.contains(p)) {
ret.add(p);
addPix(p);
captchaPanel.repaint();
captchaPanel.revalidate();
for (int x = 0; x < captchaImage.getWidth(); x++) {
for (int y = 0; y < captchaImage.getHeight(); y++) {
captchaImage.grid[x][y] = captchaImage.getPixelValue(x, y);
}
ic.image=captchaImage.getImage().getScaledInstance(
captchaImage.getWidth() * 2, captchaImage.getHeight() * 2,
Image.SCALE_DEFAULT);
panel.repaint();
panel.revalidate();
}
}
if (p.distance == 0) {
if (captcha.getPixelValue(x, y) == p.color) captchaImage.grid[x][y] = 0xff00ff;
} else if (Colors.getColorDifference(captcha.getPixelValue(x, y), p.color) < p.distance) {
captchaImage.grid[x][y] = 0xff00ff;
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
}
}
imageContainer.setImage(captchaImage.getImage().getScaledInstance(captchaImage.getWidth() * 2, captchaImage.getHeight() * 2, Image.SCALE_DEFAULT));
panel.repaint();
panel.revalidate();
}
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
});
panel.add(ic, getGBC(0, 2, 1, 1));
}
}
private ChooseC() {
super();
}
private void init(Captcha captcha) {
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
this.captcha = captcha;
this.setAlwaysOnTop(true);
panel = new JPanel();
panel.setLayout(new GridBagLayout());
setLayout(new BorderLayout());
add(new JScrollPane(panel), BorderLayout.CENTER);
setSize(captcha.getWidth() * 2 + 20, captcha.getHeight() * 2 + 300);
setLocation(0, 0);
Cpanel = new JPanel();
Cpanel.setLayout(new GridBagLayout());
}
});
panel.add(imageContainer, getGBC(0, 2, 1, 1));
panel.add(Cpanel, getGBC(0, 3, 1, 1));
JButton bt = new JButton("OK");
bt.addActionListener(new ActionListener() {
}
public void actionPerformed(ActionEvent e) {
destroy();
private ChooseC() {
super();
}
}
});
setTitle("new ScrollPaneWindow");
panel.add(new ImageComponent(captcha.getImage().getScaledInstance(
captcha.getWidth() * 2, captcha.getHeight() * 2,
Image.SCALE_DEFAULT)), getGBC(0, 1, 1, 1));
if (captcha != null) {
createIc();
for (cPoint p : ret) {
addPix(p);
}
}
GridBagConstraints gb = Utilities.getGBC(0, 4, 1, 1);
gb.anchor = GridBagConstraints.WEST;
private void init(Captcha captcha) {
panel.add(bt, gb);
gb.anchor = GridBagConstraints.EAST;
this.captcha = captcha;
this.setAlwaysOnTop(true);
panel = new JPanel();
panel.setLayout(new GridBagLayout());
setLayout(new BorderLayout());
add(new JScrollPane(panel), BorderLayout.CENTER);
setSize(captcha.getWidth() * 2 + 20, captcha.getHeight() * 2 + 300);
setLocation(0, 0);
captchaPanel = new JPanel();
captchaPanel.setLayout(new GridBagLayout());
tollerance = new JSpinner(new SpinnerNumberModel(25, 0, 255, 1));
panel.add(tollerance, gb);
// refreshUI();
setVisible(true);
}
panel.add(captchaPanel, getGBC(0, 3, 1, 1));
JButton bt = new JButton("OK");
bt.addActionListener(new ActionListener() {
public void destroy() {
super.destroy();
synchronized (this) {
this.notify();
}
}
public void actionPerformed(ActionEvent e) {
destroy();
private void setComponent(final int x, final int y, final Component cmp) {
if (cmp == null)
return;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Cpanel.add(cmp, getGBC(x, y, 1, 1));
}
});
}
public static Vector<cPoint> getColors(Captcha captcha, Vector<cPoint> r) {
ChooseC cc = new ChooseC();
cc.ret=r;
cc.init(captcha);
synchronized (cc) {
try {
cc.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return cc.ret;
}
public static Vector<cPoint> getColors(Captcha captcha) {
}
});
setTitle("new ScrollPaneWindow");
panel.add(new ImageComponent(captcha.getImage().getScaledInstance(captcha.getWidth() * 2, captcha.getHeight() * 2, Image.SCALE_DEFAULT)), getGBC(0, 1, 1, 1));
if (captcha != null) {
createIc();
for (cPoint p : ret) {
addPix(p);
}
}
GridBagConstraints gb = Utilities.getGBC(0, 4, 1, 1);
gb.anchor = GridBagConstraints.WEST;
return getColors(captcha, new Vector<cPoint>());
}
panel.add(bt, gb);
gb.anchor = GridBagConstraints.EAST;
/**
* @param args
*/
public static void main(String[] args) {
String path = JDUtilities.getJDHomeDirectoryFromEnvironment().getAbsolutePath();
System.out.println(path);
File folder = new File(path+"/captchas/underground cms");
File[] list = folder.listFiles();
Captcha[] cs = new Captcha[7 < list.length ? 7 : list.length];
tollerance = new JSpinner(new SpinnerNumberModel(25, 0, 255, 1));
panel.add(tollerance, gb);
// refreshUI();
setVisible(true);
}
JAntiCaptcha jac = new JAntiCaptcha(Utilities.getMethodDir(), "EasyCaptcha");
Vector<cPoint> c = new Vector<cPoint>();
for (int i = 0; i < cs.length; i++) {
File captchafile = list[i];
Image captchaImage = Utilities.loadImage(captchafile);
public void destroy() {
super.destroy();
synchronized (this) {
this.notify();
}
}
Captcha captcha = jac.createCaptcha(captchaImage);
captcha.setCaptchaFile(captchafile);
cs[i] = captcha;
c = getColors(captcha, c);
for (cPoint j : c) {
System.out.println("c:" + j.color);
}
}
private void setComponent(final int x, final int y, final Component cmp) {
if (cmp == null) return;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
captchaPanel.add(cmp, getGBC(x, y, 1, 1));
}
});
}
}
public static Vector<cPoint> getColors(Captcha captcha, Vector<cPoint> r) {
ChooseC cc = new ChooseC();
cc.ret = r;
cc.init(captcha);
synchronized (cc) {
try {
cc.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return cc.ret;
}
public static Vector<cPoint> getColors(Captcha captcha) {
return getColors(captcha, new Vector<cPoint>());
}
/**
* @param args
*/
public static void main(String[] args) {
String path = JDUtilities.getJDHomeDirectoryFromEnvironment().getAbsolutePath();
System.out.println(path);
File folder = new File(path + "/captchas/underground cms");
File[] list = folder.listFiles();
Captcha[] cs = new Captcha[7 < list.length ? 7 : list.length];
JAntiCaptcha jac = new JAntiCaptcha(Utilities.getMethodDir(), "EasyCaptcha");
Vector<cPoint> c = new Vector<cPoint>();
for (int i = 0; i < cs.length; i++) {
File captchafile = list[i];
Image captchaImage = Utilities.loadImage(captchafile);
Captcha captcha = jac.createCaptcha(captchaImage);
captcha.setCaptchaFile(captchafile);
cs[i] = captcha;
c = getColors(captcha, c);
for (cPoint j : c) {
System.out.println("c:" + j.color);
}
}
}
}
class cPoint extends Point {
private static final long serialVersionUID = 1L;
int color;
int distance;
private static final long serialVersionUID = 1L;
int color;
int distance;
public cPoint(int x, int y, int distance, Captcha captcha) {
this(x, y, distance, captcha.getPixelValue(x, y));
}
public cPoint(int x, int y, int distance, Captcha captcha) {
this(x, y, distance, captcha.getPixelValue(x, y));
}
public cPoint(int x, int y, int distance, int color) {
super(x, y);
this.color = color;
this.distance = distance;
}
public cPoint(int x, int y, int distance, int color) {
super(x, y);
this.color = color;
this.distance = distance;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return super.equals(obj) || ((cPoint) obj).color == color;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return super.equals(obj) || ((cPoint) obj).color == color;
}
}

View File

@ -203,7 +203,7 @@ public class JDController implements ControlListener {
private DownloadWatchDog watchdog;
private Integer StartStopSync = new Integer(0);
private boolean exitRequested = false;
private static Integer delayExit = new Integer(0);
private static JDController INSTANCE;
@ -341,19 +341,12 @@ public class JDController implements ControlListener {
* Beendet das Programm
*/
public void exit() {
this.exitRequested = true;
prepareShutdown();
System.exit(0);
}
/**
* Is only true, if a termination is in progress
*
* @return
*/
public boolean isExitRequested() {
return exitRequested;
}
public void prepareShutdown() {
logger.info("Stop all runing downloads");

View File

@ -1,16 +1,20 @@
package jd.gui.swing;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;
import java.awt.event.WindowListener;
import java.awt.event.WindowStateListener;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import jd.JDInitFlags;
import jd.controlling.JDLogger;
import jd.event.ControlListener;
import jd.gui.UserIF;
import jd.gui.swing.jdgui.events.EDTEventQueue;
import jd.gui.swing.jdgui.interfaces.SwitchPanel;
public abstract class SwingGui extends UserIF implements ControlListener, WindowListener, WindowStateListener, WindowFocusListener {
@ -91,15 +95,16 @@ public abstract class SwingGui extends UserIF implements ControlListener, Window
mainFrame = new JFrame(string);
}
/**
* Returns the gui's mainjframe
* @return
*/
/**
* Returns the gui's mainjframe
*
* @return
*/
public JFrame getMainFrame() {
return mainFrame;
}
/**
* Has to return the current used gui
*
@ -132,8 +137,14 @@ public abstract class SwingGui extends UserIF implements ControlListener, Window
public static boolean checkEDT() {
if (!JDInitFlags.SWITCH_DEBUG) return true;
Thread th = Thread.currentThread();
String name = th.toString();
if (!name.contains("EventQueue")) {
if (!SwingUtilities.isEventDispatchThread()) {
boolean dip = EDTEventQueue.isDispatchThread();
boolean isedt = SwingUtilities.isEventDispatchThread();
// isedt=isedt;
JDLogger.exception(new RuntimeException("EDT Violation! Runs in " + th));
return false;
}

View File

@ -111,6 +111,7 @@ public class JDGui extends SwingGui implements LinkGrabberDistributeEvent {
private LogView logView;
private MainToolBar toolBar;
private JPanel waitingPane;
private boolean exitRequested=false;
private JDGui() {
super("");
@ -285,7 +286,8 @@ public class JDGui extends SwingGui implements LinkGrabberDistributeEvent {
}
private void initDefaults() {
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EDTEventQueue());
mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
mainFrame.addWindowListener(this);
@ -366,7 +368,7 @@ public class JDGui extends SwingGui implements LinkGrabberDistributeEvent {
INSTANCE = new GuiRunnable<JDGui>() {
@Override
public JDGui runSave() {
Thread.currentThread().setContextClassLoader(JDUtilities.getJDClassLoader());
return new JDGui();
}
@ -433,6 +435,7 @@ public class JDGui extends SwingGui implements LinkGrabberDistributeEvent {
break;
case ControlEvent.CONTROL_SYSTEM_EXIT:
this.exitRequested=true;
JDController.requestDelayExit();
new GuiRunnable<Object>() {
@Override
@ -468,6 +471,13 @@ public class JDGui extends SwingGui implements LinkGrabberDistributeEvent {
break;
}
}
/**
* returns true, if the user requested the app to close
* @return
*/
public boolean isExitRequested() {
return exitRequested;
}
public void windowClosing(WindowEvent e) {
if (e.getComponent() == getMainFrame()) closeWindow();

View File

@ -1,9 +1,7 @@
package jd.gui.swing.jdgui;
public class JDGuiConstants {
public static final String CONFIG_PARAMETER = "jdgui";
public static final String CFG_KEY_MAIN_TABBED_HIGHLIGHT = "jdgui.maintab.high.extrahighlight";
public static final String CFG_KEY_TOOLBAR_ACTIONLIST = "jdgui.toolbar.actionlist2";
@ -19,11 +17,12 @@ public class JDGuiConstants {
public static final String PARAM_SHOW_SPLASH = "SHOW_SPLASH";
public static final String PARAM_JAC_LOG = "JAC_DOLOG";
public static final String PARAM_BROWSER = "BROWSER2";
// public static final String GUICONFIGNAME = "simpleGUI";
// public static final String GUICONFIGNAME = "simpleGUI";
public static final String PARAM_SIDEBAR_COLLAPSED = "PARAM_SIDEBAR_COLLAPSED";
public static final String ANIMATION_ENABLED = "ANIMATION_ENABLED3";
public static final String DECORATION_ENABLED = "DECORATION_ENABLED2";
public static final String PARAM_INSERT_NEW_LINKS_AT = "PARAM_INSERT_NEW_LINKS_AT2";
public static final String PARAM_START_AFTER_ADDING_LINKS = "PARAM_START_AFTER_ADDING_LINKS";
public static final String PARAM_SHOW_BALLOON = "PARAM_SHOW_BALLOON";
public static final String PARAM_SHOW_BALLOON = "PARAM_SHOW_BALLOON";
}

View File

@ -79,8 +79,10 @@ public abstract class SwitchPanel extends JPanel {
* invokes the view chain of this panel. all nestes views get informed, too
*/
public void setShown() {
if(currentlyVisible)return;
this.currentlyVisible = true;
onShow();
System.err.println("Shown "+this);
broadcaster.fireEvent(new SwitchPanelEvent(this, SwitchPanelEvent.ON_SHOW));
distributeView(this);
}
@ -114,8 +116,10 @@ public abstract class SwitchPanel extends JPanel {
* invokes the view chain of this panel. all nestes views get informed, too
*/
public void setHidden() {
if(!currentlyVisible)return;
this.currentlyVisible = false;
onHide();
System.err.println("Hidden "+this);
broadcaster.fireEvent(new SwitchPanelEvent(this, SwitchPanelEvent.ON_HIDE));
distributeHide(this);
}

View File

@ -34,6 +34,7 @@ import jd.config.ConfigEntry.PropertyType;
import jd.controlling.JDController;
import jd.gui.UserIO;
import jd.gui.swing.Factory;
import jd.gui.swing.jdgui.JDGui;
import jd.gui.swing.jdgui.interfaces.SwitchPanel;
import jd.nutils.JDFlags;
import jd.utils.JDUtilities;
@ -235,7 +236,7 @@ public abstract class ConfigPanel extends SwitchPanel {
PropertyType changes = hasChanges();
this.save();
if (changes == PropertyType.NEEDS_RESTART) {
if (!JDController.getInstance().isExitRequested()) {
if (!JDGui.getInstance().isExitRequested()) {
int answer = UserIO.getInstance().requestConfirmDialog(0, JDL.L("jd.gui.swing.jdgui.settings.ConfigPanel.restartquestion.title", "Restart required!"), JDL.L("jd.gui.swing.jdgui.settings.ConfigPanel.restartquestion", "This option needs a JDownloader restart."), null, JDL.L("jd.gui.swing.jdgui.settings.ConfigPanel.restartquestion.ok", "Restart NOW!"), null);
if (JDFlags.hasSomeFlags(answer, UserIO.RETURN_DONT_SHOW_AGAIN | UserIO.RETURN_OK)) {
@ -276,20 +277,30 @@ public abstract class ConfigPanel extends SwitchPanel {
}
return ret;
}
public void saveConfigEntries() {
/**
* Saves the configentries in THIS panel.
*/
public final void saveConfigEntries() {
ArrayList<SubConfiguration> subs = new ArrayList<SubConfiguration>();
for (GUIConfigEntry akt : entries) {
String ndame = akt.getConfigEntry().getPropertyName();
System.out.println(ndame+" - "+akt.getConfigEntry().getPropertyInstance());
if (akt.getConfigEntry().getPropertyInstance() instanceof SubConfiguration && subs.indexOf(akt.getConfigEntry().getPropertyInstance()) < 0) {
subs.add((SubConfiguration) akt.getConfigEntry().getPropertyInstance());
}
if (akt.getConfigEntry().getPropertyInstance() != null && akt.getConfigEntry().getPropertyName() != null) {
akt.getConfigEntry().getPropertyInstance().setProperty(akt.getConfigEntry().getPropertyName(), akt.getText());
System.out.println("saved "+akt.getText());
}
}
for (SubConfiguration subConfiguration : subs) {
subConfiguration.save();
System.out.println(subConfiguration+" - "+subConfiguration.getProperties());
}
}

View File

@ -86,6 +86,8 @@ public class General extends ConfigPanel {
ce.setDefaultValue("default");
ce.setPropertyType(PropertyType.NEEDS_RESTART);
}
if (LookAndFeelController.getSupportedLookAndFeels().length > 1) {
look.addEntry(ce = new ConfigEntry(ConfigContainer.TYPE_COMBOBOX, subConfig, LookAndFeelController.PARAM_PLAF, LookAndFeelController.getSupportedLookAndFeels(), JDL.L("gui.config.gui.plaf", "Style(benötigt JD-Neustart)")).setGroup(lookGroup));
ce.setDefaultValue(LookAndFeelController.getPlaf());
@ -99,21 +101,11 @@ public class General extends ConfigPanel {
ce.setDefaultValue(true);
look.addEntry(ce = new ConfigEntry(ConfigContainer.TYPE_CHECKBOX, subConfig, JDGuiConstants.PARAM_SHOW_BALLOON, JDL.L("gui.config.gui.showBalloon", "Show Balloon infos")).setGroup(feel));
ce.setDefaultValue(true);
// ConfigGroup perf = new
// ConfigGroup(JDL.L("gui.config.gui.performance", "Performance"),
// JDTheme.II("gui.images.performance", 32, 32));
// look.addEntry(ce = new ConfigEntry(ConfigContainer.TYPE_CHECKBOX,
// subConfig, JDGuiConstants.ANIMATION_ENABLED,
// JDL.L("gui.config.gui.animationenabled",
// "Enable extended effects.")).setGroup(perf));
// ce.setDefaultValue(false);
// ce.setPropertyType(PropertyType.NEEDS_RESTART);
// look.addEntry(ce = new ConfigEntry(ConfigContainer.TYPE_CHECKBOX,
// subConfig, JDGuiConstants.DECORATION_ENABLED,
// JDL.L("gui.config.gui.decoration",
// "Enable Windowdecoration")).setGroup(perf));
// ce.setDefaultValue(true);
// ce.setPropertyType(PropertyType.NEEDS_RESTART);
ConfigGroup perf = new ConfigGroup(JDL.L("gui.config.gui.performance", "Performance"), JDTheme.II("gui.images.performance", 32, 32));
look.addEntry(ce = new ConfigEntry(ConfigContainer.TYPE_CHECKBOX, subConfig, JDGuiConstants.DECORATION_ENABLED, JDL.L("gui.config.gui.decoration", "Enable Windowdecoration")).setGroup(perf));
ce.setDefaultValue(true);
ce.setPropertyType(PropertyType.NEEDS_RESTART);
return look;
}

View File

@ -25,6 +25,8 @@ import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import jd.config.ConfigContainer;
import jd.config.ConfigEntry;
@ -40,6 +42,7 @@ import jd.controlling.reconnect.ReconnectMethod;
import jd.controlling.reconnect.Reconnecter;
import jd.gui.swing.Factory;
import jd.gui.swing.GuiRunnable;
import jd.gui.swing.jdgui.interfaces.SwitchPanelEvent;
import jd.gui.swing.jdgui.settings.ConfigPanel;
import jd.gui.swing.jdgui.settings.GUIConfigEntry;
import jd.gui.swing.jdgui.settings.subpanels.SubPanelCLRReconnect;
@ -227,8 +230,26 @@ public class MethodSelection extends ConfigPanel implements ActionListener {
setLayout(new MigLayout("ins 0,wrap 1", "[fill,grow 10]", "[fill,grow]"));
// panel.add();
JTabbedPane tabbed = new JTabbedPane();
tabbed.setOpaque(false); tabbed.add(getBreadcrum(), method);
tabbed.setOpaque(false);
tabbed.add(getBreadcrum(), method);
// this.tabbed.addChangeListener(new ChangeListener() {
//
// private ConfigPanel selection;
//
// public void stateChanged(ChangeEvent e) {
//
// try {
// if(selection!=null)selection.save();
// ConfigPanel comp = (ConfigPanel) MethodSelection.this.tabbed.getSelectedComponent();
// comp.load();
// this.selection=comp;
// } catch (Exception e2) {
// e2.printStackTrace();
// }
//
// }
//
// });
this.add(tabbed);
}
@ -273,7 +294,7 @@ public class MethodSelection extends ConfigPanel implements ActionListener {
});
cp.initPanel();
cp.load();
// cp.load();
}
@ -310,7 +331,7 @@ public class MethodSelection extends ConfigPanel implements ActionListener {
});
cp.initPanel();
cp.load();
// cp.load();
}
@ -332,7 +353,12 @@ public class MethodSelection extends ConfigPanel implements ActionListener {
ConfigEntry.PropertyType ret = tabbed.getSelectedIndex() != configuration.getIntegerProperty(ReconnectMethod.PARAM_RECONNECT_TYPE, ReconnectMethod.LIVEHEADER) ? PropertyType.NORMAL : PropertyType.NONE;
return PropertyType.getMax(ret, super.hasChanges(), ((ConfigPanel) tabbed.getSelectedComponent()).hasChanges());
}
public void setHidden() {
save();
getBroadcaster().fireEvent(new SwitchPanelEvent(this, SwitchPanelEvent.ON_HIDE));
}
@Override
public void save() {

View File

@ -21,14 +21,14 @@ import java.io.FileInputStream;
import java.lang.reflect.Modifier;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.LookAndFeel;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
@ -36,7 +36,7 @@ import jd.JDInitFlags;
import jd.config.SubConfiguration;
import jd.controlling.JDLogger;
import jd.gui.swing.jdgui.GUIUtils;
import jd.nutils.JDFlags;
import jd.gui.swing.jdgui.JDGuiConstants;
import jd.nutils.OSDetector;
import jd.parser.Regex;
import jd.utils.JDUtilities;
@ -46,7 +46,7 @@ public class LookAndFeelController {
/**
*Config parameter to store the users laf selection
*/
public static final String PARAM_PLAF = "PLAF4";
public static final String PARAM_PLAF = "PLAF5";
public static final String DEFAULT_PREFIX = "LAF_CFG";
private static boolean uiInitated = false;
@ -196,17 +196,16 @@ public class LookAndFeelController {
install();
try {
JDLogger.getLogger().info("Use Look & Feel: " + getPlaf().getClassName());
Thread.currentThread().setContextClassLoader(JDUtilities.getJDClassLoader());
preSetup(getPlaf().getClassName());
Thread.currentThread().setContextClassLoader(JDUtilities.getJDClassLoader());
preSetup(getPlaf().getClassName());
UIManager.put("ClassLoader", JDUtilities.getJDClassLoader());
UIManager.setLookAndFeel(getPlaf().getClassName());
UIManager.put("ClassLoader", JDUtilities.getJDClassLoader());
// UIManager.setLookAndFeel(new SyntheticaStandardLookAndFeel());
// overwrite defaults
@ -219,23 +218,25 @@ public class LookAndFeelController {
JDLogger.getLogger().info("Use special LAF Property: " + next.getKey() + " = " + next.getValue());
UIManager.put(next.getKey(), next.getValue());
}
} catch (Throwable e) {
JDLogger.exception(e);
}
}
/**
* INstalls all Look and feels founmd in libs/laf/
*/
/**
* INstalls all Look and feels founmd in libs/laf/
*/
private static void install() {
for (File file : JDUtilities.getJDClassLoader().getLafs()) {
for (File file : JDUtilities.getJDClassLoader().getLafs()) {
try {
JarInputStream jarFile = new JarInputStream(new FileInputStream(file));
JarInputStream jarFile = new JarInputStream(new FileInputStream(file));
JarEntry e;
String cl;
ArrayList<String> names = new ArrayList<String>();
ArrayList<String> classes = new ArrayList<String>();
while ((e = jarFile.getNextJarEntry()) != null) {
if (!e.getName().endsWith(".class") || e.getName().contains("$")) continue;
cl = e.getName().replace("/", ".");
@ -243,14 +244,14 @@ public class LookAndFeelController {
if (!cl.toLowerCase().endsWith("lookandfeel")) continue;
Class<?> clazz = JDUtilities.getJDClassLoader().loadClass(cl);
try {
if (LookAndFeel.class.isAssignableFrom(clazz)&&!Modifier.isAbstract(clazz.getModifiers())) {
if (LookAndFeel.class.isAssignableFrom(clazz) && !Modifier.isAbstract(clazz.getModifiers())) {
String name = clazz.getSimpleName().replace("LookAndFeel", "");
names.add(name);
classes.add(cl);
UIManager.installLookAndFeel(name, cl);
}
} catch (Throwable t) {
@ -258,7 +259,11 @@ public class LookAndFeelController {
}
}
// first collect all. Of the jar contaisn errors, an exception
// gets thrown and no laf is added (e.gh. substance for 1.5
for (int i = 0; i < names.size(); i++) {
UIManager.installLookAndFeel(names.get(i), classes.get(i));
}
} catch (Exception e) {
JDLogger.exception(e);
}
@ -284,23 +289,13 @@ public class LookAndFeelController {
* Execvutes LAF dependen commands BEFORE initializing the LAF
*/
private static void preSetup(String className) {
if (className.contains("ynth")) {
// System.setProperty("swing.aatext", "true");
UIManager.put("Synthetica.dialog.icon.enabled", true);
UIManager.put("Synthetica.rootPane.titlePane.menuButton.useOriginalImageSize", Boolean.TRUE);
UIManager.put("Synthetica.tabbedPane.tab.animation.cycles", 100);
UIManager.put("Synthetica.tabbedPane.tabs.stretch", Boolean.TRUE);
}
Boolean windowDeco = GUIUtils.getConfig().getBooleanProperty(JDGuiConstants.DECORATION_ENABLED, true);
UIManager.put("Synthetica.window.decoration", windowDeco);
JFrame.setDefaultLookAndFeelDecorated(windowDeco);
JDialog.setDefaultLookAndFeelDecorated(windowDeco);
if (className.equalsIgnoreCase("de.javasoft.plaf.synthetica.SyntheticaStandardLookAndFeel")) {
UIManager.put("Synthetica.window.decoration", false);
}
}
}