jgoodies-looks-2.5.2/0000755000175000017500000000000012054225735013221 5ustar tonytonyjgoodies-looks-2.5.2/LICENSE.txt0000644000175000017500000000323212003555452015040 0ustar tonytony The BSD License for the JGoodies Looks ====================================== Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: o Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. o 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. o Neither the name of JGoodies Karsten Lentzsch nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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. jgoodies-looks-2.5.2/README.html0000644000175000017500000001302212003555452015036 0ustar tonytony JGoodies Looks :: README
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Readme :: Looks 2.5.2 ::

The JGoodies Looks make your Swing applications and applets look better. The package consists of a Windows look&feel and the Plastic look&feel family. These have been optimized for readability, precise micro-design and usability.

The Looks requires Java 6 or later and the JGoodies Common library. Looks releases for older Java versions are available in the JGoodies Archive.

Acknowledgements

The Looks project has been financed by customers of the JGoodies Swing Suite. It is only with their money that I can provide, maintain and improve this library at no charge.

Thanks to those who have taken the time to identify, report and discuss issues in the JGoodies Looks. And many thanks to Andrej Golovnin who has reported, verified, managed and fixed several issues. His patches have improved the quality of the JGoodies Looks and have helped me save time. He's also a frequent and valueable poster in the Looks user mailing list.

Third Party Licenses

Since version 2.1 the Plastic L&f family uses some icons from the Tango project licensed under the Creative Commons Attribution Share-Alike license.
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/RELEASE-NOTES.txt0000644000175000017500000010343312003555452015730 0ustar tonytony JGoodies Looks Release Notes CHANGES IN 2.5.2 -------------------------------------------------------- o Fixed the broken version in the pom.xml. CHANGES IN 2.5.1 -------------------------------------------------------- o The javadocs, main and test sources are delivered as JARs. CHANGES IN 2.5.0 -------------------------------------------------------- o Requires Java 6 and JGoodies Common 1.3. o Removed deprecated code: - LookUtils#IS_LAF_WINDOWS_XP_ENABLED - LookUtils#IS_LOW_RESOLUTION o Generified several members. o Removed code that is obsolete in Java 6. o Simplified the UI class and component setup for Java 6. CHANGES IN 2.4.2 -------------------------------------------------------- BUG FIXES o Fixed a potential NPE in Windows- and PlasticFieldCaret#selectAll CHANGES IN 2.4.1 -------------------------------------------------------- INTRODUCTION This version requires the JGoodies Common library version 1.2.0. OTHER CHANGES o Uses the Common SystemUtils. CHANGES IN 2.4.0 -------------------------------------------------------- INTRODUCTION This version requires Java 5 and the new JGoodies Common library. Make sure that you include jgoodies-common-1.1.1.jar in your classpath when using this Looks version. BUG FIXES o Fixed bug in the FontTest on non-Windows platforms. o Fixed a potential NPE in PlasticFieldCaret#focusLost(). OTHER CHANGES o Replaced the green Plastic question icon by the standard (blue) help icon. Question dialogs shall use a question mark in the main instruction, not a question icon. The blue question mark icon is for help messages and help windows. o Removed obsolete #isBlank implementation. o Removed code used for Java 1.4 that is now obsolete. o Updated HTML docs. CHANGES IN 2.3.1 -------------------------------------------------------- INTRODUCTION This maintenance update fixes an issue with classic Windows combo boxes in white-on-black contrast mode. BUG FIXES o The Windows classic L&f combo box arrow button paints the arrow icon always in black, ignoring the desktop color theme. CHANGES IN 2.3.0 -------------------------------------------------------- INTRODUCTION This update adds support for Windows 7 and Windows Server 2008 R2. CHANGES o Introduced LookUtils#IS_OS_WINDOWS_6_OR_LATER that replaces #IS_OS_WINDOWS_VISTA. The latter is now deprecated. o The final marker has been removed from WindowsLookAndFeel. --------------------------------------------------------------------------- JGoodies Looks Version 2.2.2 Release Notes INTRODUCTION This update fixes a minor issues on Vista with Java 5. BUG FIXES o Poor menu selection foreground on Vista with Java 5. o Fixed a potential NPE in WindowsFieldCaret#focusLost. OTHER CHANGES o Removed the ExtBasicArrowButtonHandler that is now obsolete. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.2.1 Release Notes INTRODUCTION This maintenance update fixes minor issues with read-only text. BUG FIXES o Increased the preferred width of text fields by 1 pixel to avoid scrolling non-editable content without border (static text). OTHER CHANGES o Non-editable text fields honor the global and per-component setting for selection on keyboard focus gain. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.2.0 Release Notes INTRODUCTION This maintenance update adds features useful for tweaking the text field selection on keyboard focus gain. The JGoodies Windows L&f now uses "Windows" as ID to comply with the LookAndFeel#getID specification. NEW FEATURES o The feature that selects text field text on focus gain can now be enabled or disabled globally, and it can be overridden per field. See Options#setSelectOnFocusGainEnabled(boolean) and #setSelectOnFocusGain(JTextField, Boolean). As before, the feature is enabled by default. o If the select on focus gain is enabled, the selection is from start to end by default. The selection bias can be configured as end to start using Options#INVERT_SELECTION_CLIENT_KEY. Useful if the field contains text that typically will be reentered and where the leading text is more important than the trail. o On focus lost the caret can be positioned at the start. See Options#SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY. This is useful for short fields where the lead text shall be visible after focus lost, because it is more important than the trail. BUG FIXES o The select on focus gain is applied only to editable fields. OTHER CHANGES o JGoodies WindowsLookAndFeel#getID now returns "Windows" where it returned "JGoodies Windows" before. o Updated to the Forms 1.2.1. o Minor source code improvements. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.1.4 Release Notes INTRODUCTION This maintenance update contains bug fixes, primarily for Java 6 update 1 or later on Windows Vista. BUGS FIXED #171: Menu rendering incorrect on Vista #173: NPE in PlasticLookAndFeel#getDefaultXPTheme #174: Invisible combo box items in Vista file chooser Plastic menu opaque after switching L&f. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.1.3 Release Notes INTRODUCTION This update contains minor bug fixes and a tiny enhancement. BUGS FIXED #166: NPE if PlasticXP checkbox or radio text is null #169: RTL orientation ignored for JOptionPane buttons OTHER CHANGES o Added the ability to add a null replacement for a given l&f class name. See Options#initializeDefaultReplacements --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.1.2 Release Notes INTRODUCTION This maintenance update contains a few minor improvements. BUGS FIXED #163: Formatted text field content not selected after focus gained #165: Rollover mode in JToolBar is lost after first switching L&F OTHER CHANGES #161: Plastic file chooser ignores system icons. You can enable system icons by calling UIManager.put("FileChooser.useSystemIcons", Boolean.TRUE) before installing a Plastic L&f. #162: Tree +/- invisible on dark background --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.1.1 Release Notes INTRODUCTION This maintenance update just fixes bugs in version 2.1.0. BUGS FIXED #154: Editable JComboBox size problem with border and GroupLayout #155: Exception with icon-less disabled JTabbedPane tabs #157: Plastic question & warning icons are reversed OTHER CHANGES #156: Content of JSpinner not selected after keyboard focus gain o Added missing icons to the Simple Looks Demo's demo.jar. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.1.0 Release Notes INTRODUCTION This JGoodies Looks version 2.1 fixes bugs, comes with a few improvements and adds micro layout customization. Version 2.1 is binary incompatible with previous versions. However the changes will affect only very few API users. The most visible changes are a new gray filter for icons, new Plastic icons, Vista improvements, and that text is selected after keyboard focus changes. The micro layout API allows to customize the insets, margins, and gaps used in the components. The default micro layout aims to comply with the "Microsoft Layout Specification and Guidelines". The default is used for the JGoodies Windows L&f and the Plastic L&f family. Since most native Windows applications don't comply with the Windows style guide, you may wish to change the micro layout to be closer to a given native app, such as MS Office, MS Internet Explorer, etc. From my perspective the micro layout specified in the Windows style guide is best for Windows, and it's good on other platforms. It aims to reduce visual noise by using consistent component sizes and text positions for all components that are arranged in a row. Therefore I recommend to use the default micro layout. A custom micro layout may be useful, if you design many large forms and vertical space is scarce. You can then define smaller insets to gain more space. CHANGES THAT AFFECT THE COMPATIBILITY o Removed the deprecated Options.IS_NARROW_KEY. Use Options#setUseNarrowButtons(boolean) instead. o Removed the deprecated Options.TEXT_AREA_INFO_BACKGROUND_KEY. We suggest to use a factory that vends JTextArea's with the background set to the editable background instead. o Removed the deprecated methods PlasticLookAndFeel#getMyCurrentTheme and PlasticLookAndFeel#setMyCurrentTheme. These have been replaced in the Looks 2.0 by #getPlasticTheme and #setPlasticTheme. o Key constants for setting a FontPolicy by name have been renamed to be consistent with the feature they describe, e.g. "Plastic.fontChoicePolicy" -> "Plastic.fontPolicy". This won't affect you if you use the API method xxxLookAndFeel#setFontPolicy or the key value from the Options class, for example Options.PLASTIC_FONT_POLICY_KEY BUGS FIXED #088: SplitPaneDivider ignores the opaque property of the split pane. #111: RTL menus have problems with accelerator alignment. #128: Windows XP table header border is wrong. #131: Tabbed pane content is not properly centered in WinXP L&f. #150: Vista read-only combo renderer not transparent. #152: Vista read-only combo box lacks focus dashed rect. #???: NPE in ShadowPopup#hide NEW FEATURES #087: Added a new gray filter for disabled icons in Java 5 and later. It can be enabled or disabled globally; it is on by default. The global setting can be overridden per component, see: Options.setHiResGrayFilterEnabled and the Options#HI_RES_DISABLED_ICON_CLIENT_KEY client property key. #116: Provide option to customize the component micro layout. #117: Consider removing more combo box renderer borders. Added the Options.COMBO_RENDERER_IS_BORDER_REMOVABLE hint for combo box renders that indicates whether a border can be temporarily removed when painting the current value. This is useful for custom Windows combo renderers. #151: Select text field text after focus gained by keyboard. This is done in the Windows L&f, and can be enabled for Plastic, see PlasticLookandFeel#setSelectTextOnKeyboardFocusGained. For Plastic this feature is enabled by default on Windows. OTHER CHANGES #040: Consider improving instance reuse. #048: Add 3D icons for PlasticXP's tree collapse/expand. #093: Consider making PlasticXP spinner buttons round. #132: PlasticXP checkbox/radio button without text doesn't paint focus. #133: Consider making PlasticXP toolbar button rollover border round. o Plastic uses Tango icons, see www.tango-project.org. o Plastic option pane icon size honors the software resolution. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.0.4 Release Notes INTRODUCTION This maintenance release fixes a severe regression (issue #142) that affects the JGoodies Windows L&fs in classic Windows mode on Java 1.4/Java 1.5 where a window displays a JPasswordField. It is strongly recommended to update your Looks library version. Also, the font choice in Chinese, Korean, and other non-western environments has been improved for the case where the Java env lacks the multi-language files. BUGS FIXED #141: fonttest.jar manifest classpath broken. #142: Broken classic Windows password field in 1.4 and 1.5. #143: Broken font choice in non-western envs that lack i18n files OTHER CHANGES o FontTest shows more detailed internationalization data. o Added a JUnit test for Fonts#canDisplayLocalizedText(Font, Locale). --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.0.3 Release Notes INTRODUCTION This maintenance release fixes a regression, comes with improved support for the Windows Vista Beta2, and ships the Plastic themes "Experience Royale" for XP's Royale style, and "Light Gray" for Vista's Aero style. BUGS FIXED #130: Plastic internal frames paint wrong drop shadow. #135: Fonts#getWindowsControlFont returns null on Vista Beta2. #136: NPE in DefaultPlasticOnWindowsPolicy on Vista Beta2. #137: Component height too small on Vista Beta2. #138: Add a color theme that mimics Vista's Aero default. NEW FEATURES o Added the Plastic themes "Experience Royale" and "Light Gray". o Improved the mechanism that chooses the default Plastic theme to detect Luna Normal/Home Stead/Metallic, the MS Royale skin, and Vista's Aero. "Experience Royale" is the default on XP-Royale, "Light Gray" is the default on Vista-Aero. OTHER CHANGES o Distribution ships with a precompiled Font Test jar. o Removed the Palette2 from the Looks Demo desktop tab. o Minor cleanup in the build.xml and default.properties. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.0.2 Release Notes INTRODUCTION This maintenance release fixes a regression, a bug, and improves the password field appearance in non-Windows environments. BUGS FIXED #122: Regression: Missing popup menu drop shadows. #123: Windows popup menu may lack the selection background. #127: Spinner editor insets too large since Mustang b82. OTHER CHANGES o Marked Options.TEXT_AREA_INFO_BACKGROUND_KEY as deprecated. We suggest to use a factory that vends JTextArea's with the background set to the editable background instead. You may use a text area that sets the background in #updateUI to ensure that it is refreshed on Look&Feel changes. o Combo box popup uses the combo box width as minimum, even if a popup prototype display value has been set. o The Windows and Plastic password fields now use the UIManager's echo character, share the password view, and this patch is used in Java 1.4 and Java 5 only. o The Looks Demo shows non-editable and disabled spinners. o Improved the selection background of non-editable Windows combo boxes that use a custom renderer. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.0.1 Release Notes INTRODUCTION This maintenance release fixes a bug that affects those who want to use the visual backward compatible Looks1xWindowsFontPolicy on Windows 95/98/NT/ME. It also fixes two minor bugs that affect all platforms. BUGS FIXED #107: IllegalArgumentException for degenerated popup with shadow. #118: Potentially wrong font for menu item accelerators. #120: NPE in visual backward compatiblity FontPolicy on Windows 98. OTHER CHANGES o Added toolbar tool tips and a keyboard action to the Looks Demo. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks Version 2.0 Release Notes INTRODUCTION This JGoodies Looks version 2.0 fixes bugs, comes with many improvements and uses an overhauled font lookup. The contained Windows L&f and Plastic L&fs supercede all previous version w.r.t. consistency, design precision, and support for Java 5, Java 6 and Windows Vista. Version 2.0 is binary and visually incompatible with the Looks 1.x; however most API changes are simplifications and the visual changes improve the consistency of your apps. The font lookup in the Windows L&f has been overhauled. Text component insets have been adjusted to better comply with the "Microsoft Layout Specification and Guidelines". Also, Windows Vista is now supported: bounds, insets and font baseline positions are consistent on the Vista betas. The Plastic L&f family component bounds and insets have been adjusted to the new Windows bounds and insets. The Plastic font lookup has been completely overhauled; it is great on Windows and works well on other platforms. The new font customization mechanism allows you to change the fonts per L&f, platform, locale and desktop settings. CHANGES THAT AFFECT THE BINARY COMPATIBILITY The old font options (FontSizeHints, etc) have been replaced by the new FontPolicy mechanism and predefined FontPolicies. o Replaced Options.CONTROL_FONT_KEY and MENU_FONT_KEY by: - PLASTIC_FONT_CHOICE_POLICY_KEY - PLASTIC_CONTROL_FONT_KEY - PLASTIC_MENU_FONT_KEY - WINDOWS_FONT_CHOICE_POLICY_KEY - WINDOWS_CONTROL_FONT_KEY - WINDOWS_MENU_FONT_KEY o Removed Options.EXT_WINDOWS_NAME o Removed Options.FONT_SIZE_HINTS_KEY o Removed Options#getGlobalFontSizeHints o Removed Options#setGlobalFontSizeHints o Removed PlasticLookAndFeel#getFontSizeHints o Removed PlasticLookAndFeel#setFontSizeHints o Removed WindowsLookAndFeel#getFontSizeHints o Removed WindowsLookAndFeel#setFontSizeHints o Removed FontSizeHints o Removed LookUtils#createButtonMargin(boolean) o Removed LookUtils#installNarrowMargin o Removed FontUtils o Options#initializeDefaultReplacements now private o Removed obsolete Plastic themes: SkyBluerTahoma, ExperienceBlueDefaultFont, DesertBluerDefautFont CHANGES THAT AFFECT THE VISUAL COMPATIBILITY Options#getUseNarrowButtons returns true by default. Although the narrow margins are the correct button margins, it leads to poor design if you don't ensure a reasonable minimum width for buttons with a short text, e.g. "OK". You can disable this feature using #setUseNarrowButtons(false), which was the behavior in the JGoodies Looks 1.x. Options.DEFAULT_LOOK_NAME is now PLASTICXP_NAME making PlasticXP the default L&f when chosen via the Options L&f names. PLASTICXP_NAME is also returned by Options#getCrossPlatformLookAndFeelClassName. On Windows 95/98/ME/NT/2000/2003/XP the JGoodies Windows L&f follows the "Microsoft Layout Specifications and Guidelines" even closer than the JGoodies Windows L&f version 1.3. Components that are arranged in a row have perceived bounds of 14 dialog units (dlu). Since Windows XP command buttons (in the default styles) have two transparent lines in the top and bottom, the concrete command button bounds are 2 pixels larger than for the textfield, combo, etc. If you lay out them in a row and center them vertically the perceived (aka visual) bounds will be aligned. On Windows Vista the JGoodies Windows L&f dimensions and insets are based on the "Windows Vista UX Guidelines" version 0.8. The JGoodies sizes differ slightly from the sizes recommended by these guidelines. For example the guidelines recommend to make a text field on 96dpi with normal fonts 20px tall, a combo 21px and buttons 22px (or 13dlu). The JGoodies Windows L&f uses consistent sizes, insets and font baseline positions for all components that are arranged in a row - just as recommended in all previous Windows editions, but based on 13dlu because the new default font Segoe UI is significantly taller. The default font chosen on Windows now honors the desktop font setting (Normal/Large/Extra Large) if supported by the Windows version, Windows language, and Java renderer. Microsoft recommends to use the desktop setting "font size" to get larger fonts, many applications ignore it and just scale with the software resolution (96dpi/120dpi). On 96dpi the new font doesn't differ from the font chosen by the Looks 1.x; it's Tahoma 8pt on modern Windows, and Segoe UI 9pt on Vista. On 120dpi the new font is 1px taller than the font used by the Looks 1.x. The Plastic L&f family uses Windows fonts on Windows and logical fonts on all other platforms. In the Looks 1.x most Plastic themes used the Tahoma font on all platforms. If Tahoma was absent, the logical fonts were used. VISUAL BACKWARD COMPATIBILITY We recommend to use the new default settings and it is strongly recommended to use the new font lookup on Windows. However, here's how you can get the appearance of the Looks 1.x. The configurations listed below must be performed before you install a look&feel. To get the wrong wide button margins, call: Options.setNarrowMargins(false). To use the Looks 1.x fonts in the Windows L&f use: WindowsLookAndFeel.setFontPolicy( FontPolicies.getLooks1xWindowsPolicy()); To use the Looks 1.x fonts in the Plastic L&fs use: PlasticLookAndFeel.setFontPolicy( FontPolicies.getLooks1xPlasticPolicy()); To give Plastic the new fonts on Windows and the Looks 1.x fonts on other platforms use: PlasticLookAndFeel.setFontPolicy( FontPolicies.getTransitionalPlasticPolicy()); You can customize the control font and menu font in the system properties for Windows and Plastic: java -jar -DWindows.controlFont="Tahoma-plain-11" -DWindows.menuFont="Tahoma-plain-12" -DPlastic.controlFont="Tahoma-plain-11" -DPlastic.menuFont="Verdana-bold-12" myapplication.jar If the menu font is not specified, the control font will be used for menus too. BUGS FIXED #10: Plastic looks can't display Chinese, Japanese, Korean. #50: ToolBar 3D effect ignores the orientation. #51: Windows combobox with custom render is too narrow. #60: Wrong combobox height in Java 5 and Java 6. #67: Wrong menu border in Windows XP L&f. #69: Broken menu item anti-aliasing in Java 5 or later. #70: Inconsistent bounds, insets and baselines on Windows Vista. #71: Password echo character too small on Windows Vista. #73: Windows L&f ignores the desktop control font size setting. #74: Color theme lost on Applet refresh. #79: Windows combobox too narrow. #80: Plastic combo arrow button is focusable in Java 6. #81: Wrong icon for "OptionPane.questionIcon" property. #83: Windows tabbed pane has line under selected tab in Java 5 or later if the content border is disabled. #84: Windows L&F combo margin too wide in table. #86: Windows combobox too narrow if the renderer has zero insets. #89: Plastic L&F editable combo margin too large in table. #90: Spinner does not stop the timer when loosing focus. #91: Progress invisible in Plastic Silver theme. #94: Windows default title font shall be plain not bold. #95: Display Windows toolbar drag handles. #96: Fix Windows formatted text field background. #97: Fix text area disabled/non-editable background. #98: Fix Windows disabled non-editable combo background. #100: Fix WindowsXP title color on Java 1.4.2. #101: Windows combo text phantom UI doesn't change with L&f. #102: Plastic menu doesn't restore opaque state. #103: Disabled menu items lack shadow in classic mode. #105: Menu items mnemonic display shall check for show/hide status. #108: JMenu on JPopupMenu not always drawn in selected state. #110: NPE with invalid default Plastic theme set via system props. #111: RTL menus have problems with accelerator alignment. #113: Combo popup with prototype ignores scrollbar visibility. #114: Accelerator text overlaps menu text if no-icons is set. #115: Need a fix for the Java bug 4530952. KNOWN ISSUES Plastic 3D effect broken on Mac OS X Tiger with Java 1.4 and 5. Due to a bug in the Tiger Java2D implementation, the pseudo 3D up and down effects are not rendered. Instead a plain white is painted. See also issue #92. NEW FEATURES #55: Add option to make combo popups wider than the combo. You can set a popup prototype display value that is used to determine with popup widths. o Narrow buttons can be disabled in the system properties. o Added a JPopupMenu client property for no-margin borders, see Options#NO_MARGIN_KEY. This is useful if a JPopupMenu contains a single component, for example a JScrollPane. o Added a JTextArea client property for an info background. This hint is used for non-editable areas that shall use the editable background, not the inactive background. DISTRIBUTION CHANGES o Merged the source folders 'src/common', 'src/plastic' and 'src/windows' to 'src/core'. o The sources no longer ship as a source Zip archive. They now come in the directory structure used by the CVS. This makes it easier to build the distribution using ANT. If you want to attach the library sources in an IDE, point to folder 'src/core'. OTHER CHANGES o The Windows and Plastic L&fs have been tweaked for Windows Vista. o Overhauled the Windows combobox layout and rendering. o Overhauled the Plastic combobox layout and rendering. o Improved appearance of the Looks Demo tabs on Windows. o The ANT build can now create a Maven bundle. o The demo's DemoFrame class accepts a parameter for the L&f: "Windows", "Plastic", "Plastic3D", "PlasticXP", or a full class name like: "com.sun.java.swing.plaf.windows.WindowsLookAndFeel", "javax.swing.plaf.metal.MetalLookAndFeel". --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks, Version 1.3.2 Release Notes INTRODUCTION This update fixes a couple of bugs, most noticably in the drop shadow feature. Also the source code style has been slightly improved. BUGS FIXED #43: ShadowPopupFactory doesn't respect the lightweight property. #45: NPE in ShadowPopup.hide(). #47: JavaCup.gif reported missing in Windows L&f. #50: ToolBarUI doesn't take the orientation into account. #53: ClassCastException in ShadowPopup. #56: NPE in ShadowPopupFactory on OS X 10.4. OTHER CHANGES o Set 'build.compile.source' and 'build.compile.target' to '1.4' in the default.properties; build.xml honors these settings. o Improved the style of the Java sources: + removed some tab characters, + ensured consistent modifier order, + fixed JavaDoc tags. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks, Version 1.3.1 Release Notes INTRODUCTION This update fixes bug #38; it's worth to ship a new version. All other known non-font related issues could be fixed too. BUGS FIXED o #02: Plastic combo lacks 3D effect in 3D toolbar. o #36: Plastic l&fs lack auditory cues. o #37: Extra non-western themes don't work with Looks 1.3. o #38: Options#isTabIconsEnabled broken. o #39: Poor size for null values in combo box renderer. OTHER CHANGES o Core: Added two Plastic color themes intended for non-western fonts, see DesertBluerDefaultFont and ExperienceBlueDefaultFont. These themes ship in source form, are part of the binary jar, but are not installed as default themes. You can use these themes via PlasticLookAndFeel#setMyCurrentTheme(PlasticTheme). Via PlasticLookAndFeel#installTheme(PlasticTheme) you can include them in the list of known Plastic themes. o Core: PlasticXP spinner uses consistent button widths. o Dist: Startet a JUnit test suite. o Docs: Replaced older package names with the new names. o Build: ANT build file can perform JUnit tests. --------------------------------------------------------------------------- Find below the change history for older releases. JGoodies Looks, Version 1.3 Release Notes INTRODUCTION This release fixes bugs and uses new package and class names. Java 1.5 is now supported, but some micro design improvements made in the Looks are optimized for Java 1.4.2 and Java 1.4.1. BUGS FIXED o Plastic internal frames use the outdated Java cup icon. o Inactive drop shadows still try to snapshot via the Robot. o Broken position calculation in Windows password field. o Broken custom table header in Windows XP style. o #04: Broken Windows JTabbedPane HTML word wrap. o #05: Plastic Theme and Tab Layout Policy. o #17: WindowsToolBarSeparatorUI not same in 1.4.1 and 1.4.2. o #18: Height of menu items with a custom icon. o #20: Popup drop shadow may be corrupted. o #23: Menu items not anti-aliased [in 1.5 with aa enabled]. o #24: Spinners drawn incorrectly. o #27: Plastic JTabbedPane scroll buttons unclear. o #28: Broken painting with custom combo renderer in 1.5. o #30: ShadowPopupBorder may throw a SecurityException. o #31: JToggleButton L&F not respecting icon text gap. CHANGES THAT AFFECT THE BINARY COMPATIBILITY o Package names changed from com.jgoodies.plaf to com.jgoodies.looks o ExtWindowsLookAndFeel -> WindowsLookAndFeel o All ClearLook classes have been removed from the Looks. These will show up as a LintLookAndFeel later. CHANGES THAT AFFECT THE VISUAL COMPATIBILITY o PlasticXP's password field paints a dot, not the star. KNOWN ISSUES For all issues see http://looks.dev.java.net/servlets/ProjectIssues This release still lacks an improved font management for the Plastic l&f family on non-Windows platforms. For a workaround see issue #10. OTHER CHANGES o Core: Uses more shared UI instances. o Docs: Added and fixed version tags. o Dist: Fixed implementation title and vendor in the JAR manifest. o Dist: Fixed broken package information in the JAR manifest. o Demo: Added test case for all tab placements in both layouts. o Build: Added project name tag to the ANT build file. o Build: Added overview page. jgoodies-looks-2.5.2/docs/0000755000175000017500000000000012003555452014145 5ustar tonytonyjgoodies-looks-2.5.2/docs/examples.html0000644000175000017500000001126512003555452016656 0ustar tonytony JGoodies Looks :: Examples
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Examples ::

To test drive the JGoodies Looks you can either run the JGoodies Looks Demo or one of the JGoodies example applications.

:: JGoodies Looks Demo ::

The JGoodies Looks Demo. demonstrates features and optional settings of the JGoodies Looks. You can download the demo from www.jgoodies.com/downloads.

:: JGoodies Example Applications ::

All JGoodies applications available at www.jgoodies.com/downloads make use of the JGoodies Looks library.
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/quickstart.html0000644000175000017500000001524012003555452017227 0ustar tonytony JGoodies Looks :: Quick Start
:: JGOODIES :: Looks

:: Quick Start ::

How to make your apps look better using the JGoodies Looks

The following describes how to start effectively with the JGoodies Looks. For each step we have listed the estimated migration costs.

1) Integrate the JGoodies L&Fs (< 1 day)

This is a very effective step and easy to do with about 5 lines of code. Just choose your preferred JGoodies look&feel and set it in the UIManager, see here.

As a result of this step your application will look better.

2) Use an Appropriate Icon Set (1-4 days)

Icons have a significant effect on the function and elegance of your applications. The choice of an appropriate icon set depends on many factors, among others: your platform support strategy.

If you aim to provide high-fidelity Windows support plus good support on Linux, Solaris, and Mac, I recommend to consider using the icon set from eclipse.org. This icon set won't alienate Windows users, is relatively large and portable, and quite easy to extend by developers. If you require larger icons, the icon set by Dean S. Jones may be your choice. From my perspective, the icons provided by Sun's HIG group don't work well on Windows and Mac and do conflict with many popular desktop colors.

3) Remove Obsolete Decorations :: Use Less Ink (1-5 days)

Remove obsolete and duplicate borders and separators. Check every line in your panels and ask yourself whether it adds information or blurs your content. Very often you can replace a border or separator with white space.

The JGoodies Looks contain ClearLook, an add-on that can help you find visual clutter. The clutter often stems from wrapping multiple decorated components, for example a JScrollPane in a JSplitPane. Switch on the ClearLook debug mode and look what it has marked with colored decorations. You may consider these decorations as obsolete.

As a result users can more quickly and easily comprehend your panels and find relevant information.

You're Done

If you have completed these steps your application should look significantly better. Congratulations! If you want to further improve the appearance and consistency of your applications check out the free JGoodies Forms.
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/style.css0000644000175000017500000000154312003555452016022 0ustar tonytonybody, p, td, li, h1, h2, h3 { font-family: Verdana, Arial, Helvetica, Geneva, sans-serif; } body, p, td, li, h2, h3 { font-size: 12px; } h1, h2, h3 { font-weight: bold; color:#323777; margin-bottom: 11px; } h1 { font-size:14px; } h2, h3 { margin-top: 17px; } .header { font-weight: bold; color:#323777; margin-bottom: 11px; } p { margin-top: 14px; } a { text-decoration: none; color:#323788; } a:hover { text-decoration: underline; } a.nav { text-decoration: none; color:#000000; } a.nav:hover { text-decoration: underline; } pre { font-family:Courier New, Courier, monospace; font-size:12px; } ul { list-style-type: square; margin-top: 2px; } td.header { color: #FFFFFF; background-color:#323777; } td.cell { background-color:#FFFFFF; }jgoodies-looks-2.5.2/docs/images/0000755000175000017500000000000012003555452015412 5ustar tonytonyjgoodies-looks-2.5.2/docs/images/banner.gif0000644000175000017500000000722612003555452017355 0ustar tonytonyGIF89a.uttRRR]]]jiirrrZYYnnn:::EDDFFFIII111VUU}||cbbzzzgff$$$pppwww...NNNxxxeddlllӽƿƺù~~~<<5Y%狟S Yl15^u)oʝx˷/߸I0hZl d8XJSlag3kpפMz4ҨS5 >^nZ۲ix$a!U~z{SżŌ{&vq{O<ӫ_Ͼ= xy=.gzG)]l4|~ c݃@Dgf z@ؠ (bBh(Π %W|>5qkV^w e(ċΘ` _ P*@ɽ֠.v9)f*ihĚAfg"i52$cHdg[}(ۅF h ,l5CQVʋaZ >hC9èI$1ꩨJjI*ꬴ:+j+ڦB9n#{bba]Xd6p*<4  @nIVL!{ B  C@cQ@^^ /@E + `t4[G Bd@ & ߰ ؝B8 2ėn嵭t@P 8+Si@ ^h h@S@3Q A2TasFTt1b2 Ѕ# p.s]C1 b5db'lbΠ#a-h 0a-Mm'^JQ Pj):-` P?.o4oU Ij\w>xFS FPok]hXa0 Cz2(A:cf G^><v6ϼ!l%Gl;.gVZ_ā`{' {^j}@Sz qghjYk+9< c߾& rP (9q2 VH4|V[.RCyy8>y wC-3pXB PH C 0P~6vz#~Uaf4i qaC3rPF@8hUI5xW[Pp"*W}wF324#!0!@$i;#70 pGk?Ezc7J2wC4w5kdADvsQ-N_ *3+py4H A/؉3~ 31 H'߲d@, -(;C/EBEmI02y@~4)5sw65 a%͑mZrW*po*RX*+G j3 "(%\*kb+=+򉈤+C#.JsXm!(DyB"%2"2!ġ!#[%%9.4R<ƃC4Ys."rіnpٖ=B?b#OPQ5aѓ"-Ba8r9V8)p9Y$Dɖa-cC$IB%EatQyvp95 ɛtɛћqqYyDGQy)Ay؁ݹٞ/91y(΀ٟ*QqY:  z! `ڡ ":$Z&z(*,4;jgoodies-looks-2.5.2/docs/images/netbeans-plastic.jpg0000644000175000017500000060023512003555452021356 0ustar tonytonyJFIFHHExifMM*bj(1r2iHHAdobe Photoshop 7.02003:06:22 15:04:02*b(& HHJFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?^ZNjXa/;\=i~[Hay#%*n`X}+Y1\Mj&98>As`Nsti%6ݵUc 64/ov>}u/-67=4gZl~wz`Y~56n> 0``u6 eDoi;\,]og?1]U ~ܽ;5eDAvC Xm^jbcaϗ̠qvS8I Dy .mWM'ԬkMiť-kvc_H ``'Wq_8Ge[~e4Zkps]Xݯ߶W*3?Un7n~OtTp>m69;6ܻB@,!ո~l䦘65V/jo99yG͞9Euwn ПWߤݾ!.ʰڱW{/bzq]۵7q8s(I{hߢ?G趯mKUՋ3Yu>1þ\?;w6RΦHA.sv7EXKKXۺv/ a܃[/uW0շuSwPȎ]eKq^.6K;?G1u* LCIiEKGpSHv1}-GAN6UMFR ÷V6b Rv ?Vsc,!$XkfDle {'' vc; n{dc qq%#Ske#aw5jچxr[E)-X7XZ@eNbZL~&cq/ϙmD9riާBK}=1k}l߻EQ&֏t~SIT;X LvnUumM3<Sb{}EVh6ӯ>g_o\Ho=yO3;1PmXZ[qhssOj31R/MQu>lIᮃЪ[ũճ׻>]]7r )WҰ5ٮc = ^ֱk@@NAƤu;0eVZ6Y|X[ ^m۸F_џC\[el2Uk}soѵ[UM ٵqJZѶ즐O]mIME›*xd;imwOoͮƴ56ɂ~>X);R-k=LC}z3b#grq6EaSm\4 EJ4n혂=?OjasˇHu*:vݰG]C LoQo "w~ kNVN:î*W-˃b̝}oKAn($5?Ro2 $8ƥpg??(1m pk\?9x\J? oQVȤQX.O߁B’{)} 6nխ1Qk_y>I޳=eWXs[ս6#wOh.kq]G)uwcا4(p r;}%(yEYFFjti;}ci}f5CE2CxB=2ȫi/q 7As`Nsti%6ݵUc 64/ov>}u/-67=4gZl~wz`Y~56n> 0``u6 eDoi;\,]og?1]U ~ܽ;5eDAvC Xm^jbcaϗ̠qvS8I Dy .mWM'ԬkMiť-kvc_H ``'Wq_8Ge[~e4Zkps]Xݯ߶W*3?Un7n~OtTp>m69;6ܻB@,!ո~l䦘65V/jo99yG͞9Euwn ПWߤݾ!.ʰڱW{/bzq]۵7q8s(I{hߢ?G趯mKUՋ3Yu>1þ\?;w6RΦHA.sv7EXKKXۺv/ a܃[/uW0շuSwPȎ]eKq^.6K;?G1u* LCIiEKGpSHv1}-GAN6UMFR ÷V6b Rv ?Vsc,!$XkfDle {'' vc; n{dc qq%#Ske#aw5jچxr[E)-X7XZ@eNbZL~&cq/ϙmD9riާBK}=1k}l߻EQ&֏t~SIT;X LvnUumM3<Sb{}EVh6ӯ>g_o\Ho=yO3;1PmXZ[qhssOj31R/MQu>lIᮃЪ[ũճ׻>]]7r )WҰ5ٮc = ^ֱk@@NAƤu;0eVZ6Y|X[ ^m۸F_џC\[el2Uk}soѵ[UM ٵqJZѶ즐O]mIME›*xd;imwOoͮƴ56ɂ~>X);R-k=LC}z3b#grq6EaSm\4 EJ4n혂=?OjasˇHu*:vݰG]C LoQo "w~ kNVN:î*W-˃b̝}oKAn($5?Ro2 $8ƥpg??(1m pk\?9x\J? oQVȤQX.O߁B’{)} 6nխ1Qk_y>I޳=eWXs[ս6#wOh.kq]G)uwcا4(p r;}%(yEYFFjti;}ci}f5CE2CxB=2ȫi/q 7 adobe:docid:photoshop:bf1cd77c-a4fc-11d7-a092-bdc7d824dd88 Adobed         b*  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?^bv*UثWb]v*UثWb]v*UثWb]v*UثWb]v*U_^viw+2 4eX vVK5:LUV3Vߞ?D_Nmpw?\,|]+o_ڟ"/R-""qA?_,|S/,~gy̺M=1TUV Q?b% eq?<}R^ݜv*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]p-3^2C)[V#,VX&V%ynhqR{8yZ[f/F!E~+v+,c+qp7u4U*?5K}u$e}$dg(toJyfIeg{6&+=-mHmVOP\{ ^%iYx(Kdf%~f9͎])mPҖhMY"ĒTno+6c|^ɞg݌åybKT=,_Kx {y6I°zrHsB;ڷ?}tmy..SOZ/_1^V'%E.4tff[Nۃ< *;FD a5)?byV %nRW%..q<\’G$U7X~_kznºݒ+;.I+J O$ *Gyeiq^qMNGOm D#O+'咋~Wowgf4ϩwsqo5&8=p Y󑾫Wu󷘴 -MODeUt .2\8"q$C6<߮O'-f/R@Ioq G?H,^5G"FHo_7R@Ԭy$Mb=>Yas۬kp) JޯɈ[zEXwO˷~k څpYKDΉ-ЋGbAŒi3ښM-R-?vҵ[}mJi: f7&{{RMq=M# U{KRW/gix&W=f-Bkn~fK^jֆ'7RvzV S|6o,~5{;wtIgH8zo;|?]!Nt-Zf:Lh:lݻjzs53j|o4 '% *O6o+ygo,-U}KE~!F%>ZTϾontOZjPΛo{ͩZuŕbx` FkisyHPPK'g|zigEјo$0,Iui:)0JȰ+?Ny?Nߪ#q~_=.辟x}WDd!wg4*]_KK7XеM-EޜDj{w=NwMiz\Էt <3j_oe?EmjV[8_՞d_[!,"]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*µO[L泪]F;F3-\0)Vȫ& J- V@8ou47ZjWx(exW/V(-|B9~mm։a]Y\/noYiE7mkQoj/hZI"y8}eoJْv)}SQM?]Ļ%>q=V}[˄Ҡ;JF^rqxӍHT<өkSZƣ4:i#GoiJ+$nYɕfeqHmV^bc_,+CiD>FY"Е"?7O|LbHK:kݭB[{uVE #BZE-4Ȭ2oNeQm_Sp *NHӼähZv/)ӡcb"pi$tt>f=.mƝj.ylc!얹xkfiX-QO=7\˭>q,ɨ~$N@񄺴 }Od?R 階o3iij}jo-§ބtDnQ/յL42?Xo-o=HkuHe>C֗o~Ol Pt˻.0a7Q}bVC?Z-y|K4/93Q۔kmk,WL~-yM̶kK _M|J͍J/?+擪F*[aeGooC,Rq+ q[2J-2 skms5xTCF5~(EUPh:ڼuŲ'62Iy'­oڤ_O@}WJ}:s\^O=?K3nfHk KxOZY%IY&'~,:ŷ.4Yy/$1~БnyNj^ HWКK)A/7 ֗^J|G+L\YH9ұ2}OG~|d8R2M?<"1'_:_gOΧ?q_Vdc}U}VXrOW"*z,pO5OWxURMQ^`-FMNW7)$vݙUqV'u7MMw,}edv]F$yi(\~> [_6]oYC5_IJC'Ґ,sV9I?x T7|)iXhp..(pI.d#ݙwl$ڧثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbXa}Mqg,FV0X]Ƒ?2fVickhdE%(9qRzrHHbwCƳjzWgћ[dPϪMcO~) G;yzmfY[-ەWPߌt1kk2 [w{joY!*m-by]zXen?Ɉ֐z[f<}yg,@n.!Wxc^ *.HL}j?\޴U⤞@u.cf+!4㲻?q]8o?vWrGN;+[#ܭӎVCiew+!4㲻?q]8o?vWrGN;+[#ܭӎVCieB1mfHeBM[& @Q\Ӄew+!4㲻?q]8o?vWrGN;+[#ܭӎVCiew+!4㲻?q]8o?vWrGN;+[#ܭӎVCieH򗖼;BZR[ݔzV Ҁ<&QkɎ2WIwVdLy?k16?'ʤ2?R~]ՙ?lS|I| ͏|^A9҄S&WWSUea%U8)e*aF?$%xuV~n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U n h7{U idw 3Yܼs$R}(/+O+X[TSJ$mS^ Wl`beF$BK yMg\<;Z0iڕޟ?Z-~R/x-|ŤifI 8,R* cVUĐLqpتR4SqtRQE9;Ҭﳄ U-\h[GR&yn,(u`lePS kri崙.o?TvG.Q#D#E"$g~,"$|n5ԯAIgjV Mp*~eӴNYA7ۛ"//Q*JzfUfIr{yG ZTP8^y/>-Q!AM0*R-K`]Z~bSңv Ӵ;W7+I{{"*?Sy!_zEx0-w7Os)m㙗 &2m<:^i*;dh"KYe.d$A*tKG":2%Msɨzƪ4 .}ZsKFi귐K>Z(hhӻ WLe*u=V m4;m[[\ `Q4ʧZ^`+}&PK-]e.lPӛUj_;ym`5+AyMkpo!Z{{n\~oǔǙ56FӴn$4Ŵ4ZoL ӪLDp^u~MfWm ?%jCzmO2$C \imq~*\~v4ɢI~I hY}m.i}kchߤ-7^z3̫ >][jcCc2][Xpdk{ZiRv5T[=_RSO7D׶Ɋ7o5 + Vk}+NB죞T u46vZ̏HN?3n"]m-./F{]LV}^{ԭfw[i8AR?oU}#H(-%{oZ"^H֓j|u(UWStJlկ.fCd,xIgK^ioR7+]XE?Z򿗬n/^E-SZ&8֏M5{~fYUM?1azK;P2Zo-gAM&qu;Gn5CS[=}o]A*WE,ϟ)s'TC%틨,ǚ?y~BXКA)8 =&dhVϗ_@bw ~v]TE%ܑNKq"\xxY5%^׬%HK Hl$7Py ;d{ZH즍b:^5ch~1r`MΟm&yW\\WQ;9Y^Mf%xwWh9(cn-rFh(il%oy)WORXS?"p#r~/r^oy-v=r|?_M~zoᘰC&+67D%O2*Q㛘5A\ =3(dhnK4]CNEjeg'qmDŭɻqknkHąAd9/?GO$f;&sHW6 ~~[fA,f: d76B&K+soo1BĘ l_Oۏ,nR-K`]ַmV09ZӒHՄo-z,ФnaV%Bo1S6yeh[ĪӡHe^NsWU;4mN[8fn'q`Ìɺ\$^K7͊~]yVhHf&ά,g^#]yyrS3K-/F'tY{ڬXsK#+ˊqOt]V mÌ7O /xomx|?i*Ƨ젒+Oŭ2}V1C=YWq*,\iZtMZM]|$ϬuE;67D/f~|'/JUͲuקўTԦ?#Ɵi*zr/|}YES 'ɾ]nqf3M5\۝yNYVѹ۴j uWHY[/]ơsI QG[UTy bfX{u7r=wp"27I4V0[³p` }-2Kvoo-G漸H촩{c36&(gCaEDUzeVmỎSiOgQIi։ih"M;1iiYi6zZ]cb2:[j*eTz<+<-ɍE̔ŹwrG!E2\P:Ɖo#I M(Z)x7x9$7ub *K*e?;NlbCk<Ƭܳ$$,һ+͐&ҥM-ĭǒk,(@~b?7Ⱦ^m}HU-)%^6wN)ŏ/R,hךZrHW4HH-%%'rJGTW̑KIEPzc5| Qj4Mtk[n᥁đ%?+2!yKI.WA e~T屦 +IERW˺N43ޤ[t( F 3#:m,%՚c*R/_ɨio쐛f[賬Ux#2QIA)^'V "$sMw'%O!Ja$B*L}(RzI%QXn)0v_v.ɉb ]LXugo?%-Ғ-+ i ~/OiMNL'xK[y<(K3ۊm+bO,H.4XMC6,$ku/$N&Eh_lUjUVqgfg`hIeFX5yf(u\U)jzms]wsؽKX #}De8⬃v*UثWb]v*UثWb]BҿJSWޕ}OK=N<98]yi4qJU."#QwhT~#qWk~a4T5;M*I)q{S[wI>Ĩ0JDΟ\b[O:y^SM#5XC ](6pkl}a?/L5M[J,%5[48חR06/'eUM]Zyg4w61xdtu%YO%eXA7}W O'ydI$ՃH3D $ͣ~Fe䍒[f?4O"ƽnpI?-VnG$,kܶYOȱrۿf?4O"ƽnpI?-VnG$,kܶTt$۝x [-VnG$,kܶYOȱrЅ ;\,O Rj 0ƽʻVnG$,kܶYOȱrۿf?4O"ƽnpI?-#N!5HuMV 5hH]kܶ>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{~\: D?+h3-ų\חÖC u]' odO1Zj\^#k}H9'uHuHӁa!}?#Z$_>P<ރq-p|liS@a3O*۔l'>MH*ϥŎ\Pܟ11'gq.owc[ĬrI^Cz;v&kEXy='g5NmcEԵ/)wkv| WPkxRQk5iW1sI.#z],b%[I-RHm8+wxR7XT~Ma-u-l] tSu٬W>IeIdwEYߙ-.d-S7IkMӸ_R\ByQ"Ke!U*5ym#J4=E٥+˭1XcIY [Qv~ʶX|?>gCYws:>qI6r (Izh}KᮥVah>`}r\wX.1Ǫ^ݼK{K]FY_W8y zj]KQmJKH,VLH/^_?V~*]v*UثWb]v*U/9T+>.}?_XG_Y*[1h\炙ѵMZJquj 5޼ky\JqUF^bߕ|d뚮XDz3hcmk4]M-bImb^{~J:A{yR/3k:4-h-t]UI=E"k>8/ޭb'?,|Ɖ>cwzcT?-cZ,Z6pE*o| .K~}џ[|7!ۄz}bzR[Pum.M|C]?ϨCWK,QDZ2bf9/n}r㌷?\?iZΗpQ!cqV}> H >esHcof{y35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽy35WͿqr}om C{ofkܮ['7^w<p+d8׹]>O6o!ƽ}/\هhΗMyoV:޷onOA7V?{~`jku05ޡ ڌ,K֝,Zg#*༩5.R;G]!Iu"ezu]vmw-*#+[MpjNAB6;/Ǣ2kbKZxd!]K Xw3ǭ NMmOMbib=xTzBiއS@> x*zŸZ??NMI٬Ay;H51Igl=cOe8M4k)nݥ}_MЁ __ʯHO)7Yn<,MqIVV2%vA=z V5bkq(5R(|^Kwk-8I!(ncEm_F+4MɱL5_.m#jWVzd Bm4βC$i9~/TS*j6>,SAf$#czBeFFTem]?$7GwuZWa>wOė}^[놀]WTEϒt[VkDxڒܤ(VMÁIf6W}f+khԎ~ڴ\/Y%YMzzo'[M\t:=}pQϥ$}cҗTxd'mTgsoYzfa%9/ğXXG;3O4ijۤrHuڸ*sw6{6A7DRdDH*ym#78=&#.uӤӴ]BT)Ͷ\K,w3=Zg,r[?[<$T?/=R[Yn'[XG3j6pUd+eGOϒt[VkDxڒܤ(VMÁIaj+CSo>wyiG?ZgԊO_[×D N|HdUثWb]v*UثUZ۬&%ev*[Ѵ?Ymw=ݎn&y JD=fdzQTms inߙMvlugH绐(m|$yeX2uGi@tPXKv)oytirD>yeKeYqMib=Ua*4Z&-Dw33=n󭲨ms̚kkzz\I%+ݪp1ӚYf֊+URwfIӯEM^NnȺDYx .)㹹g_VUU-coUuI] WfK[6k)I,C]oCRBZePltmSM]~|4jUCs>ʑ+d`/EY-reQmlt/ͪ~L.=5-XeI,?dHUE6i]zkd XŚCmwa8/գGMto?jWLNZ&w pc݆yH ë)o$JZk)|D'k/'Z緃G7AՖVNe ̪L~`v:hLݲfM4iq:<^eSo7~f^TT`&׬Z6>?Gޛj 4qOgܪ8CY-JaCg7YZQYi1qTS[ϔ ]E><{7\-\p-,aΟn7 Ud}i'tM7:Zjb&n̳]E%6s'sVN-$*_sh>f;[u^ItKy֛<^f>;5$[/'k_ޞ%IE ߽>ej3˦BOYZo'UEQ}7^P*1Wb]v*U_ ʲ2 R]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb_ZmOcm,$,0J~8&IrT~?]18?4- x$feE,v:# +pF^4 (鞃%ڙ4+{:ȅ[d8}QA~Y&<^I~Y&_/$\x~Z%刹W-I Hv8x?RL?Sx" Zaklji)զ)x Zaklji)զ)x Zaklji)զ)x)y\DЍ21n%GJfcĴ/7׏ӿRL?Sx-5w2HC$R>oZ[u2CId/ckH?EտGOBdi2H_g~KH}/Mu2CK˃t?7Gmzn멒^\h8ۧƟ%tv\!惍]}|i}WGmzn멒^\h8ۧƟ%tv\!惍]}|i}WGmzn멒^\h8ۧƟ%tv\!惍]}|i}WGmzn멒^\h8ۧƟ%tv\!惍]}|i}WGmzn멒^\h8ۧƟ%tv\!惍]}|i}WGmzn멒^\h8ۧƟ%U~ً%0`]P9Gqaɉd4;Rm.chn-P 2,V>[[;S+ȓ$ڜumq-hk$>2<2T%j{I0=kegyKyO#5N-̿\*[y7˶!]MMqpֱO0a,Y }I}[`i={r7'vYK˯vZOӤ5%%{)dFfz\=iy}ue$jqh7_USz̰Z~mq:K0(q7?.t/0h͗^YՒONKm#4Wdo⪱~\y=UDRj $2u+BG o=$h3[&bdg\^U@],$%/vf8n8\/7W|WUK;uq%^G=Ëk>VСkZ!y}K|^nz/*u(͗zƛԞx.^yTk!8LKKVB/FO:\|*U5O˿,éjwkz{wqCvR;)=eY%k(֖iS՚LUڏ叔5+c{w),3u^DY}(!YeHx$\y>n亚[;˛1%젖hlKZXe,+ۼ^uz]ZƪR-n&ǔ64xs9ɹ_e8?%jV\ZO7_Yk{{i[6Dn"3\ܺC??XaHW\U0~W9紆-/$fQ vΎYdIZ)9C>j)Tì]}[յ WP=)M/[~Ks*DGͦic}ogKyn1;A5ǥo})Id縒eY^imc ]:rfsV,~98ÊWb]v*U~dijƗ Zor}>)xGXH~}J`EQVgUu$ ?ׇ'y+<՝#\.2?CO/]*YU)R//MKq+NH~O?K _R/?<_xGĸ5/O+O̟7ťu'ml *ФkΡZǮ=UxozSec!6ξvX. Ɠ^ZX-ihfoSҳ[!KRZkηWZ.o 1'si-!,ZO?nmSwηZ7GӴ>Xt}gQ\G2)#Ωǂm4quC}oVM*7ක=;Q'lx_^._NOm73jv|%5$ZRF71kMq U^w;GKcJk0ori IV\?W{;+m ^[ICz'^iŭέ$1\#,7M47O7 \S !2_PR'W&ۭNėެ u 29leLֽx ytdSj2ڛ/Mh&ϩ+4Ǥ]y^`KYn._]կKz22i„oG<<(ޟ,z+9y\s<n? bz:QCxf=/'?{ϧi~4~{_>u] ާ_ܜ}~>b#ƟW/*f=/'?{ϧi~4~WC7~9?w'_ؿ~};HʺOK8}G_?o_Uz_NO~/ߟN:iroSr~N>C~vO+t3z}_ӓrqӴ~\|{_>u] ާ_ܜ}~>b#ƟW/*f=/'?{ϧi~4~WC7~9?w'_ؿ~};HʺOK8}G_?o_Uz_NO~/ߟN:iroSr~N>C~vO+t3z}_ӓrqӴ~\|׵9y}K==pk8W"U_&%/^>ˋ{g$Bi[#A4]zh=MONr +/bc~I|jip_[ˬGfkVpm.8bX$r4?m2~%._״FuG-:35ܱC5$`Nc$}'Ӕ ]wVD$XeE7@J,oeז*g]Yœ3 6]y#ŕ[EbR״$'Ytl/R(f!CTIW03KTv*id-*[.sm;MַG5!RVY'xwS\U/״)nl3[7)CHM']$n4>*UثWb]v*UثWb]v*U/kMgOnTcNrCN 2~xTNsWRU.[,]|i[!lcj[Wzڻ޶6wM%kZ]: R y2J #,t)CmFm;Tsg4s$1Bі^AY[X-;ir2搙`TFңeQi)HU9±9d__<$=iK;dbKNS4mf#x4L˜MNJ.;=d7B7 T*%6uk1ImF'Ѣo,N#In&,?GqM1 -CY> u$.+$NmxVOZ+ic1tda(xfYTmfsu(󦑢C6oNw]jlв.mnpbdzW "lXss{+C`ziރ'6~ǖbl5igc6,ie9'IHʵ@nXqƧ.gr">]r7ծWdx}@4!M.ĞR%ÔdKQ N2.Xu0='G.m,K-hYqffw [N|o[]Y*GMtkpV ҥ22ilZ_eHpe DulAjmgOp_j +BQnysu^ťJ廋ht{Ia{c!{$+fX#[ʹ.V "b=[Wt{5;In$2ȱ)r>suF؀4~qS{ ;KEy\&)ѱyG'UgHF^wxa\Go3á .5 ZX y#2_E$<4wN\Gu>}N\@pIC^mk%ֵ IqE0A<\4C,rI0c$"{,K$;v*y[}cKҬf[M)EG%w^&%Ҭlyp僌]T7c91&q)CqKp>h&5͵r,Ũ@H5sB %8AdU\k?́u=>%o-ķ hP?[З<_[F2Cd%9_?t%?/釧uJR[k˝>{8aJcSdnD3opiڒRdث_8ܛ 8IV&nE#XE82e5S_,C6GGŲ]rpQӐ(H;`bM?XEm:d)4i^+)ywr>l(ɾrUխşư[Hkin"d:|K&FQ0+U- _46Cȑ˂!RRM~Y^[_Y[_ZkwwG(@4#; \ KUl-n]v*Uت]?GOM6!KӋG:#>\ӭ,.+mDjrnW%bZy0yz.-RE,nl4DAPn_0jj">qlhI ֓UxowvxJڕƳUsosmqog5> ,7zb"J\M,Y%n͍ʨlⷳK:kݭ mYdr #B-}^̚u-_=I%H2-P[s [\hJ$UY4hn7A%rl> [ ZfUC:e0PmbЪ\4fBDehY2ƊSO!&H;`*%UaYXTw4V×^yPGk-41Npi~yx|8VWݐ~#u]+3++'ġ~N? "%mM|'>\ZWDq~|MFۓ~V}]O.-q+"z|xn}8wC|&~Em+|>ϗ=><7>__}QߕWSˋ\qyȞN/P/ߨ[ryŮ8xOO ϧ(ooh|'>\ZWDq~|MFۓ~V}]O.-q+"z|xn}8wC|&~Em+|>ϗ=><7>__}QߕWSˋ\qyȞN/P/ߨ[ryŮ8xOO ϧ(oohbT_QM!RJ-8+C bEbtD$K^EĿŕaWg ;l;F\|[Z_QgcEFM;N!Em$kkk,*/9g[x9Q,z<1EqOW8c20O/|1IOA̱2i]YZZ%M Ӽ1*'IW ߊ6cbySΚvc{a{'F:\W}f',P0OOt?Z9UU~Uΐ\+- 5?L@FŪzRot`U)n1T?*oҵxM?i/nlSF3"G^LjVՁZƪ?ڡP}o&Zf,#uFڸm:~kT񮥊Xs=ӺM4O14̱iͣ//֤eӮHEU;?Ge\iv8Z=6l=~[MI#"AiJjiw@\"*yT10b U_5]NO?GX7%~SU? ʳ?0IO?t?䭾UwǎT}lx]㊻cwǎ*ﭏU[8z' nT9ݕ׌dGGF[N2!HEXiFiEYiH#UjI$31,GfwfvS-;iq5 K.$n4KXE B~P*8`M,Y ԯҴ=#H["cq40/̥2Ƽ*~R7٭BYjeޙc peREYy+UnX7}[[h#deO0,"]-#KOSKOfqsRBw2\p E-N4舂9\+ND98ͥc/#sdpy,5_o濺{tKYS2NHQc9zQpMGp4 nl+k$CxT0+(D،ARdO2Χgg˔8[14l#t]{r-\nzu =Ŵ@zDZ7Dyc>rE_(@,(dUy^:]ȶ~-,w?=[E u? y1"M[CϦ$1ّ "Q .$M6UyF 1ٰ2XYkΛq%Z}j7G[riI!D%HOZT^O%0ѵ Jyoi.n~OrF{1h4S]k׆5F9i//kxX#PPsVydm';3f+vz4x<./?>gÇM?֜drzT{ievZDD!7ԴׯŦ.-](mn/Mʒ>J [cSн|{Xܼ;HI"Fײsx|HaA.]K(0ɦ)`qsGOUW}OwOkXX|Kqi[2'IE\U. fk.tC)/.`E+,/-"CB)nyRi1z>.nJ$Q)agX |Q?M3O֝VXվ䫛kgZIu Cd,Lpp`%XVea%dLU54=fKWԒ(,Kx԰R87y*Ê;}q 5!}UT.yS{顎{Wj I'{i֍*hN_eNIb֝V]ӿثZw[wkN_Bb i_lU;}q 5!}UW/*֝V]ӿثZw[wkN_Bb i_lU;}q 5!}UW/*֝V]ӿثZw[wkN_Bb i_lU;}q 5!}UW/*֝V]ӿتI̚Pgd4LCf׎*_RkWW2b\^-|܌# ߎM*e (j^I )͋ ٙ>bUثWb]v*UثWb]v*UثWb]v*UثWb ײ/Z[ou(#9*2RۢR($~M'MXm隋Y%-h7R5whḑ.d`|Nj)c5 y"GާI?n,x jS 6 s7!p{nM/[BZ~s*m2(;zzyqreY!\q$ ygK{k=w}N>rJzR> Yn~͈8˃@*^n~59MSOrwĖxf^#<QymKP򶛦˨j;H+f6·0󷬍2'?)g|I_ͦ 'K׮ѿw6I"=oQ) ~n|?w+n|V]鷑V?f[f+?? 5=3BҵWU'V?4g]۞Q+>/_ u[%y 2Oojѫ5mgc,i.O>,|2^/(+l_V.ooZeޟ@u#_Mbxa-n^ ?;ֵ_SկVl|2ҟ\Fx_oW~Xem5^/(+n^/(+n^/(+n^/(+jWQMiw닋[hVxGV*x>[[omsjyZfKv+#Oe>c"mg20xem޶VKeeem޶VKeeem޶VKeeem޶VKeeem޶VKeeemּt[^"mqh|Lg18^VKeeems]k(5[?).y#,Vk?d_QVk?d_QV t VpKl4xfcV^/(+kGtziǧ=Ҳٟ`VY/?ecᕷzY/?ecᕷzY/?ecᕷzY/?ecᕷzY/?ecᕷzY/?ecᕷzY/?ecᕷzY/?ecᕷzY/?ecᕶ[_/K1c8ٺHѯH2O w%FYwSk[_/K1c8DEn(tk< S퇂]k}mg20xem޶VKeeemF}GQH#FVs#6ݾ,[\oHppygRyN[Im:}d{wcUFZʟk[Ӌ/:z甼gi 7w>[!K$骈;1⪿k#Iqy5z5B-[fsVo˗7CWIyoW|Om_Y[Q 6FU})/Gn2E? e/C^UucxDrwz6?.'+ߪ}crq/ ԓcgo5 e$R:7eg x\XzV-֎_ևֶLU6<מqEiޢ|ש]]%]VF'Q;m-OohO0jU7/2s:{wtCzM+{$}c- [U_9֫X&k6ws_k {C,z1G`KV+-Ə [!OY D]%ŝRkol񪋴'!״i ju8#OYkPOZR,qZ@Wlz*UثWb]v*UثWb]v*UثWb]J)O]⯜?8n]_xffg9XfOJfuYGFK3`DW?}Hy-]ߙREk< %ԓL{Ni -BTWuY[Vy.>wzw Sk,%! 3%Y".i}HOF\/*'DbOֿL\Xiڝʹ4ZujAk"ɥK%@+O[Q2..DӄOYʰK ޕ#B?pU$ҿ75-B8}2=6vifs¼=.6xO}UT:Ky}/_2kQço<1iwG˾auɒt'kk.,.`qa"4wϿVY\vԿ3ڞzVZnwuŷ \zoiaoM76nJ4rp/_+v 5ޝc5LKa\ۿn"8IkYTW#lM./1Gg=muwyw:"X5"M,0%vU*Qh sϩSX2-GlYs6yR4IUڇUŬrKDw+O_^f KSC]K~v:[*].)s/&6fERY?w|}e9y"UثWb]v*UثWb]v*UثoG\ͽZ(dXDIC4shxTJK m6{{d{:CjQZ]y^D==O5J>Lj&y%ෞV;i-o/ةm-dVk_G&ǀMu [wHaΙf^1[B[l}P'/c\x ~KDZj/,& \\EKu Qȱ[IQm+O~NYGSDW~ҕ~S~Yihu֟%XZgv-=D^wVٿQ8.JC\<梢?),-xm.Lj:kL%?Xnܧ)ۛtN) A#C^~}_O-EySz-Ě5u; uu2J ynWRҼ<חdn[Xcb@e6gfZ[Fœ#4QTUUW\OILki溼j\4;]ʶIw=ӏǀR hPh%sZ{;2Z'xZGj> ycQtzWV~*甫r1q?^ ~X[[k'XFmJMl-춿 Y+Z r}.A 7/Gl_\Gsa9;eG@$EWOˌy)\wO? 'A9~rȺXxO 6|\ڑ[?NJC4SDB$R(xBYXT2bf*=Yo\mztdÚry.*0ŧ^eҵ z6vLq7gn(AWdݭחGmimMqq38wwbQTrfo4O0hzi;@/2 \U/Vk:}is_O HbX/Iy⬃v*UثU+K[Xo,5 #)䬿kU]d,"mpOuok:/EbWwvv^^Mm58@Y݈UEQə*a.q$ x -ȎN8r^NJWbR TY5]>_^PҴ۫9sg6]y#ŕ[I<7:whv Xw[$tE7jǏY*4mN[8fn'q`Ìɺ\$^K7͊GZxkp-omZYEh$xӳKqs/3O-Z^+]d[`Y53XsIf^OqƨU叔 c}6MyսoKлm8&NQ늹?+-~ <2G~Lby.ѿ_ Ä򫪚X4VSYnM)\I$dd6qK,ԒhIdߜU_hk:fo,h{RLkw4zpNyy)8b*gOn.45{y-oT rM+%pWlU5ռZky>4v..-m  I:rH7Vx[*<3Zd:Fu&Iվ Q ɞiVYķr'(8VK?<Ϋ }ue$jqh7_USz̰Z~mq:K0(q7%]v*UثWb]v*UثWb]cVu'X3䯗5;v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UتS^) eĻAǛ"ogjRyE7"ui5S2h*g?L qsGQUO? 'A9B54Oz ͧOlx!A4fjF3_8YO °9asI~l;mRK]>X$jPrG,aVsm\Y2NM'}V,rOnȫ򽷞̺GIyr#^Go[M%5S42VS44ߔJ//Κ:k~5j+4MgKG$+EҿZ8wUե%έa{&M6O6u\ ;XY5巣u;oXKeXMΣyj~ZӵXn=~vm#[0M[=%[ni?&ѪK>fA\jbKfԚ ݖs9%v[onk sL4vM.%:dTzL- .}X,xU%޵wwKm6X}p[ů^!I.^ 8g̖"9⪶Yu bOռ%M.g-lnT{F5oJIwٹ=>̞\ֵ=>=s[8j?]sI*^ju8Tҽ U7k^mG֚;]BRIj2Me0-8ttK_4k-zƞcS;]Ed\zzUw+#O_*2yX?M>rʖZl5F!3C-2}Z,xpȍ]п1u{55QN,h.7%m=ikzتhw^MH|q"SP{9n:*,naa+ZP}VA}Z9O277gCQO 7 ZK>^ MkrkZ3~\j7Sj&!4:_.kg*ZFCuWQKkKm)Kج6pk7QŨOM6blufi/"gּhN.-^~^9F;ZIȡ :R ^zm͋A| F jDMMV3,.Lly̖RDjMFe Ii'%F!lӢKlHB}.Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅Bjj6 ml-z8Z.'}q]OoaheEE,G܂?eYa$>e7Կv8(,ON.tH?O? 'A9/+ۿ >5^N^i}hqn7G|#D+Wv*UثWb]v*UتTt^]?UPguM `9#quVZ6vpmimoo 8DDPQTqU_KX$X!)n]:(V@y>M}UqWb]Mikt2AhWLH y4{Ń/lJu;6A\UݫCY6[cl$oYrkSъ;X`Ua~`\h{y5$זXAtl/?Gm,=w?1*klރq%֟}wX[۹te vnY*@վ4/3yU4t6WvYѧfQ3Q*M{;7kUbS#wԖӽi6V-b]am[Zv`s]=7$+o$Q*޳?*~qh5iZܗ[B5ťΔ 2ۣ2%yĭ83iŮ}r 7E7f[.#JV&}mM;kYTΩe]Kgc[mhS5^N^i}hqndwZckZ4{L`y[ӳnw1Wkec-? dN?5P?>q B/К.%b~qCz)Ey1mbϣI^yAw cOYLyNytVIZ8nUޓJW׭O7#y3E[3K '}Szʥ^yu3EDAZ]w|ɠ-oOXKq1Wy+*[GJԝiߢ$Es>$Ӈ*1Wb]v*UثWb]v*UثWb]V?c'T7y}gו y$28C#34f?M}ǟ ÍnhW4M2C?VYV ^ 5^N^i}hqngߥ_O׉%ʕVAѴ;[{{- E!`Ԋ݅JIqTk;cC$n :0*xXV/5URO @rS%EK'o_'վ ˟w~*|=?qVAv*UثWb]v*UثWb]v*UثWb]v*[S ^mwijs˨k x#'[S}dX ,^}99OȼgS;XqF5i]%d!EGOW-[T4WPаn,! 7 *ث?0@{2XIkVgO`/\Gtc1#fw+Rz0?X4@kVSXYGʱaywmdqKb}Sx֜;>*«/Rʉ?懒kя0?ZY9,O5źzY"ݹ&uT7C_4hn]V;N-/ŭŬh]Z={D/o]1Rb>jjPi0]>_Ҡxnv-mż*Ga#*uj'&*+-HŸu3M[K(Y"~^H-oN9ϡ/#N֧wwZ^GEq 4_F[eYaIѸ4un.>47vVijQ8Kě~.-$x~~|jZs[&gU8&)"7HJⓊ*UثWb]v*UثWbo_m4v=JW> UTs"vリyKXʲ7*&5"y[~cn0(u^Q7:Ƒkisnd'漗 ܔrZh'rLщHW4Gǡ8c-5;K{kyfLK2KӇV_OU}]<6PMj.cEvGP[f\UVigXK#PhRXj0 nh(Ɵ Hv'Y}AkC%ݝƷvDX#̎ҭ%WjSbc}/DH/ĵ }V}KN; .K關V"E~%L>lU >ao)''ѷ΂e$OV81*Դ>56Y'bR V튠o2iz]ͥ] 1$ 5wGh5v'~*LiI}zwW:Y.BmcS ܆yP`vԷl_bU"ZxRo[>NS}X>? jZtXGu BY̊i4`Q.~;_1Ymyqz (#ItH4tÊ-._O ޛ+>7xSb\Cm,qs(y=1)5n#vqU\U(̐A }KK-}4;F\d2E*9*3bNa} 󰙣ˆ'kwb/5fLUy״%[:[ zh 3 )Xq*SZj3ߣ#^BT伣RJ}FQsg5^N^i}hqn}lr@QW,:l/,bE ѬG2sLqS%&mpso˟qasGǚ|9ǔwnW&Q=[1 [i%jrPKg+zZ&/qUW Pf-vK+Rqo(UIH ϥR>HMV@c[UcjsUQ\i`2u.>7OCʯ@мͯyFR=5};,HOimǟ=/X&sZ=c!4`Ke.VUb3*\=.?,p>?7$./W^r~gƅ=Ė֗[:q6ŢxRFW7 rtմ Z{k=Z"k&О_^88G=VXR(zŅm#-햿s&$w׊l[mZ5>z][@r;k>9&I3-"㕜>奎?󶛒zj^SևuΥ妁ED4sq a?qQV\D[3{u]Is8f[ܥտL^ž«nuvVhcloY/nn$]&<19%PgM5sj6zK4ƫZG\+GVdGu/1T~So1ZkV櫙.MĶ>Ce,Vw:eo_Klʻ]+@C$6]B4DYGtUXzܷhviXɧK=&{ɠӯ܅Б廸1M%[YHd ;o8\yR;h'2;]:4L.d䖎/VT{IQW>A/|';;MB-,smZIe=?&GNWF߰7wF?[&H>՟6-~otokkm~QrHoMM]k-ɪHf}noAbTDI9T:ڴ{J}Ux=KuԸ}f?8.J:ٰJo'iDRH#%IJKsn=$mRp N_랖zַggֽ?[?xTv*UثWb]v*UثEy5crDrwv@oΪaFܟaUWӵ:kk,[Eޚ]@I^m+\}]¨}/D`roI$C3$1(}OI*58^%PמNc}6Zؖ5f D 6)&~5?*z7ﭟUgiRؤ"v(F%I9#1QAdQ^-4 +1acy&eRc_9HX%YW$|]TM>e:ھdDԑ~-b#Xnۃ"U.O)ݍRIdEo%^ԕKnL*n\ՑqqS0iwh8t`̃1jTIbq<+^WK[VT*K4OsX-4|W}n8^]\[FeHֆ$q%Ti9* [b̺,qHmՔH1,V?WTtma̺XxFq<+,OUUGT׭{ouk ,rG . ,)}N>^żӡyR={FfM",/K\̘I&XͽռN[b.RKv֑Dàk2Mskc]jBV'@kf~b"_?W'ҎfזaVv`PrVppmݬkN#DqZvHmtM\N=*m/K)+צ$޻4q RnLUG#-iՔJP,<w0|QI'R[)yKd1Ennie{vi!"s{/ wR]6m4[T`[xcaGi(P-(bm%- @G5W37J_J|rLU W7wo1^WFehxkdwMY!~\ #*]Qp)9h+WT[bf-]FҴ[WS<.V0!)$?YX$,Uzy_aimI}sq 4{i-8֊䞟yVgEe~i)n5_<>,\=:=´<~%R)jYOb ̪ <4i G; f3[Cq~*Sȋ42}zK+(56+ܘU#xq1U_u{mSI,-mܜ4lןSָ(|'#f㊧O~?G<=Oq_QxWb]v*Uh➋CWbXߝzӏϒBcH|n퍩qPX\wO? 'A9/+ۿ >5^N^i}hqn*Pڅ,ʳl=Ia^o9qTF*UثT8-H*Ÿ\#n* H}9ob- R5E *5]ZJk"ۥ}G)f,%rN-52khgkQ}lLr*-GגbUتvqOd(G1n7܈bBkf͢## 7. +cf* BΡ'Y * -W̿b{ZȿZa)d@tVH;E]v*UثWb]v*UثWb]v*UثWb]v*UثWbGg]v*C6F|C_wlmK'm"KdO? 'A9/+ۿ >5^N^i}hqnr$MnZ =-uyf.t >O%ĶK;i'19#'rz5Nu?8j6w7~-חm&ԣw6sZI7!co$j 4=q(%ZzF]_<ޒ CuƥoŦmÎI2|OQԖƶtKD}F^Y&IcA_^h:^vVɣ8 NԭL{ Kz2QaTGvk4,Eq=6}b/6Gkg-=4}H}xȶ БIm.\-չ?%, ^Jgtk-\˾^{7ɡv7VC馗IH[y1TTEI4[-OC,䚜%ՆueRkxۤrgYţVtU[KW?¾LO?BJ:->ѳ5W5̊Ym~g#Uۍ_JdT^_֭wתeZ3iuϢ/ϚS_,ռn5;=9!cӗFuƧ ۬)!H^LUhbVm5RiwΙqo3XwivOca`&C8[Ȓ\7?ʪ`yξZЭn4rZn-Zi$&޶woK$kgs;2YR[i^*gVWpj]vaN6l^=>crOv-m',(k}& BIP.4sm$O.w6^漾OE]5]-D4W*iKfl~$H R6yLҤl֯o_2iZnU`[X`Vm.$If}VHcl&s9[\Z~h!u孌6ܧk v> 'YU|4-u ]@Z-`70is4vcEllIӯU긫Wb]v*UثWb]v*Uylc 7$ie'?㪨6EE`m֏q%жv]P"G cW2b?Ŀ*{G,lH{kxtLh2!AObg]K/=i7 e/bnO. *}Tmt[ϯE|tIW^h3Ctp[VlU[Ju5״5C85!4u:+x=6Ӑgfk*ttiD\mHg !E$"3HLU[h鿢 I..ͩhXrH"Ixc25,$p\ U}|-m,]3} *czXG&X5Pʾa鷺-mD-yU6M%r`٠d;VɲZ6pA%׎FFK9k%GȞAV{K}6K:厉 s,W'ikooN8}oA%iqT~\ԭIӡM>z&Cp} eH-ݧXET+[" 0RN\aEyE23pʉ|V ݕ>ȷW*Kx14Bh.?Tg$hޤrMt}^ht5?/izlV148Q+̊򬖩xYXV7ZNQsS6 P2-w3׮rfI.nOq[!upl8'2~1-zq1SMFZCͪe^PA΋=ߧXidLȯ$K"ޱh˪7 "$$q8+zx3E!o8EkI-` aE=,M1TOlkiZL Yc[7p[4\4/QfI$TM6zUŕKA*%#4jf⾗zoώ*gF[/^YN"zKf%L%Z{qX,WPC}-R7'9Kk@SĿZTi9*N'l\IV_Z Mv⨼UثWb]v*UثWb]v*UثWb]v*UثWb]޷Sv(v*Uث]q<HVvI~/N< Ӌ/:O? 'A9/+ۿ >5^N^i}hqnK([DYLW"Ess {~2U {ey|E5ݖ6KӘzu!K.',ĸ*_ˏ'M=A.suȁmX+B6[v24^jאum?SD,ʓ_NW ?.ӚU[Ioto,1D/'u0O$;TY'i(`!^uv*UثWb]v*UثWb]V?c'TjwzLr밼2i4[< +qUyCE7Z=KLp@&uPcѫHCWBX 8 u`UثWb-΁MB?2VւHGReOoI8b]v*UثWb]v*UثWb]v*UثTLlw'uTYCT (,3QMWKcH 6J+n+nL8QxĚD*ŀ'+P.*]PrVPIP o$JتU kFk}bTr̊Ң\ͼ4,#P4e$LUWv*&F#uvJA(C`>?ˊVE*ʥ0>5d5F*v` *>.|8Uc mH3pX]Y?e[_v*UثWb]Kyi6w< 2V7n?gUPi_Ia/} dS2)уGĻK1Wb]Y̥uC2BF(QYJ]*PdՐـ4[iT&ioFկR.\iˏ2+J⨼UتRӭ&mn"Ja.j˲6*]Y4 3PĥUUQRN⮆hg&XePȄ2e#bqUWb&!yu9 *Y:U~*UثWb]޷Sv(v*Uث]q<HVvI~/N< Ӌ/:O? 'A9/+ۿ >5^N^i}hqnSI\kJTgY.|eiȐ7zČ,mgDOW~&OJ(U)?4<Txmaye Җ;{vkyzOc>K庽(dkkG(._W"mm, {QrUVϞYdv/FQ[E&\GCohGc+Ymb{4Ilu+,@ q%źOӃ9+I.&\}Q=OqXTWRюHs3۩2aΓ)DV?OH4k#iޡermm2K9;xⷷ׫-,|پeU::S}~K$,~_߻Kv5R򩵒v9c".}(v`- CnqJmI[ZI-{EH󍵝sgơie|`bUg5 VLiӘmnE(G$izcrӒyc%Ӝ2U5]v*UثWb]v*UثWb];As.Yn -YJ4C#ű7T_9'j:-#KɒPRKY%D$IjRD/i;oJe6k$tG3|.~Mm2ͨj;k>\Y \渷Bt($)#xѮh*u*_~MM/?sb[x\q$D3zŸ`UvZw<I'5F,:$FI/PMhZ]Anb.y"i\򸴏>*KMVO}vIxLq,q#,~b/RhԕT7^aoY݋+- Yby%I8Rh$w{myusiVX44[Co,.bHǮ? ~IݑXTPBRQ4䒱@< HҾG"O*k=EvoWX+ P;2:NQgfU4퐃WŽ[y'6 [bG1;oo!'n*28WYfy-$xmV{ҽ2[8ToVN-#K]Ǿm/Џ05R[.ߊ\ZfqqKoQ!]TfO$]!inE~bHYhWt|%Ufw\!ukmm} 42 gih]-Lo [6hy7%_o}6]bXL6@Gx8zߺ+uFUhP5=I2=f-; vofݚWެϊyN=Lj2e(ktnmuktn#ϣ%Vܞ߾U O0/Rk[1ZEgvak-3?o$9'hPBM^`徏PI9.}QuD!dRXCs􋹕VYV34c ^e?jGk 1jzsD%dH-wfL7y=GS-ėƓ}e-t&) 4$q±̾{Vb_CUymaJAGWhw<-^@jp\ Ʒ\z^ Վ4Y-句IdU?'I."kw;_h5U h.kQN駤^(tvF!sq ho !*nV yȳswe=ckld6[&e)/@YP|JQ~/Xz+"5^N^i}hqn{z;[sF r c)??uqU6?;~ RyzH*iZt*ļ_1j~aմjOK;;;{>K[).GGӏ/:2?_.Y!/T>kM$C{+&ެi9#տ-|xڇ<:巨Ή$UEY&b /?wZ客>YWگ??FMcgj?V7aw^>sD[saDn5k\X}q./o1I#$nimU5Կ-|\_]&Ui%K-\A,OS}F͞.qruUmEurEg[#]3\\$qpowqqj7OFU ?*pymƗr.X9^kxjMQVHUuKWnm5ۢ-n-~8^"B?O$0E*qWb]v*UثWb]v*UتUm)N06?zx?)?t+]/Ne򶍭>y5͍݅>YZ![ֺ{^EfX4pz]zo*>D$YH<saҴ֊oJƩ+~{IV uUe/.Gky5wr@ouq=֓oy%_?y-bi^[)UY\ZǬ]~ѭ6!Kxm絙Gۚ+ 5I>55^N^i}hqn1U8oHiVw=/yqP?VLU~gɛUYgww[Kv4`0C$ܞ eXҒP?A,I<4}WVtSL-涽ԢKveUZ٥T%>(|1cfA湛o-1Vع{uyeDOYMqb'vwrC4=CywnvvMtz< k?˺|bڙ5k{fbŅ/Eqxf+{o%zϾSK9zK֪qw"K-3O W,?W~?:֚ )Lby,h6HE Gʦ%ķp,љiѵ?^^}4RC4''t-rkt>ݴ24̲E96BP1dv*UثWb]v*UثWb]v*UثWb]v*UثWb4:O`v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]޷Sv(v*Uث]q<HVvI~/N< Ӌ/:O? 'A9/+ۿ >5^N^i}hqn9{y[^%Cz^ ɃRHm]KLkk|I8JIvqy6Z֯ҵIo6k#-VIzu5]Z 9m;-ͧojބPMX|vXbf];Ϩm*JHe"w1"v%XzPA1WGmkPh>tUoo4Zq7~sqbjl?s >fOj5惂M>u֮= 'Wրjfu-o4_T].3=ջU '7DӤ&ck7æ&o$)tַZ%Ɵimjw]<\[=yϗ#mcPuo<P\OžkMc'-Ň :/=;EדR֤30^E&(jX1-&fKfYiСuֺ]!y}Ų^m~5z 8*]v*UثWb]v*UثWb]:[*b(~ῳ,W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُm~z}@|+&ῳ xO+|5w?1׍ߤo^4͗"MI k_D^XSYG+jC_wlmK'm"KdO? 'A9/+ۿ >5^N^i}hqn|򮻫FA=9fkyQdU=^Kʲ UثWb]v*UثWb]v*U%71SA#"XEv6Hݺ+J4;Y7bQ{KkPFt~i巏0pUeKd4Ե~q+X*J%xif-hbJ>08ʸ eI2J&Lv1?GNĺwG&];}pKo}TqWt*ƭ!wEwIʪA1HP[Ӓ7GVY/N|>U];}pKo}TqWt*.}Q]%ӿ78ĺwGwN|>U];}pKo}TqWt*.}Q]%ӿ78ĺwGwN|>U];}pKo}TqWt*.}Q]%ӿ78ĺwGwN|>77Pj]omw6nlB[ClRULٳ}W}abf1NDߦ"QzHc%Gb5}CLkմ\֣ hgv vb>p0$'Ou> _=&4ؖ M>M,g ~Ԏ;>"H!uy>TbB.&^n;;]B{:BX:Xެ\E1%<.n}?5 +y [va%^s&K72oH*̯m=jmCH:mkZٮ-֛m G|vZMzM׿90lo+_֗]¼BIsivWaDu9nxdW)yL3_XU{ yKkGiVhuEWWHޢd,/C +/=o^?Kp>>GTtJ/m'F|AãZVz|Xeu-ъoN`^rΨˀjBO~xiS["oղ̱Gws"C\4 EKym=IxxB~hI6{?OkHH^E/DM"$ ȿby4o$RS`km->Olc8(d=Aupz) o6:zI|?RdWۋY#X/\~u7a=|ͪKX.o|$ekcu,pX6w30x[?ܧ?kdWMV4}G[\߫{_xVfe:yr]X\F<M33'Xrg*C 2k}s5֩Ǥ=ZVV}^KxaVy+gO_@ d@faR=ƅ4]W_]gҹu{.!SMyw>Q"pĚZU|e0iGyV_^Kki'eAJd9VKq c}wwkCP+K$Lӭw2ӮyE?Oqw=w[D_/k7 [K@w=ИntOAgĉ/ 嗛Ů~o@ڎGy:Vln+IIt#޴韻kljwR6z'u-YHu+^( r]Zǧݶ 5 ?Un.y yIH.&{R9eFw4 I'hݲby;[i*~alt[SEdY^[bԴvf퀊Xm.oǦZ%\͍)k~4ӭn-+HMkvC3z澉`U[Y6Wy]%P"eh=+OW)}k}c?[ү?Kq1`;m ]S4H(졹nr?#2-su )#l8yHK> .5l'*UCKZYyGmn'ߗa~y[HUB #`I.XXhYb}YQ5-+G0u]-,^~D{V؅MUZ^*O}:iw`\Yj__7w,w1K< KKbkSq譬_]{ei,q׊k-6- rKkdb2:q_KOҋ#7h4vGmiVc*s4z՚W qZ5OZEhZb)ڼv0[=E7+I-KuÑmiDֵm۫+n׭.bWKA!+=zK[kM" HO|@tAv&WAm{=m];C?+m?OКtڢǩyKw=Yk@ךDw8.I"yƶnJwK֛Nk"=sP)%9 <2$߼w߯?sd o󅶯ˣZ펐SGVi^8Z;oqh ?HkM]\WVnn{fTk{-$P Q6pN}JKhWڧmHe{OiyL/_m6vz47MzonבmzKKU)~7/SGl]k̾t]Z<åiZwK%-4]E"&ft_I7mih]5A}{k}Z9K8oBHܹz Hb;[y,h>eovZ8g //|op]kIXCcpy<)k~?ђ~>ӀGZb)ڼv0[=E7+I-KuÑ5^N^i}hqn*/t3BDZicy{u"I_]kHLpڿHXkIuw,5Ii%pneb_Ҫ W[|Ϣ2\iگծ?4B5쁞ZNIEXx_dʼߖIx<A5jW BϨ\JNh7 ՔWʱ7_9KMFP???z^>w~gIt?.ZcMge-1Iiyw{[vGm!w~FMm|K/1K g֯Z+OQ[᣾K3X߃XCܮUEW3_}wkKYyg Bݖ[)?ySVuv*UثWb]v*UثWb]V?c'Tv*U*t/5hVu&ծxI/JF U$~$S\U/]fKT"Ʉ,.%hUU Cn,%sMmoecy#GncY\3"4'⩭ݭ7sGsisoq HGGRUV_i:Y|WVsqd $W^HeVTt=nY$Ha(K l#o?8UoL1Wb]v*UثWb]v*UثWb]v*Un]Kk_FzS5 cu')4HE4NUҬ-5K[8%\I'* w;o,֗OlxI.4I6K%w;BBSӒHtű T?,|sciaq&kS6YA79}(ecrcZSyO,VӶMoz|=^ǟ^7ߕ f4t{g2ik [G!,K%=4oI*6'[[m4h~V.E42o#FHbEb[8.եݎZX#Ea<6$]!u@ѫҳ*}VOlx$OtoiGxhgxi';axKt+!^IDn'su,PCKiioq+E4aiVv&t6oM/LSq" ]@}ӚUn_Ww:sqyq\W0%VM7vvVaB$vC%:eXrXWk([˿+]jZ4x]JKX^I729G87/ xW>p(k&k^fԳkIgԔz?탈/ vc*;/M<k8!9)F"FMLj/ N!'Kܺ-$0@ӎ87"'\,ȲȨ߳? %t?Iz:U_y~oo._Y~'/WxV=*; .^k IɋUW31X(]oȺҬ5_rmӟU.+ˏ(Ѯhkr+")FU(4Enj/B&m^ jk 9ud1[jO 5qLWE cHiqܬ2dy)^Iܰ Wm/` ^~1 ]6_Lx~?0ߣgenj/H|i$2u$W7WWP1R2cj_;ly':_$u]O? 'A9/+ۿ >5^N^i}hqnb] UxtYbJKiRGd6 ΃?bK4K+MI1<)V(Y~.,b3?旙4H55_6yrQK_dc<\00q"y-fd{?4"2~ՏռZk-hWq0LfA襄w._7%6cV~[MJ$iu9-K""\-WGHbYчԕ1VKkvkW zf;.").jr|\UL1Wb]v*UثWb]v*UثWbU:U5]̍#Yּ8],uT!ooi$ƞay+O3}2:^ mI----Y ١)m ҼG/cERn6i_Zj?߮j̚wdeOj%nq+oQV@NZi>m(zks$ޠjGENN}oVa,k4; FHuH.u !fz3vyP4 ft4fn~/صƧS?rn?#W.LU_Vw:KQf&t $>Q%~UF?XO<~nyAKY4n$F-\Γ~pki᎛Ϗ/8?>` ?/6<)|W:ֽywSHmۖ 2immq$rrK42}SṶggH x/V>9ҿOf>fP6{j_֯4k7 K9>K^r=B,7yC﯊y=ՔaB[wy̶kXGk=J_ԫ4e氺٭&h~Ž>Q~ 2ɏ'9ˇ[, 򮍯zV/cm}n^V^s˂\d*|ykԶvڞvM߸yIGyH`YU%s^_WΉMW3V\F"/;MqA FLUVr#U/)n3\yb/\;R HmKw $iUOύW4?ːI~QyV(IKCD=ad1?LA{|VĪ]]/0 NFюo}FGQsK2Gy4q,+I-?3oiQjvz?i}aQy;fE_㊦MΕgsYoBg@C_IOQ~Eb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbGg]v*C6F|C_wlmK'm"KdO? 'A9/+ۿ >5^N^i}hqn5^N^i}hqni??<ٮއDX}[}Z:?|8a?[ ˝GiZx/KU{m%!EWԚibչy-i:Y|WVsqd $W^HeV%Z<:Fj|->"F2' G 8%OgnwfgED2/tw\4u!T{Y`R9NӓVu⨤i&h1B -w r,L3E*ay×׼˥ZkGﭣŷ^a#cqNkN.o-a;Kk{X鿦/vzg׷qZFeR]3cL|;MB PF4kT}eZʲr]"iQT'uad&I,6tPݙ 0Q'.e8I:7-iw4gTMuH}lrPXIz4po$𼊪,53k5ysgwOU eY9qm|w6S-ijZBOup7f\r5Po%ѭQ%k% RY궑)љ .У̑⨨2<5ֶw2%S5K4jڑ["e.^M]z*u?M2Iy6ͪ3N6mUyՓP4M$Q2_]HҭuX8Yuh`DIv'W1IUثWb]v*UثWb]v*UثWbsY`nK|b]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]ImeYxސRdȠ?8#O? 'A9/+ۿ >5^N^i}hqnοJW~>|_ U6C=#\E4ڦk)i$ϒ-ͭ-b_#~U5b׿~OG{D\~ƪk?"?I4[mmL\Q!DFso}g]9geOJ$U[H}^kWCc.Cķխu>Թzmy]M%V*t/zGl5jrajq~"{x]Y/V{MEX;R>q=='YvbBXeH@n5^N^i}hqni??<٨iZwuCWgcsqYI}kxg?NB#~q^x7b6oZsRaނEyi,F%K$4ifq#Ò=  &t(15G7~줜NIrȪ;x o^3??U_߽O?/Y_4N.6ki12ȯ_a;5^N^i}hqnC^s-|gw˺^Ǥ]jremc[ &0rgq}G$1(t#"cI7Ѝ'r[K%s YeR[~1Ku)t(p:C6pFeO9c_Gѓ.IV$هH{ c>\_ެNav*UثWb]v*UثWb]v*[S ^Olv=RZ4-+P$$#БdI}7Wf~KOb<~9}x4?X:o15h$V4A]:8ZU7jmJ5&]Vc^XwK+gQdΰ[&M8c^:\j ӭ专P̫tCg}Z{?AҸ@+D+v*UثWb]v*UثWb]v*UثWbRi1uS*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]Z?oG8PUثV7^y3䐭2cj_;ly':_$u]O? 'A9/+ۿ >5^N^i}hqn)$j% ,@`j""Շ qdž#f!0Ǫ_ΔIZۧtX{)'d9n#g8-aNVV~`uI`mF~m$n c#=;B#+||ܭ&Xf=G4ثWb]v*UثWb]v*UتUm)N06?zAkYk, {OUqIŃ7?O.*\+;K;!n&>"G7)Z4K'ÊՅgc%o^c^ k5p?*v]B/8E:K<|-ت}z-VLS\O!OIoAHqHc}Ui|"km!fO"ĥ$(.@AdKYVcI";k'чٌjOUD?GmS\?u_*]{BC˨Ʀ F%o٘*fQتEylu F^]K i(0c,#(tGc?tAS%4rC*L 1n$2|K8Wb]v*zqOEءثWboνt?iPdg![1$>e7Կv8(,ON.tH?O? 'A9/+ۿ >5^N^i}hqnH-">+RvK5ǮZ5Cz,Ad.TĒo,*WڤjAtC2]F4k!DS/OL1Wb]v*UثWb]v*UثWb]v*U%6~bly*FdUXhEqU_🕿cH8~V5#C4 [?ӊ'oX4?N*m'+aq5,-=o^1}U.=I)=E#8+'oX4?N*🕿cH8~V5#C4 [?ӊ'oX4?N*🕿cH8~V5#C4 [?ӊ'oX4?N*🕿cH8~V5#C4 [?ӊ'oX4?N*🕿cH8~V5#C4 [?ӊ'oX4?N*🕿cH8~V5#C4 [?ӊ'oX4?N*🕿cH8~V5#C4 [?ӊ'oX4?N*🕿cH8~V5#C4>BTG^Z$.K?#OêotvN %id@We2r/(RWJWG(K<` -[7RI,5J#_SRJn>%T5瓵_Mv% oٽG͸#oJI_y4U筊U9{mRyYI©. f<i'gWcD=oYc0ZY+]z1C2G C/j5+{Qipfh⛊2ӑ'axލglYT)9H!%щRNH l|_Y1TE M*XX^I仙jmWR) VbUIlU}kϯYNY3:&$A@X{/[6ȼUKwcTYf[Iv׵%eƦxۓ v񱛏n>*Kmi3]%eͰMJz֏$dzqT}-+$3 s-grtXO%ꁡ;WVծdU 2$S2}V n )1U_[dW37VѱR8eIom8z䕞FMi˨M i^[9e/!A<ƍ,EU^P rlUo.n?|_ä2PN/AV5 "mzu>Z3+^,bbbaY++q"^?zzcUGͺ_5R-*eL3s=$A0xAyBc~KPKll൵l\K#[K2E$*\,L$VW|uԿk=¥ܸ9 AMӟ?tQl?^YZP=̨ɵth!NOo#UZ*ꞃYYekj$#39R5ehe$pU:Ѭx BT[Emݜ5$@ʠR3 WUR%Ue,OTH\L9Q.)ޢO2rqWjZ}\["I R}aU2dK~^;Nn q%GkzGq7m<޲8|uԿk=¥ܸ9 AMӟ?f.aUy;R3rX:WDldihn%>rH!Hvm}Oˆ1Tu]ui[(4F $,L12jIio*I$mt.&xEoQ'^9q^ d8Q+mMAUInjY[A'>M66y9VM+/l0+xE:CZI-g0EH=Y'є.Azqs_AT`ffա[չikPǴpx>_ʺ']6V {s{}&W>A(H&S*j5xѫ3A5f1H R+~wlUثWb]Z?oG8PUثV7^y3䐭2cj_;ly':_$u]O? 'A9/+ۿ >5^N^i}hqnn>ao9~VxIahVmKο_}5^~dB}VMꚍcMht{^wk ̑A]IH$Rˏ7jqJ̺oo܌]yQV>yw^s,G}؉5+R+k4SW+]ݣ5?VK?2@~e-n!uZYntp̓M4Pl`d+.&|U%'<դ]M'N}f5tt&[k6N]I5^od-%YUUZFkT:_"ҟXЖy'IKٮD4>7~U՝օk=#~~O^0?pM|تkv*UثWb]v*UثWb]v*U&Sg]lUZm ғ4RGUd48Yӏ¨UثWb]R{R,B,B('Ŋ[`f1LI6(oӔK|5n>NJ]ZɵF+",f`1IYDRq2˃X/v*UثWbPP"3rY-!BaK{h^rI20T*UثWb]^]Oyrm4BxjYhlUeơkoukk32zΖG*KQfP1WbMCVZpޜ+$~<Dc3Fc`SNj, U^ WƼY>*ZRI^=h,)2bDoX/v*UثWb]v*UثWb]v*UثWbGg]v*C6F|C_wlmK'm"KdO? 'A9/+ۿ >5^N^i}hqngzwK[ILFM[Cwo ]]qeYqsaP3"ѩc鬎}>>{gTV*UثWb]v*UثWb]v*UثWbRoJuxkBW7[_ϦM'֫M x!/űTD5m:.є S'\xb]v* ?&.y;]H%gw,"yqⷋ1G*]v*UثWb]v*UثWb]v*UثW3KmkaF}* ۴RH,$:-la~UzWivM?)} +sx$GgЮdlo.lld$|XkaHfЏ[x?qevvY'om T)QV$bpzםmu=BdѮ;,} v]I1+ʉU5贳[7cq S.?*mzM i5g>w$VX*An:$p-y:;=;6".*o:,5m'q$1+^8#O|8RբCs0ʩ Hok,pB7i_cBmZoZJZݡX[w/%,UZ4A1x#Z B.?Ib{xqܒ)>UQ17iYmmv^ہ2guY^ - GOT˾]{Լkڍ`̌C{,>+A8HA8u Ytbm@]C4Ha $iF?xRYtZ[WX]\GYHZ$.B$r\pDw2]sZ_ȪU/5h6#DYgFI`rF$_̚TQ2ysXP{xn4c契^!U(=7w^&7&ɴ(CO$2)@+?2Jߊ*-,7:$235̱_/Xic⍽8 mcdPsR[=&N4xE3Q ;V+u,] vc8}Ta-xt]y-ͷ6K# D <2[ӷdTem0=ԯ aeXD@ȡ^_SNeK%zs]Bh9(X+0Esh޴~9|QJ:^{o % _ݤ[UY\cUjGk_U7K+FD|޻y$Un@i:ez5)-.#KO}&KfyJz\QCŭM<ϧ{,n(܈~3Fdg{H%5ទ'|YLϧ6Of![3[BՋU(䝴6"n.]"uD%I@IzʥRysXP{xn4c契^!U(=7w^&78`NI8wʠI.*IR~^8Ql&ܼnj1j3#Ia'%Wh0[jzh3Y,6jeXR#awRO "*֓5 32l!+l$9͔ 9JQVNI"ګ4m?S4BM%oKakՈl[G8,ޗʋ\eثWb]v*UثWb]v*UثWb]޷Sv(v*Uث]q<HVvI~/N< Ӌ/:O? 'A9/+ۿ >5^N^i}hqnZM٣HԥP BƨeW~tѯu,.#19KzI6ybj/$k^;{xN#q&%3 bV&yw¯NtJn~kiA"xP?©Ǐ U!yL[k:Zn'kαQ~QpeJ\~\y>S!qe$O7dm?ԻH.yso~Y9K+*e?,q" dY3_^]Jmۉ$i$I{x$f.mvUZ~e!5f,#1<"JpHUEb]v*UثWb]v*UثWb]v*U*Q=w_?i?ڌZ`3[c D]a8໷;d?Ѧ g"<*2#sgVϙ.~i3k)lk]G H* G"wIc^Q|f ɎP5!E0N B}}_Dq-дyqO4 MIJ:55$ܷ^aYK2V9E3z38yY*-Nm:K `{{k6X7#4^i#wt)ݗzj5/#.*ʶo >>mRin>f(5۝6V[~Mqq*y"O;o/8im{{Y&!dZ y7P?OutR_Vn届[ؒX eM nѕaGU k~׵& AՕυԲb[WT_<^]ѥl_z&Gi{kmz>IKeiscm -=$K n619,S?U4ڙc![Qmlf*'Fߋ 꼐BkyN4qȰhQ(\$/rnHnq$$mx'h`T/5_:)SQ=6[NB| k+;r㕼v;~L⨦򨵎uId}.F`5(4MnչqL43sY4MiMp"ϔN#419eC sȒx*]v*UثWb]v*U&Sg]lU6haPƥ9 ;ET~aUX-nⲹ~>JۊF!+AT^*&F#uvJA(C`>?ˊ%Wi&ܕT7H'%>Ҷ*BjƑoZ_X"Ɯ"*iyiyn6sso%xM ,%MISU]IH]nJ1PXxUJe fOY QJ˯Ɵ*XCF:L"V `?hVjVW]v*UثWbRZEq /̡'ոۏUqT:jZtXGu BY̊i4`Q.~⨌UثWbVE43)xdP̅:wVR?eWE*ʥ0>5d5F*v` *>.|8U kFk}bTr̊Ң/v*ԴIyrȨҵ@b ͊1WbVM40BL1)y$rUTTu8IuT %9}^h9'J-23SG XkK汒[ޞ(lo.QT[W-RJ}^95K67SiZN+}}}; WY>'pIa~g-/HEtWy./o[^)}B>Q@Tν*zguI,b\')}98inVY>g{TVAsgcmtڮ}XB-6)m= ʶ+|z7s骪Vso,ZG 4UDdSIGxzvi U~,~py Hi $z?ՠh d{QH@%ëYmWJk?KMo6vbiIHNkuu'%iV:ulo#Kj ²\ʩ_uq:I i&in&Y~te4D44 9.&`]#{Yn4ĞKc)$^R UFI=Ko]V?? KEVE_W7.n8#Ep%}c**ɷ$ҡ'iDnsrS_E7xz\-WjoƩk#IiwK6vn{ma55ǯm2O ArS5GK !;/) m Z>(Ehi@_?悯5H.njp6-1RK{QV+y^k![YT#ͫK!-/ !ٹ\}j)VWX9>RǜOVa5ٍ'_u_g2ʪMCE//Ly@aK}O!UF,sF.S 8Qsn.3i=M'n!Z_A%YZ5_Ek#Cq*\֩n$4w7s(k1HQŴ/I#eu]cڵֿosk Rczf:ufяԝ04U"OZZζ   ERApA$Dܮol&bW12|di$1*CRWenr6*V~pPjQo&"wf-T49$?/g$UY^t(iE7,nve֑ 7#U v&m+\^C"}vI> TIԸ׸vE<ѤJ;N.ZK^`gm3EԳ'/z تκuս "Ciu9uY&k{3#M3bWh)diLWo'PFonwoߋTIi-Gcy9!U b]W]45,gTWcPP^b7F*FuWvZǪ5O|ް =K@fM6S@xn5V\ \Edfqox?}$2K"Y> Iwy\\ 3GJAw7M^v?M='UZo1C7 lGkxe1SpnB8o%sE+D/m4!(3)Ix"^jʅ^R~*ũ|Mwqy+H"e]4m{$$_QWY:񲹚?,m|7w$J%uY9L?4#r?5lW~n5I98$:) } sLn0i%-3-Hهnܪrm"+z.{V}P+\I<ѬM9TԉYFڪ]v*Uh➋CWbXߝzӏϒBcH|n퍩qPX\wO? 'A92Z͞}7Oy,т܈mnOO~x4dIYs~Pz@SJӥqVɏ,Shi=y`[}63paݦ,^7x-muޟ;?"'PҦՖɧ +HC'~U_薺C3H'PUf2 Ό мo4:[.\-J[;ma2۽K;{X_W ?$oqSI![uIKɴK?Вh5UV)I"_J8&v~y%7wz,^ΚikƦy4rEw[߆[!Om**7Uu}OVi55c;WyYe$7EQwKt) Wqq*Oc@pOFWUJW֯KWX&K믪2Cmwm QNU+ɞ(%U/(]gVԢP4xMV${g.UHRi>UPOa{a?ִB3A1Hg{wo<^iUDU%+ -^U^V7ou}y1Ey%nU.S9:M|&wVE׉6żHE'펕qIn튩Coo)!GCt5Eܔ7*[?s#U="zͦخ_H45(ZHa#Cs"_xgU~\CCo,2=+Wj"}SRI=I_TK+xVEQq^ |`w̫Q|$Q[d}DдS\];U/HK)KjM`$ro$OWPUm?Spp4J+ .!gtНKX54;ɣ(/:2I ZF8;oAT%y [Rץ5avm!V[[?G҈jl̿qqeS "iWV~gn^\Κd:SlMa?+O3|pHjZTVZ3m{2s5UFXWCS%V_O }a VԤ(fumGTEInVuU ^zܭIrln\[.b٭WTVk}?_0WzֵC}{rGj lmDiQŽK֟UVZU.r?Jj:OMT4GA+r^2'Uo+a|jl-.LER8`xySroݧ9 oC̣Q]BM9ſc՝1n9pQY}CJ}nˏւZb+~Mm*O({Ȥ"-zlh,F( HAc0G_e׭8?EB-bOVM4nsd\2y,O%A݋1dyeP@yߠVH /ԮO2YR>/hNIzU%򩵒v9c".}(v`- CnqBeߙgY:sioIy{sA=Go>%xA/uyH}vyaOks %xIkq4qwZ4\ #K+-HŸu3M[K(Y"~^H-oN9ϡ/?~dڭtlR)ec\Z$eVK$j$GSR|r46ikumsя[+~hy5 K{g1]v `qjo[d]]yy4v֖Ѵ0Hgwv!UG&f8n2,BQ$.J?r"ë#|X*UثWb]v*UثWb]v*UثWb]v*O)Wb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*Uت?Y=bb]:C͑$ldRdȠ?8#O? 'A9u']ލuiVl ,-W.ZťſmdpJ+.ѼV76KpN5ef~%2|^^OyZj^sk~79es4١t>.kmZo+Y,*{)yevk8fyH'>7dDŽ]n?.轳K<+Pп+dE䅑Y$K^G󅍥̖֐tn=GMӝQzwR/M|wZ767XHzk 5ܓ욵'K~?2ʪZgGJ[8yH`q%v?Pt bsHn 5ݯ-Zy!{m+h k\}޼YI}o^YI<oQ!cIz'cugM}e=kK_[]8[zVa俴MfM*aI.n5+IeU^kU$pz>+M_\d{yy 0oߴie;ZrO\Mjzʺ6gEx~աX×mTv*UثWb]v*UثWb]v*UثTRG`l*RX`UJM";$R^I]<)s;侯 ǔ 6m!K{i9fknRIQX_l^7iKaWPEq-SZ]'գ?UUj]Kyjz'8fE]y#Y[cre5{QAhg.V#\|m}egEGȨ֗QDڏ*,*Z[5k^Xnbү.{{Q/NokR)CX$Yמ@Zeݠе)/%K@ MN 8Fk mSӘzӝ}~xʵ:^;ɊUz\>at]sXRGPqf " x/V&hJMpUdyB랭_Zwz]in$kv*UثWb]v*UثWb?ʺ}إi"$h&o<6W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7cIُn'f>W k_7c_~"ޟP_ {ᯉo^7~ῳ xO+|5w?1׍ e&8RCZ7W5VQڐRdȠ?8#O? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثTRG`l*SR=:@UE5P.(\i 62v qB*1WbT{Yy-e6D!&`@$E/ˊ gXT{ %eDzqƟȊ*UثWb]v*UثWb]v*UثWb]v*?͍bO׼GE[^w,Vw!0rZ3}Wǩn^/%9~G!0 Z>}]}{7ֽ[Y_ʼ3qUU?g3;ZB#z~E>yaa.j/Ξ^EV\Z{O$ <򕻾[H6Px/I&J"?8<`_yi絷&E0t3'/ߺXD|o|j[Ey#O?:t CQKV .G֔G+?,#LwffAjiV_jfIn&y{{s8[ITHk~i6]Ͷiu6hf9gXhIKheܷb6d+Ak?ט{a5yn_-_ImV`,ssyޤ0F-iX~iyP[sZ]-jsrO%>OdҴ/s$,A!g?87O&cJ.f8? Av# x譙'Ǘͼ/ P=rʫ^wkm ?w^wpCkƛ;IɥZy o?zaC$1'͞m~mwQ&{5Ռ^Ohrx#+ǜ2>n5K$v!k-k.js-HB-:G+5+ٴ"yE#=鳢C~l+j@Wϙ-N}:+VX'F(r6ğ[VGoN+Z@y_͞WAm͏W:]IqJIri[Q,rM( ퟛ35o>y[C챷C3FХK%M 4z~߫dly~yRK[Eqk/Tڤ Q鶒7GO q';oW4fЬ-DI^\l Z% "\^HTh^)umf'#O>6JNn}6ReWuԕmǙAȼM"SK}C\]B;#\ nY?{rGTxu|qZA6i[,VoJ4K-kY?vmr4H _8I&jtU+Sʺ|$R s\%)gfxmWG/vW̜8^OSԁ%@I9Nk,z~yyZLKu#jCk=0G ,w76qGܚ++PSH/%4tM?V8a$Onߨaz>9Zߛ-֙hiZ:x2i2K*Ʈ{C/}{=HEyUU-?>9 SOͭ'y#PR°zyZ)eO|ۧ'֭)-rXmmKrV$6^jE9jywJlduq6Fh㴷Oo`ZJ⑮gRtK* J?5mi͗Q׾:vpc՗v գi%nPTcvu_%.ӷt>jz ZX5̰]\n[npV?qK0 S3X:%k=˩k n>ڃP^$/Qn{d "34+{ ->S'$T%#X}Xfk l]Η_]qwjz6e{m:+Q> F%Ӥ2kLLcfd Ű\B)§9L|fGCK#黳.I;vznkCm/\K?$XڿL+rq-4Ҽ盍nCKmR=Rr;8)vtfK)~?|Ŕ?:!iǬ1ͨj}Vmi;g}qv$UXK, ~@Gs3I_is3h٬gc,v$|͜JT"fn*~> Zu$HP :?p(&X[{Ivp,S-/V1Y=6<>88+o!H$΍<į%ƀg4HaQ~xX,|sE%&ө>E5ZeHRgyG?v6~|^˟?^ߕDSIbԧ[XD1S$+|ROLj/ CMM99KmcHQ_RI$⿶i Q]'VxK}>?/ C\~X6L6m$nrQ0'j~Vԭl5LӓีX㢯Qі%∼S_Lj/ t~VML{1"Ma2[GnyB9NQ,MDc %M,|߷}u}fdԓ/#w ]'叓dK <|};FľJH|Gei~'/ T.Zi&ekAok QGF^""x/͏^@oXY5DH}D@ޒ,Q*G^ / C'.mH+Xҡy%kajI$6E4Z(a%~*܇^'&Ьt.GR(l#QưGD@I$6nj/ EYy?IvaHI(6uUfO퇌/ B~VZ4NDZq" `F`X8}lmwjYS>g_/@[~]ZW:նA3+jQ—&I9PINo͹|| %fMçZYxV;x%>I l QDqQp(.>EܸMKXVIR ~?pq(cNjՅj%H/!K@ " ̼8+[dN5 o&}Rx?vOa֡XAΤ <}G_~.0% 7ߕ f4t{g2ik [G!,K%=4oI*6 %wgPM1ePVDs"YVxUϓ h6sĺl ƂS'q^8x 叓uM K[O^ }+x8k. %7x5,-m<(1C1_Q|*߶͇/ KmkygFkXcncY%:Y(4Et˿+hMwftbya$1BRʭx{yfͬgk[ccu}fƾYfyHYv;XxɶU~9OFVh>_OQ" U!:D,:&r[5-a[i$Hw'&_OLj/ M-t48mmbTDEUUGU8xt CSo RӇ/緎['2G]89.[0%-ԗk+u*$R$h.ѣ=92K#"Ϩ(X|ëϭCagr+I!E0yf\xh^UMH-2lZy)RO3<yxgylx]Spjeޗ~5[]לS!IqeEUcZi7Po%(^^"I.4>nG&DD\xoѳ2cl̿y.?/e7Կv8(,ON.tH?O? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثTRG`l*_2i4Eqy >'?@90@ݧALT%B|%x#Gi]fu9O"H=_ݬP?m;c}mKd5IߚuZ֫}coJ$dX[hkˎ}^9e .dtkmGTkIZIGn³ATespffqC ($x.zR+;ԡkWK6R%N|07$UbWN}F)$[K->EhaBV >9s檪/QE76;/[rżs:[A5>G"jn4Eot2c[\ǨJ`y~ui+-ZHۭʩTK8.nuatvf% hӴz\bP~c>k %5 JIaӦJm$I<.u,^xIT.eEDi^iu rq@w2vv%Ԯe3~D/]v*UثWb]v*UثWb]v*U矙t򆭥i!6}+NS2Ħ+J#`ꪋ_V kwmCi5dW+aR~S\UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbV[Q);v*Uy5z}܋ ~fN @O?ӛ{$];OZp[ۄqmoˁL?-$[6OOBFj$*lP'f6lafKO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثTRG`l*%Uʅ:ZNLע[w` :6gh _]gW5 w."C=UEE[J9!o#Y\\XV,+o<^?\;ѤgZzq]@P s[;9*tW꿓.Kj3Z,~~AglL/t%TL +_M>3Ɩ e%ޟaq&rZ'4mSLaޅݲ4QªU0宯zlUG;A,4̈]5*yD4_ˋ?- z=ΩqΞ%ԖQ1К)ߜim+'/ʰ,y"g4(pJCs";pIKoxLrrI\UO6եԜ̈́G CsG;K(> 24]\2^F kf}O/Of^MQz<8dvTW|蚮,zOM,o+{q,sʑFZڣiNJ\UثWb]v*UثWb]v*UثWbXw|kiUemwsi5͜(y,֒C03K|Y_TU#@#-#m"[J%]⻎;gIuozXQtJkiX?Ly4b=@C~K}"9>7 AJo.rysYZ-9efh-ٚym#w*^ ^ }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+_ǀwm?A]Lx }v1+t=Okq}v1+_ǀwm?A"52hJR/f4̜ OcjA1C&qvq?ˠkʿ}Vo S&6j'hvU:GIž/C߇]7HwO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثTRG`l*.[Uy-e p4OX25SeS?*yL5ŊK W g}kpeuDpgu,R~G_~dDU:]Rhm.cY!`J2JU\Uت7vHuv.$.NiW26g4S%baou69Ry(Kٿ8JC]_m=/[q8||>*[&L8$O4kݮv5hEZ'i%m)lK4#UYu='Gx\W01[C{TE(nVkN?Ӽ/6*|-FȞ]bhzc?#NѲԮ?ܯָdʪuVM"KkO3F,F"i>vӴ;Xm-':}#zm9kK*/y5O4\q[48>omccWY}_+˫s?(m% U6,ER_isjR,m9?v %\G Ok"_KƯM6H״3W5GYC&ZA$+& ݩ[:؋IX%th4UuKrI52ɦi~nՠQYǦٍb[Y ;XoKS 9j(uK~ k,4ZeͬPܟMB}bQunonUgWb]v*UثWb]v*UثvTWo|^]a ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބ6 ml-z8Z.'}q]OoahПqw?㍅B} Eބէl-z8Z.'}q]OoahПqH|r|5ȰGy(vHHj~&/A74yIā pOtOU+؊Y_k&K$P]e31FŦrBBhW#Պ6B}ғ~w…Ӌ$pO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثV;k:nږ7eŞ.~ Ƭ6\)dEȰELw??wԑj\<6"E68Vy+zSGqwb 0uԠ'䴵Ky.#I َ!/ٻ6ǑAbqsGQUO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثW~mBlv_s'[xǒmgBQ ޭy5m4a{ o}L.c$ty? 04>">Qx Uvk̒j~o9I㍡[/NQ1N?pk B$zxOQ2Nj0grac&ԄzokCP\# G! 㲂;w{@h|<#F8{pߏOQ,P=S?O@=V#i]eDH%TY"gJY8f0;G{2R } kؗUi,綁PۊpȜ-_$ $H }wǎ3OOcQEuk)~"_]L,-q"-\X|1_e,I_ΔԵKF5.Vw_W*-i7~?x'K鈰x!k_rwK:z5vG'B(@Hcq)8Ѥge?/r7Tv*UثWb]v*UثWb]v*UثWb^ui>T+okj> yڟ27˿t>?74Ō*c|Ңj1I[!'G6 U"nu"+ۛx,*$Oy/b(?gQ5 .O7X-QH9Li#ҏCqTBZjvww6S"d9K8d5ɛ¾Ī]KNxmnո\T2$C/4αCG!UUEK1;S^Ф=FanݬјQ>7?O.*\+;K;!n&>"G7)Z4K'ÊՅgc%o^c^ k5p?*v]B/8E:K<|-ت}z-VLS\O!OIoAHqHc}Ui|"km!fO"ĥ$(.@AdKYVcI";k'чٌjOUD?GmS\?u_*]{BC˨Ʀ F%o٘*fQتEylu F^]K i(0c,#(tGc?tiob^OV̩1+qB|IO^<ۗ^v]B/8E:K<|-ت#K-Ν?%~<97om{BmF(bI#΢&%$}U^Еn6lX%,P,aƏXzػVw;h kNF쮊\~Ux״&[W[)dh3++~*S׬4᷐I x?UQLί̱ *]v*UثWbV[Q);v*U׮m8l$+f;$̿fڗN'EΗGWO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثV;hnne=ɒ..~$*ŒvlYcMH0LvȐG+ZRxPKnfgc,]lZy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%퓿Zy#L˱T;WX;U?JMG%%,|7"V`+ݩUӓqf%YT;WX&W^Wx+ 7Q{k Q!V {%u$ <\\Ģ5>$,YxphC^y;Q!kwbZx,=,یn6לG_zث1X#W.oX`*B zcN1v|U4K38`1rף<>$pL2Iƪ3[KW pmff)*}9.R~Kk}VkK{b;yx]$䎐GD_izдҬ,,ŅKI%"`f%^OKvQ7ֺoje3;oRD 'bKn T$pQhrOVGǩMH[YI21RGy'/O^S{^.mZKP+M,E='`_/K۸{us;um#_ZĖSDwט 2ook2=ܭ%ĬE+H[#zp%ܱī)mVNH8vP" Yҁy6*Zh//.uRݮ"Fsnf682+|RiǼ-K7ݭ;=Kd+ĉ3[}A4ܗrܙT!5U9 q#As1uGP(mbͤ?$+GϒȪ;=ŔW7,S\,QwWV"+5en1$KoROSj *=:ŵyRM}UMuj4SH podne wF/*\IMm-bKxFD I3IIYnتB4AmmM#$/AcS:SHz TB5MCX+\vQG,7M$24Rf4HZXYW?ue0Z¾0K_\3K[pCpVAiv4[0iR#D$?.\!@yEuiM>5c4s$L)ekF>^>6*Z K;շh=Fi'y&#5DNiǂ>T֖N֙?T*,zԓ,갳 'ٵo?{/_J/a ?#w r<{~J%O}[ͷwu\Uv*UثWb]޷Sv(v*Uث]q<HVvI~/N< Ӌ/:O? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثTRG`l*y'˾Vnu jU4m>/^EiaJC ޔ*p̌\o_//D~hϪDŽ\ t}QX:< rzN8/or=VCՆ;JY=<|3 E( rbWwvv^^Mm58@Y݈UEQə*v*UثWb]v*UثWb]v*UثWb]v*O)Wb]CBj+av)GcFTb$J$_UԖ!xHV 7XQ濵ž5VqT>YiVyzd[t,@RŘDUS\Uv*ݼE{Y3i(w"7ت*UqZZ̳^ʳFFRCY;/>-⨌UثWbP-ici4)k*#nh!E&0yIy2bUتPKpH4ydv )asYEn(e[_ϫE'4fA#/?g?U7 pn>IlꬦEQ"1|Qxݽ/FL'FA&vUqWbxu YlQ6̌,ܸ2++|X#v*UثWb}GPӬffKku3:8Y??K@<1%(1W7sj-ԧeWiE147H?]M6_= 3Z*sXKnoo^=%}Dȅ}UI>rU*ǜ"y\/{#F>+d[ZMq_UKՏWktzXXYn.`xUf~WIz_B׸}C?_YDտ /t+KC|\I Agur[2j^iRY^|=WUKڏ.Wzy~_D0Z _UGv:}=ǩUxU/\).%;pȈ]UHO~rh[RN5IztUyv[A"U&hّ¼zpQ3ƊQ1j>g{/}z7K͔L¯s27Hud$[hQȫ)Ea ַpi6sp(#"%zXhsUKz> вL׭`iԔă^k7S֕TsjZ$bY#5q)*1T}ߗu)-%k;{ +!T/lS$K/$3Km$2}Yd`M*y{X:|.DU/ W0H7n~;eUb?hH~3}NMNj[vEa0;\^gKy'x]'3#H4yA?Kӯl{JB4i\8$Y)m[(FSX)[H%F5!'Ad7kU]v*UثUT~z.]c~uN?#>I َ!/ٻ6ǑAbqsGQUO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثTDN]M?xsȞ}XUԠAe(# 8d q/鼌f-L ^G'x}29s .?)<|IFjSג9p">+Q,^嚝nLK1bGeF[kmN]2i8M x!/ų&K);;W̷i<^>8x^>kfWxzM xӾoO!Zw-ߩ1 Nſ?%=2裭(Va76KSq[wአ9heY]/,4z--tL H[)1V_/+1 i)yQLcFuʱW"$_^bn eM\"1gow2[n ۣW$vqYS3ƪyh2H俒d#Ԓ{~+Z1+t҃ꪲ5i:FәIV>~RsqM?&Xof5 LMi5՟.q\OD\[!u ~IhE4\GW:/I1Z-S.N8H@KU䙽IaOz0F;-GW w$Kl#  ef[x$ob}&4-@ٮqݼZ4.v\Vy\ZGK C\Mmmc&m][}Z龻$&FA8 qj^qu4IJk[/SWK٬ŕZۃ,kO SH]ծ|ciXmdƳ4.7-G4r_UF{UjA,Wvdt=oYgZ̪KGheABD;7fd3n+oVEU5kZLŔy+$z8?ߜ8&*% /u FDXKEg(] ,}k "Bꤺ޹iOoiqtT!{wK^s4$WgS:v[ͩ\ |qyjsH99"#z>*5u 2o5z6:5@ַgђ+~OBHo*e5S-"05tӟշK4q~(!E]0hG$ߗI>"2G Pr,|!E,e+q1Q[5wQIVj#Yx=OjȲO$`ʖ;ɳz^< jKNIsw2EX\[By8X_KQ?V=]k1/ȥ +4P;hⱒ^g~뼖*šկj [Ho|P%.,$ON(=GqTN{k_Q&+s+N6C?W%vX*bemlvHmKYDqY7ݣP(euSOP:EEv5m 5. qosq4k 2h/WU|oi zZL=z)ԴVa$Cml<>/O 58.lt G[n=/UVFj,[m?C$*̓pwZ/4~Ī4qt޵(ϧoXsuUf:;#~IvXK7 V+nc^w%(Za^wLb,ZgNVI,rOH蠅u+ͦ_ɧqwrMW[U cHh7)>^*uxڝX$NISK#ލ0IЛ;hTO]B[_RS2 d}vʧ**Z[+[ע꧱_a [xēDә]HiQH4oݪ*UثWbV[Q);v*U׮m8l$+f;$̿fڗN'EΗGWO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*U*/s?Ru d?$׿!o1Mw?N?鿏'fUث$yaQPUqWb]v*}7N;-a{WWmM~J>&lUv*UثWb]v*UثWb]v*UثWb]CiuMuk ֭IcWh% Uw_QWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbGg]v*C6F|C_wlmK'm"KdO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*U*/s?Ru d?$׿!o1Mw?N?鿏$U!{{}N a-˸7G)ک&T@E,I5̶E8F|֗ci#֍`еebE+~٥k.^CFs,13/g+yORЧ5tYLYX䍹+Z[ % pf߼oѐyҭ?X_2m WbXΑak:aVap#UiW kƐy֓D^i!k+c+(mH|n퍩qPX\wO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*U*/s?Ru d?$׿!o1Mw?N?鿏&E*o{4sA4gbZ 3OuˊEޢE&#?⿭o?8$>/.QvWĝ/;4IZ6 ޴DeKY"i?x9ܔ 8#Ώ\Q闧[4w/1CGŚ闟S̯xҷoH q5;fNާ+Vq4%$|O jloy|gvY2ͣyMZZ4h?#>!/88^/|)^'K?=;Q::_laegӠ%n_[e6OV/A*t xQ)pIdZD}]=VPumsa%Ʌ#g](Iv®\W^燆g ۯŠNmo5iS]7w7QG 6zjLHnaiy4}vLaYo1}RN+_>SԵ?}RozW24ɕy;f⪪*~SЌ52#R)&;/3hZ$m/ߡk:Jߥ\=9XG 5^ ҿ;<5qgǤ\mVxn^9ä7~?Օdrk[zӎ$/608kW66H$'.$?4~I>#74xŠ|Ow=i4vRmmHgEwXbߺFǹ{ӟ(kf; 㳸IB/׭[Eh^ҶhK鿻ݝWɌXyd^O0Ŧivzne^ER4yGpccydK2)7O&Vַz~^.cCה gh7"Ď/ Wu-3E$jr_^m~dyd[YͰ[dIVWEpc~a/ _0t|ɦCsh-X⽇C4=Z{I}[\@̚7:~~yn,w2,ס}$h#u48a%@KGt}DpO ɏ\x2GEq\~uǔ5_>ms_g"5)n!'a[.eI^G/Ů&El~dNK<<Ϧ%fǨmg*ٛXx('{]SM\M}$4 H&pOoydxKԷnZyO̞q4˭/5O<6&Yev+[d;/aDH [s[Jռå]^^HLG$藚3^#qF'M_$~{w:%i"=XQk^^OU,{Jo̟1yT,muE-V+Ug0H$wʑ}ex: l"S|]zSXo[XXEz-+ͨ:OXX-?Q'' k{ZZ}p.J{.5JZ_OH[;yU7ZaţyZyoֲC@OwocO_~z15V Ɖ=YjY0$Io8m}a. ɨ<VP&ݲߦj7on%vQLW*DW$ge\ 2ib^_,4BdE[Kdz0iH?biZi+0|yz,yW],'Hͤ2jq`&FIݴSW>Sz'A|q O=gOmCTkIk;#ԩ"ļVYe!O9o׼k_XO{i")%YXIRRS WdIPx sZVǧqn$Ahb[fDӸ4- $8,W1gӴTԵ u/+;;56zy7\ofMeh"_;Mfk=>DЬy%D7p9D3=5N|+~mUT^}!mgOΙڄ]YdYoh]BFc4 i~SIrz[e݅_Xz^Di`^`Q>c_'sRۛ?_yD;Riђ{e[V]&G$mFI/khȆE}WϺO|4Α&4m,hYV3ZurdX8MpR RNDڅ_8l| X52}B8m.d-(">o,C/z#@N<êktEo 5KhBnR5꿫I^q%Xq|z=5;w0%dH٤ 5>qM)iZ:w׶]!0^qU8zSzբoWgy7݆=ޖڤz:v7 q,Sz̗V NS'.V_Ơ%hm +ɮW71D'pjwCz-}^&L:X{p4V换gwo +8F+^X~/aV7}9&djiYjl{Nb/ ST~ |/<:~[wrICq+75]>̜8^OSԀ$5=?O-n &h%In!kn;KuOnMϨ )x5+{wKCҴ2հtPݺLo}QX%C4E Ɠuu<æ45tN!+1IuI"~):9>?D2s=UaC%qLK{j!R?Hf(RknK8K"‡b]v*y)&&ʳ},M !/ٻ6ǑAbqsGQUO? 'A99+Wb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*U*/s?Ru d?$׿!o1Mw?N?鿏&g.M|/ӭd .`N UM~挒Ҳitw_k _̼%XL)saH5Wi4[9J4CLTJEl@2)s$I402e46~2\aߣgenj/K|״k-mZkb "9PsBO\[_-&_ڃhKZo [ˏÕ{'.#¾_ZJGFӣn\Kq%Km$ٿv/':̆\FSL/ZZ6ym`KW*V58/ fHc)}__ }奎5ѴJvKAm;ܳH٣Xs&Wo/пLckZ=_wp~j|<Re?үe6_L'#B􇣥_^F[˗(IӪFG?7_(K}g?T}/O8=|_O_ RVZt\EmFh8*UTQe+ )Gh#:^lֺ=lex-"H#2XTUQMDnFR?/t CSo RӇ/緎['2G]89.[+ ,w_g{Uo..Zv.^_[diR5UIOcWWqb]ji,Zk;dreoUxp4ߔC8#:4!ݖ8˴$N+n %U,|?/i-#pvz~/X(!?z1q1 UbǤ;K -F{q,*X*|3W{IkSXޗzyq P?.SkT )Of֦XC\ $}D_I~60ɲy4^^mF$k8 \rfoX-fDY> ]wcbM0SЎ[8RG20AbƘ.&K}bg ?(}8\LxO@ U?}^?yqgϏa Pߖ>M>/i7T-m={8%⯧ |<"J8I?.-Սܚ&ZbE;Zd rXco¼9Hn<&,|mcwao&O֑O8Xad U!:D,:&r[5-a[i$Hw'&_OLj/ ScџO__PWO>χÏ^&W@VWӆ>q%O\xOW~V]L/y$I#wMү_CѻSn2$jYxF]Gv&Q]=SXLw)F_%(4Lj/ U/mn䳸`)&>),*H(Lkk'x T"_]Juf՝է;]3–Ԗ(ۏբ2G;0%ߕ[M;D,u-a;dDUx QZǓnm5 =NJ^BEe y/ R.giVߢ_~i_W8}j~MW[8;x=?JQzq=v8LE'iV#mNxZ>|}.?ݧ U[KɨHm&-u!RlѪ>/O8 U&D,&.l[m5akh%t>%_Lj/ uߕM2+浆I'23Q_Q")iu ݧtk{wY`+t9GGX++Jq SnX[Q"p)#GvɕY}Gv~X6Y&KͨgkReȒ|z'\AxJ'O.;J0%)Mj$XTc^?I-ZE-]̯)oH@R#URUW8.r*~墆\</VK>kH幒K[$N.9dH!bWwq#C ;@'n_x;OU_62ONT6k"BIV_}'b.@iiU]v*Uثο95h:-ח'Ԛ{y%,^SMEC}ou[4RA1T<١jWѵ Zռ<6nV E!KՊUS N̝*o$:].RL\Y]Xs+^JoGjIt{w̗z}ia$d]3AqdeIi쎔zҵMfvʡ?/4.G}{z\m~ /6)f$/iOLmi.-)yvꦺwߘ/}MB LGs%*+8ﯙcU*?05]c:Ŋː]+iԭ-hXOX@:>al[ EVVRe K=8 4UX֭$zɩXy~ױMp k}jSGC~o|Utְqvѩ2ƒ9HH+Q}X.`꿘Ǯ[ykBm=-]E,I4J2i\}/JEU:^s b;[/R[F]ۢ2k)xre98QƪKyEֵi'l[*1v]n].K8mm$7ixc>YOyF[fJcw54 +v2a?]5k'5n \M'շ+WX$[xӆI*JP!$+`_tQ1Wԥ-$=;ƳU5ҬChڌ!ŕՊG2_%f~vəT.˫fcEԵ+N[My_׵0Q[JX'/ByoYhQi~`g, Z/^C9ZnP_^?8Uv~[Юmk_Zھֶ?tSBy+Κou-==8a}fTG?oaH>e23ƿ4?5u?$u$:z=2k(-!}>9~X}F;>9I pC_S Ji Rʺkkk]KOVnTC շ(m]{gȲE>^;s`I<z9B~3O#B_:ϔ:N4$in$g#CYןXI/[}Buyò!.2z'>>|95={UUKjcX-3Ss IbgOI&}8ʯnM+XtKo0M=Ic7\{;(nn.-m&Ӵx8ODGJM뭰Wi~u󽎫}:>iU"(&hB^*x*7ySf-6;p&HAč^[زx*o̫0^XyfO&Ʃejޟzm糗0KWKf.!:O,n/9MlNi}eyAK .YjR];AqoN^vq╕'-R[4U ;74ë]/m4C,6iuc-V)qlU/\k]f>\N֖[{ So*4>z^'#VaMgw/t(vbᥞ/U=SnUedIcZ,n/m˝oJͺՋ]$#^M$[=(u.ђey=fd8ъSCg&$U+j~PGm%ӵ{oެbJz7ѮOD҅Z+~s6_YF.N?rFcsRH0 <-6u:Vm& ~MǩFX5-2J$rGqvsxˁw O-'ѸddfEߛ@[ּn;?DJrWu5{T.}2[[ʶ*2* ś[%|1-~F֭Q^ӑ)v'?֑hz^&j,p8J^Çiiy>E\Owso6]*iWoKf#;B*[&*54-_6w^RZgא=vWh$76qzJaw}X-KѵC鋋+e~6KQ1_2.y@ү,$L_ h.,I<=Җ/ZTVIԸT'|&O_ˍ%ѻ,Ė I?M%ŷ/7TN^B[_Y!p)R[dXEUcXG,w Z~VyXYr ebs/KI}Uy:a_\*\ټLy!yf8"Jտ7d@^495+O/)moV54R:Rc{h~;_Ѯ8n57BXB5I"i[ev>_8z<]WZ([;kEm2 Iъfqyi'ERO&yW{RuV̞\[h-8uT%n?Uyk'VGMaYZtKkcOrֺӞ3lMcꥴ^ޘq0|Ӯy?Zjګ"fhKwihw{VbnR i2|_k=|PUثV7^y3䐭2cj_;ly':_$u]֐f KQuӰӖ '^dHGY_'VY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZwmERl|EY_'VZ[).~]XtԊA$|OU:s䧎ʐ:]PȞJ?$׿!o1Mw?N?鿏&[?tD֒hdEXZh8znЬ+G?\p +h=2+zHd’=y%1Ʋ7/&윚Ajamen&8I$dc _±G8,͙a`v*UثTXƑ_w;\賛8usn1^8$9v^>3I4_*O0`ԍl6dXg1)ici\?u|wH|1-oA ZP2ыh[oJV>SȾ_FKX[[rVY[X'9dif8_ֹg/!gBҧ'mCyw-[ą"+%{"]2Ɩ$A#*]yWN/txOZxu 뢳qXssvopGUPOӵ-:EԤ$YuD}cUveWkI.p>"~S|~ kԵU_,v ?qR_<~VYyO=N_fPI-8Go.@?mm<Ϋ:X_/ιhow jo,F!,;Z#}0q,\=(*^yoIP%UyumNvrAN 1G|n"DTT\Uoוt2LoP+?qPu5J;խy}NSROGoơeQ=_g,U ~M]w\4˫:ZB5P`(R\$k37͛V)w6s]q:u#.ṸH]EI=?㊡_ږm+_髤k /o~ǭ 3qCi=nG,qIڟ5y/c|%] xVYgygWOQ>o"#R:~JI:-fkh\$VYy6y[esۇї2Zʯ"jZyekwenPI#fQ/fRԒfQvh_Lw?L8}#p*My $ӤH5HFIqj#t[~Z5Xc|g'}wGx*ȖգݮQY1uw-A v-$D'/2 <7NjS9xB3N6rsqB { ğRͼr(_׺k|?ѕ PiZIiw$#WHUdEY#eu nBf&65+AcvV7$s [o|P#$xz[w6Z#!e=\pJWĚ [KkQ-?F{k{79\$wz-ǩ+z*79U_ 2$;ьD#鏥s/-}w w/HWԶF߾[}=YFoOCYUpeD>"ƋoE w$J_ޣ6>&Lߵ&3U娙8N_~K//Z:B~nާՐQ8!<Ҕc}0h_4o~#w.{󹞞7\GœSWL}.id#|"[W};;Mf&t+ޓ%~E/o#}- Y,mD;YJcXn>D?O]y_/1oK[C$z*b9ҕi}+&*/q{2kjܮUi 㶎YG%-Y* ~Yд* [F]p!HI^W $zrH튩i^UӴ2+֞+B\z=bݢ'=hT+S1KNu)-5]QX]a6#@DRG˄+*>Ⱦ_u-A/fnrF8x3C%E>CT^d짏DӅi٭KaNK;~#G{k[E7n1SaנM8$U1֜f/8hOSF^cc|^㷍#qoq-b}]VDLe_/AyaQP4]v*U~byZZ&oim[ Y@Q8#!UUӫj>U5 >xf֩mqr,n.do(6Nj}bG׉TUα;Ei7UM\XG_W)#/UER[Ϳ-jhuZђf3}hQ좹MER ܞx--suWU/$y̗V&o0Qo43Y2]\H{BܤS֎Y.UMto۬W1źqfӍ%hI5͟-SjڮuscF$kI9Z֌"qIoMVai4+y4^M}bX-oukFM:3h=i_ OUѹJ GB3yY]j=JGMO2GuCX^}\ x4sIC>+ZkM7R6>VSXdX浞ڛuǬ^Yb_Wx FѼy%Kwae!l$)_f 237ZMqT_C~qڏt_Mľ\}7Ò8kv*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbGg]v*kċ.Jjj\5BAjpֿ;w}[Z!doW kcwڮ\5BAjpֿ;w}[Z!doW kcwڮ\5BAjpֿ;w}[Z!doW kcwڮ\5BAjpֿ;w}[Z!doW kcwڮ\5BAjpֿ;w},ZH{btX̅fEF$ej|" ̊Wf`J5 XSK I5[L_]OzoI&-jwA$0XCfٿ߯.xɵPU]?H%ܗWG =RȬ}c*I3ċ'^zfTz m[g-omM 31z@e^+%fseypĐͫY,jH%ee*A$һYoL?V*6g_Kk̏fdɫ6g_Kk򙿙?_wɟӿ.fd||Ώo&N?)K%:?7W;oO,n|W)t&nƬ@ܜ]tfW:ѿ\ΏrߘZM4_A-H%eTtNߵocL̟Y/7kQB[84tj-h[KozzBS7'Kt~no)\2]N4nt,#o5?j\<+7?L̟Y/yf_ң]\؍/K縲DUH"KaFHwY.^(~ۤO32d>?G楦Dt{=~#7zZk}~g N.-vz>8oO,ГM52&yb4yΈ$M5fMnNkF?Gݷ#>>;#RIԖNK XfK4~fd||Ώ͍yC2=ޔ^%)liz7s%KτlS7'Kt~l?_?D~w޷~_s32d>?G$Z6ǟյ&H5CM^ ',O/kx}W?J˧C7HQiRj:-侓RWva&(9/^9fd||Ώ:ԼOhO8}vY>.cq1GiGv8?mcVm4Wz}hdMR1܀QT~Yx>?+SgF ."@Ys,x6<gfd||ΏjVu =;JKK`[˂[cekx?|k˼~4ӑoO,ӯ?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/m׏32d>?G?\^?LIpxS7'Kt~ny3w%5L̟Y/uoJ򙿙?OW;S7'H:?7W;oO,ק|%xk{ӯOl&)? 2A],^l&+fk^a..4/$f~"ZOs$DKoF&`tyn"N{QTIIxIekPKdFa^ߧH qsGQUW`yht@iȲ Gd=T~2|7)[xʢ=-R6:\ŧ[2i.DtHW\T3IYXv-\bdb"fxVҝ9J.jm;D+i42mKk (_~ciPj+Yj:WVk6QE%ܖ]Ool}^dY~\w[KZ ?F|dūZ|^5J"њv{D_xxVm7Ŋ]>᷑͛D]aom/,ֲZz\9m𭣬1VI)VK({)q4 3+Xsէ+i94lziӤJgV"qEՖ/co|7[Q3-вLHn}9D}b%nt_(関k8yPA^OBGXA/#fnU)|ȺWZMr,,ňkcꖐ48 ]K7W jiW^aФzcl?i,V׉2C n,*ƾ ڬ wVMBnٹi+1Im; 4#ۤ?՞{k}_7zuņ wv֑_K,byK39r{\x zu>\LӴ> [sr%6֗CMn𭲛/4\GA&%\eKy LI*2FZv~>![;@FfZ4GjYx٤Ⱦ5UKx)]~gԎĖ܋uPzpo$e]v*UثWb]v*UثWb]J/g-&/i' \=7$,rRt(j_ե=;O7D ∈:*蜛*7L=y6ejrV7f]K kj/''ȐT*y~/.hѤ4*(bќ9%ypq?N'ʸ>"w?<xI8.'wO#^"w?<xI8.'wO#^"w?<xI8.'wO#^"w?<xI8.'wO#^"w?<xI8.'wO#^"w?<xI8.'wO#^"w?<xI8.'wO#^"w?<xI8.'wO#^"g=JHxԱ-"q s#/KT_PSyL<-m?R7ڿ^@{y.׮n}QAN.2~j6XW߫j2Jm^Kxf`ǃWMU#,`J&k;GOw;GEߤx~q ]N'ǀ/w;GEߤx~q ]N'ǀ/w;GEߤx~q ]N'ǀ/w;GEߤx~q ]N'ǀ/w;GEߤx~q ]N'ǀ/w;GEߤx~q ]N'ǀ/w;GEߤx~q ]N'ǀ/w;GEߤx~q ]N'ǀ/cK/M̶рĒE! @QOpG/]:ck_[94Ӕ(8Ǫު*~82zRe,W1XrbԳMݶl%T̿fڗN'EΗGW[xe^yDcsq*C@,H RIO#,F[?%I}Wm_d0zVi485\|T yO,hs}ZZ+ˋEdi`XXR_ᤎ#wWj_YSY>OV{?E-%C,m(̫ܵO4Uڇ|?-\y[E8j65Q,#y$ռl޾W-_RA/\yV߄\DS?MĿ ^@ɩD梋NX CXIg³::dX~-q'h*jТ2ʒ\z'<8ҋȅy oVH|?WMGSYl,xeJ帐n%iU"xv_ tkGR !D"@$gHУ-qWr$77ְmSbxU#y&y/?&+yJ]#RӬa]NwԮV)Ebvv%G7^{t,e rȖR+Y,$yc$׸?|ՙck9ŽϭMps+qvn/[)!4]_@;G񾊀Fw6eqNn9'W;By_cmې_ Y 5(h-Fjj-/V/VE[GMꎓNlZM\Mk -pLf[ۥh~SZhNKMJk.WMVQ-')'N+( |2Pn(=>Hg ,W.ΡVCx_ :[|2o;˾վ>,W.ΡVCx_ :[|2o;˾վ>,W.ΡVCx_ :[|2o;˾վ>,W.ΡVCx_ :[|2o;˾վ>,W.ΡVCx_ :[|2o;˾վ>,W.ΡVCx_ :[|2o;˾վ>,W.ΡVCx_ :[|2o;˾վ>,W.ΡVCx_ :[|2o;Ms3"BB)TZ^9WG@Y<ӏ9/eM&ZqkZj =-ok9?W__rM>4 ӄz[>/4O?^|9~?|w:7 -ҩjnBjnM}gP}!<,S}gP}!<|X]CuTbwuSŊeY?}Hw_O+}gP}!<|X]CuTbwuSŊeY?}Hw_O+}gP}!<|X]CuTbwuSŊeY?}Hw_O+}gP}!<|X]CuTbwuSŊeY?}Hw_O+}gP}!<|X]CuTbwuSŊeY?}Hw_O+}gP}!<|X]CuTbwuSŊeY?}Hw_O+}gP}!<|X]CuTbwuSŊeY?}Hw_O+}gP}!<|X]CuTbwuSŊeY?}Hw_O+ jKص4HU=OܟCxڞ.ߵG<Ġ pħ'?uFֵ\뛽m1ĒS_D6oS W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O++_#Ԯ M'xP\=Md_DG+_B$ǍS"*]yMk{RyxCFuf`R(ҷq|*k6A|YJX}U_9q=`@]=BW2˟..Zq8D|l4I$L$,yT+ ߵ -wSso$f1y NY3)hĊ93$A/+ 7=[dÏ'fyxȤ&+\hADXc)7FSJX~Lj;8wxJIM=HC*Op9RkFM_B^lN綎kyI 7*&!e("ASŵiԯ$3 lNq#X6[-޳AZ{˄ @2bA*HT]3\l5fLDXq +qee4?kE}bG"\_VO:zխ(a(I)Ua\c9r(3CxӾq#Zw.?߯q+NW'?Ҳ[K3EC&4joKu/&(}9^#H_&: K(k4Ƿ?$2ôJ<0Z'ղ}~tWcy{KFms&4yX@YE+gP<$1Q>/T5Z xx/3__>٧-A~`hk|i\hLXh)[gZN294);A5kSZI8u(=?cԼi=7YS֯.&I&{-6}9?f^$R4H)&޸OI9i~ik%jX]ԿLk)y 6mnb'*78 Ĉ=ߥ}(ϓj8/ᇦC$SW.$wLјRzzjj@Y C"/DJZҕI*.d >?m`UyYMK=eji:GqirBOkDթekj}`=e?]yq(ފ/oNǔk בpXSX6PS ڞف72Kdy'JR3js^[յ;uVdxbgPV?c.tCVm&nх()4R(f%?៏/F}@%eWv*UثWb]v*UثWb]v*UثWb]v*?nܙ+I/%m֖bYVbFٲX8M/9$AS ?j\I|;\k7:&>I܉!FfNQ^ p|CϬçǬ\RDnda_~. *=mL. O=4d(Z0Tq' Uys'6[SWz_yhUF~i?o}C궿WOx||>wTL4*; 2^n1^Lƃ`be0$^~^n,ﴫ{Xb)fhy/?gT/(ޔqrGGj~?Uǔ#(pGpwm.K˫}?Ʊc4{HLsF=gynړK?/,4O#\2i3LjR ڬ*nN/q7z^7)cy_ru:f%?ԅǙ, ӖF4Tvc*DI> 9IS]?1HGgb].-钼d1pn̿yHѼ)ۓ\OOҥyE4r꺭Caw|XN2L V}ZQަǡV[T^[Γ%4ƼIZ'+KBG55e䬙f,iߖOf$giP$+cݢl٘5ǩ*F }nTY.f ss%40 v,6 XZ~\ K)47iy%t1Rb!Gꉮ?ueP#+J-f{ORY8$J̱$Pb$Hxݨɓ R3+KWb]v*UثWb]v*UثWb]v*UثWbR'}{</-Yiu%DZI.lC/N?&gH"us{9yBW5ι3]@&I1INkx|*`T-eyq{oo'9酵aV; =S|~,UwfUrZGopbX;Lb쾌ڏ~$"ھRzQ4ǒ&ZAp-oFgfg36wW6ǫ߬sȋ,6 9-H$Ut,_~~Jwx|oP kZњuK4VVrp8rpE~%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?W~~Jwx|o].O+E%w^Z>7}W O'ߢyidߒ]^/?-?T&jR*LlXxCKb +:$t]$hmh4p|2ܔ#}ɿ+ X&xMmN?gԯQZ_ohLj&ohLj-;яZiё S%gHK%"?g{ieٻ= PHBV1iohH]?P{IGg2UNDa%OJ߳Њ74` }b?1 N74cohLj-;яZw#}ɿ GFRYj0QfHix[rٺzQ}ffO[j쩵VqwO[e#fZc"X%O:*e]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*U.ڧO&Σ?Wgbyom<Ǣ&iWVz"u [yl.IKHg#EÓ̝&!,r '!(y?>xU|sX[Ě2iwЛ9ȉ궿VX\,I#XZ]zG儉7pqaB\sgCx#&k7kRJG?MHd6%%9\=_T`'z;C^$Z)/ULuu[ϩƫs$v(#2$q?FvqeOxr;ki[}/_\)5yt_ ^Dt%"I߉z\Tx[~c^-5(>gܬsR?+J斷їOdo@B4sqg/rixq޿^_HxcdԉnsWb]@^1)P.Ҩ슻v*UثWb]v*UثWb]v*UثWb]v*UثWb]ݣc%PDEN|#XixuY=5k8O/"Rh^^,6>Ie!GL'>k1p ^/ +^Y49?r1i?\ayL?Jcwi2G7'_+ΏIc̟Yį1:?5K9KO(veˏd_d/1:?4RFąԀ}y/jCK%?G=_%k,̗Y/1:?0=_%kY/_ct~a{/KI׏2_dÿ_|4fd1mo Bh?HiMYffcə&o~G?'KΏ*O?^d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8wD~CIg̟Y/q:?0މ+9?_t~a'Ws2dÿz'O?d3O?^?g?L#K%?G;?ߐ~exG?'KΏ;w!3O,8Bjq/4H\A$HZL Ш.O,bߦooGG_?·q]_gHc+L!ĿIƿ1?c?{?ޭ?S̽ӗ_౗0/~v_]q?O&~o Y(?lFWfq -WS>_'w*6~?X݇Ks5PeOOXX_MW <vL0/RMO:zob?C)ӓ|?8fثWb]to]klOTvE]v*UثWb]v*UثWb]v*UثWb]v*UثWbRS1"`"'>H KW?l??H>?[?s/'gvw vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsLBc]\_wj;W&?ڿ!1w vsjgoodies-looks-2.5.2/docs/images/netbeans-default.jpg0000644000175000017500000056265212003555452021355 0ustar tonytonyJFIFHH ExifMM*bj(1r2iHHAdobe Photoshop 7.02003:06:22 14:59:07+a(& HHJFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?G+qs׋?~W7b,iN֜ ;5άzjutd{P־\kVV5'ŧx1`Jڒ:7={ ==ֱ;d֗޻ös}{DGJؗ1â5sLp.jY'cLrwRSeXh]KwYk {ƽ')V no{[kW7\V yEnuՇ01ۿMo- faC6ߥf$j,emlr׹S?bx C%@_nyډ[[[v"I9# -.gpnsssHSki_Kz3eߤqӸl=Fhz|%9s{?tjtgdN04}ңآt?~ξuf=K>OE7(v^I;goGU}z| 6`{ӻ09Zhm/׻?QƷ\ 4WevϦJlw{,æƼ+KS(Uk{rEG'Gzg\7+:cC[?͖1{w,Kkmո3үa:rfN[Offs7Ă5Ўy DAĴ[CN6Aow-gduHm8PvzÎ?{E>$m-@5֐׆Kn6͞YuBf,hlv;luXѤS6H]3e 몦쩍;[?))^Xl Z Y5?=c{Z ϵ۵ңz鋘[;6DO=C߻[|d>d7khꛉ}b;g*U?͡thsF"w%Um^6ͬ>é6zĔč`m saS Bu_q?G2Y'G«n{Cd ֿ;{9MvUdmݭ!W݆G*U]nMRG=mM2[sJ9ޗ/ӷ#Ԯ8tXƽkc޿-.#԰C{=XԼY[ .kCIh-ΤkfFu?>5X5$e# _[Awgba/3" ]_{?=^۝nh s,y:ٵYE2F6"-$w) SQ`6--sYzJZ}"6Y n$n;[)Νgǰo׎uD~o+!_iΏnQ%C~'N.憗5:b:#x}K7~v96;NK%J%c-FّP$?%ِc.w?BL7[g=<$?R[#7ʗZ&+MuwEDOY3γC@t"Uo?ų#*G ԵC܀?:eIVR1XˇTh Ovٍ[V-~Ɯshӭwup|gu,2=CSͯ1 5Cts\\TաМ}kpc~Uz3t醝vވ>GZ[ֶ'nܴHiDi'S̏zϷ2j¨6k^NߦS"Ց֮,,~>:I#lnmn&}nP"N.|ؑ$պs'fuM=ӑ)3;;anzJg){691 X\d}}]}N,c]y]YoVd[[.'1ZJSo06 OAt43He.i,~vP͟`s@o?K)224 [7?յxۣGw潋7;]ױl mh-;O"IhiGw;+a$-~u7kji?;$kvZ*9XX 3FKdVGok6<* ů *wW8K]'Qvz9/7ԓ}؇gyKyX%~;>_8r^_8rI/_s)mYa4.t+p; Ln~?qb&wwD]Photoshop 3.08BIM%8BIMHH8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM@@8BIM8BIMIa+ Untitled-3+anullboundsObjcRct1Top longLeftlongBtomlongaRghtlong+slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongaRghtlong+urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM Im JFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?G+qs׋?~W7b,iN֜ ;5άzjutd{P־\kVV5'ŧx1`Jڒ:7={ ==ֱ;d֗޻ös}{DGJؗ1â5sLp.jY'cLrwRSeXh]KwYk {ƽ')V no{[kW7\V yEnuՇ01ۿMo- faC6ߥf$j,emlr׹S?bx C%@_nyډ[[[v"I9# -.gpnsssHSki_Kz3eߤqӸl=Fhz|%9s{?tjtgdN04}ңآt?~ξuf=K>OE7(v^I;goGU}z| 6`{ӻ09Zhm/׻?QƷ\ 4WevϦJlw{,æƼ+KS(Uk{rEG'Gzg\7+:cC[?͖1{w,Kkmո3үa:rfN[Offs7Ă5Ўy DAĴ[CN6Aow-gduHm8PvzÎ?{E>$m-@5֐׆Kn6͞YuBf,hlv;luXѤS6H]3e 몦쩍;[?))^Xl Z Y5?=c{Z ϵ۵ңz鋘[;6DO=C߻[|d>d7khꛉ}b;g*U?͡thsF"w%Um^6ͬ>é6zĔč`m saS Bu_q?G2Y'G«n{Cd ֿ;{9MvUdmݭ!W݆G*U]nMRG=mM2[sJ9ޗ/ӷ#Ԯ8tXƽkc޿-.#԰C{=XԼY[ .kCIh-ΤkfFu?>5X5$e# _[Awgba/3" ]_{?=^۝nh s,y:ٵYE2F6"-$w) SQ`6--sYzJZ}"6Y n$n;[)Νgǰo׎uD~o+!_iΏnQ%C~'N.憗5:b:#x}K7~v96;NK%J%c-FّP$?%ِc.w?BL7[g=<$?R[#7ʗZ&+MuwEDOY3γC@t"Uo?ų#*G ԵC܀?:eIVR1XˇTh Ovٍ[V-~Ɯshӭwup|gu,2=CSͯ1 5Cts\\TաМ}kpc~Uz3t醝vވ>GZ[ֶ'nܴHiDi'S̏zϷ2j¨6k^NߦS"Ց֮,,~>:I#lnmn&}nP"N.|ؑ$պs'fuM=ӑ)3;;anzJg){691 X\d}}]}N,c]y]YoVd[[.'1ZJSo06 OAt43He.i,~vP͟`s@o?K)224 [7?յxۣGw潋7;]ױl mh-;O"IhiGw;+a$-~u7kji?;$kvZ*9XX 3FKdVGok6<* ů *wW8K]'Qvz9/7ԓ}؇gyKyX%~;>_8r^_8rI/_s)mYa4.t+p; Ln~?qb&wwD]8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:cb9726d3-a4fb-11d7-a092-bdc7d824dd88 Adobed         a+  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?뺆ir^7PYOVE%WU^LFkAYʷYk671h g|AV5oR8<1Tv*jlpڶc\  `r FVXr'FjZuB[m"<$,j}8W݈Q+,qU C%4jeǒbk{xmIE `㒲YYMU*miR3"%$x 3E)SF6d&]g9E$WI]x⮹Ti'F9335UTU}+[ѵvodsi*N TeSU6p* Q;$eUWF0znſaտkTTm⹶'H'JUee5V*IcHD\\#D9!V%-)PX~M`uNbd@`*5R+!ce0wIWS%l}edzoIr3pZp]—*7wl-lwIWSc[,ʅHGKb,JEY403FdAKN>}[ޯ=[*qz߻yJ]KN#7P~/Q}CWӯ?OϏ_*Tm⹶'H'JUee5V*UN[R hy"" UUQVcm-T2vHʫ*$aybkuKf̨G`2Ifiت*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbXw0d<&-c͊dHb:ƜaY'i?⨡w)N&ac,/Q?T ^AKA^UN_ʼduXe;IMi'L.-ҎX򼳙~PpGLm"VYؤ Y&JK#9g,U1$]-Z3_zWU<|>US #AֿAwwS7\8~:}fz*~}[Yvt۪*jVȟEiOƪ^E3 }HmxtR4Q[h ޒ&_y5&{w1V#qmִۖiIӍJ\^+Fe*8[yc,kRkv:ܒ<+3ZFOcZxNw?G9VoqwqzX^fWx豒9 hbfYIveX E5YSucl_'ꖆh&r$X&Wpy95+F Jnvfss?זo˨ۃPLU51~cXkYhjiؙ&XC\h_ jV4Umt[/^k?YRy}5 JzrvتUk"'}.8 KۺYTb0ɭiWzqiME-Kj"82HN,W.cITW>cu˘e ֠MnMFridj[^6iFyY=o븪~ae3>gKz<'oMoaKOF\U6ϭyn?1IY\TI-ڗr~Tig_$rzqڗ5^;ա-Ωcm MpMd[EbzKʱדZW|YOiwGB[X2^j3=܊Vh.lGYz-J+o1}sŪ &[ORnYGn5aTy4[W>*.ms _jrH.q"AՕAqQ>~/ygcԻՙF*<&<ڿcAe\Mium<%0vK~zSrپ$ފ5>.{]Ӥ26cē]k~]G3/V~DF͊6yӒUQ]t+ A]:;f]#71^з>2=Oy.Y_5i]Mn qjڬsX[,Ti+[GqjzF*|ͥk+2D[Nx<ch!EͿd?褘Ks;66Z}͜z=(Dd "wo%iZoG\/Z[huE2;ܛxզ:c&hV%jfHdUF5V}kXz|JzUqZ*"+k&ϨC@9IG4ldZ^_ZWU k/9.}>ڤz 1Z\<ZR<,?}Ի[ih~q|skuAs.w&8mV9V᭖_4bw8q_͗鿼Kޝ=/[s?yVx_JA}&h\z06Lu?WH~?u~J+ HrƬ&[ڄH6Tuen)$ Qً>R=eK\j,&/}仍c]մkyzGa iNh,.m^]_9?pBR?\j!Ԧ VP_d_rXYHyOݦ*AZj2i Ky7Oka-3]דT $s{DU.򭷘thH5DN-Y&k-Ši27鼽?G*1\r4gHK4L,WsyN4i/Wop]* 6:u5aܿ<%zr=9;SlU*ב|mms>{FUUVh1V!~Nt먥𾡦Ვ.Yc_b TU-泸TմD#)=eJJSbHW־WH}c?V>\>"]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v**p3I_w c?gUTHΛkc3Aυx^\y76*3I_w c?gUWp3I_K/'zysUZpޟ><k*3I_w c?gUWp3I_K,/o8S:tW?NUǓqbau;m ]k;~[՗` K"j?z4#RmAh[WeL1ɺ0 ]XB){ݼYۓay -:\?q^iuwL3Xܽ?]-9\iC_,)^/ <%sRY)mn!B1Aq&~)7*'HޓVH歪ӅiPMP?/<5 ?nyǕ5 ?nyǕ5 ?nyǕ5 ?nyǕNUOs#FN Gh#o25*S>K ׊kG<)"}ܓocP?/#L5tRIXđI"~˯,jUNdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCdžI7_GCʲ,,Гſa%}gN$G8#8J'Hw c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUWp3I_w c?gUT?p  [‰Ȩ,.^["I[eъ¼|_ov*UثWb]v*}_It%YZTDWF+) #ov*Udc^QSbh&n6wvxQcfwfVDd1B@K(jnZQ}n<*\kN\z|UJ-ι.#\+Ӑ(_WәLs ;{=8hmըYnfH"Z('DZSu 8/q GNsOjΊȌ\D║Tf*UتMyEuN.XR⳱;Z26^!/Mmm⹶'H'JUee5V*U5 /$$o }FGe֠^Hm>SpUv*UثWb]v*UثWbRb?*\'?ܠ&Z]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثW)^sK97Ux?*M×}ii8(H#!?/uRhECIzmN@4-SKk2} YJe@$qIZyxm,Y海Y\O SOb$Y$2./P}%d8^MTm,c t3ȬaOpE rȫ,4ER"Fʤvu"YuX/+Wҭh@vW4ob2Ȋ7ڍ)N|ݾ~\j eRDܠ3Q9+&2 #IouiQXfSC $t2 RNFC}YM.,iNJe튯եf9%@H7}Uz7ga2b )hQ#PBGr%OY?7LOg-n(举Ԭn;xy縖NA䑨ۊ$wUXǚ>ZWcֹʷX$XK'շI=X=gƛa4=OԬu+_X4hMbL{UkiX2ZT Ꭾy>TH[mq"OcEI?!bJ仐KD>&{;^ps',#}&ZXeϒG*y4-eR`L+oU~7R(gk_/9=kUy_YΝ>m)SX^;]LtByfo뺋ߟ-.;4D7-i"_OW%֭sg!5[Qv zYe{+I,KUhv/卲Yk_b3[ůs7WmKea(/w43K ]!휟ҚUa=/mnO~OGUSATƓ?Bv^K7qch-{o5 Lܿyǂv˯5}uM MN~Rw&USk'^M.z6t_AI.$qkg"ѵo02j:b[7v:иYy46VMo α5VFZ?/~Z!khWVZs<6Rrnm^m%q4W0U>5S'H/-_SHѦ}N_-CUGc2 F߻֢ImjΫ'KDcܡdvFkzȆjddyOFb]v*UثWb]v*9ebeZYӭ9յ1ۄVG;N/Yc[5k=@b8L22\C?k4'Jc+dy[&yK<7!/XaT62V/S]9dI4O+]YIM9%kWi$Lcc"?ze@)VثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثW)^sK97Ux?*M×}ii8(H#!?/uP^c?My{T_χGύWUqTqwuo {N-MOH!߾/m!ek߮[ַR2M\i::Y]]y%1Rf`џN9կ#^KwwM"yux#W!4ۋ HDDx\@A%?w*$qT<:#$~fV$dtƛqxGqDf2I M4;=M ci.d\KrA(eDDN+0W,ۖȫ+Rd`Qr]T1~-Džx=iJ6*:w,fF99\Uf6f"Gʍ6m֥Jve{OK񪩫CmɜPHa($h8.5&{e=_ir4qp{҈o*lU ^/9!KIN?bmHx"'½_qT"Tb~1Hƭ0nZUWP7J8- Fގk.yzƅD+ ,Pn`2Xzwq$*IY*ZC_m9 UJRե ~PVsiz3JYT #uqTKu *Q+Fkw[5a,\Ze{D_gKRux{=b\=DܤF~s F6so,$vbyc$%LexXF%~ih{4͟XSINv*rP7OrN]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]RXVi-CWK>{K#Pa~Z`Hҋ0 /Tɩ*x?:]y?b?αW}^OogXw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uUtikYQ$T_;ȵO1~l?|8sSZWr oqZ+*((XD[d ]*w^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+VGsk.,:Wl$&8?GUeCZ^W<ѩ[:fYfӴQsAt'ioCna"HeWІ,s>$vcGR)w4+y{X̒Oo?'8.&ޝVQOVoE-} xf<>r q`xޙꚊ6z.aQ{FhRBbydw=XW3Iu.լv٘|ɪM뇏AHZk$&(gk&#1UO3#Y9qqw[D[kGmm+k_J9#!ZDUdN:<o#Cdbmd+<B})}OM1?[Tlnbos3UZG"-}6fdo^c+Y{o[\ s@IYw^|o7cR$u&ˆs.N!8w/eHq%&n㶙$!qwyX^v_:_fN@F{Nݿ#iw״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+];vWw^w״:^*i{uU^ӿoHexW}{Nݿ#WG_+_ڗtn4#7hXZ %Iiz[ft~Ћotş_TѢiv:a{xR[NGhT5XT)W808ˣ$QxG:WhTޏcqu=Φfh ;)f**y7:w"A4by7:w"A4by7:w"A4by7:w"A4by7:w"A4by7:w"A4by7:w"A4bǒ|+Fre4E~ʪ?^MH^MH^MH^MH^MH^MH^MH&bo-Rdݍwr*ʸ_H oUJG [\fwbaZYeqpy<ݩkp]]hC6YiH3\DIsg9*@Cj>q5!k~k%=DK(UI$^>0 KU'.h_[X\L  8@Aޅ8"ɯ-2NKka%+f=!Zye}r=}z9#D׾7 {kIɾNu}-Gҕ.&-u_O׍dIbx )#ֆ#U*vOpQ]U^)&I 7UVXFѴ?W7EҋkwGcbI4u2]$,ҿum$ݻ®K(S[۲ʍ=T!?kwlQ qw,HݙJ}lZssEUt6u~s¿xiZH!yIrUdP' |_2$R66,+#I#E?w1:)⾚+Wu!q{:uw~ŤndUT(9#_UJG [<.qyRHOw@x\~^ԯS]*}#-*W+mTWʸ_H oUJG [zGVIWҴo{pdW8}kH""y?~ѴJ:*yCQ45ָ77=w,H="~݌OGe>*MהbXNu,_KdKk[+wUϬRZմ)Tu}K՛[YگG꼾yLUqJH繻N}5-s$3 Ui7+xfhvzN>ĜP cІJ%۴hIK4j0u ]uK{(}{ "S3,VY-ORDl}USGVIWҴo{pdW8}kH""y?~ѴJ:*yCQ45ָ77=w,H="~݌z/e1Tv*UثWb]v*Uت-r>BVb]v*UثWb]v*UثWb]v*UثWb]v*UثWb~I1w.Y?P .]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثМɦlޱ]j!t MS[n*_l?򘫿A~m-)_l?򘫿A~m-)_l?hӴ[7Mp[k /VV8WkIwWkIwWkIwWkIwWkICjD=+ }Ym$nWˎ*fKkm:"J IbY.ݹŊjֱ%4I `9Iq,_qw~,UO+a늻+a늻+a능\kn^<YfPUiJۿdGF2G[Wӿ/|çz&Z &TKHZ_VwN Ɋ. o<{VX865@#wHܮgU}#nRYj2ڣG Yby!u{[H\~DZ>b3P2[AjRI+G S ޽$jG `66kEk[p]Złғ}Qk6*=OSmnkCV.zVʰK2ۉ-䛄|$Qxam?Us_{>[w/=SPV?(|+GwT>kngcJ5GU1?ۿhY#҇m|,L|CZ>_{>[w/=SPV?(|+GwT>kngcJ5GU1?ۿhY#҇m|,L|CZ>_{>[w/=SPV?(|+GwT>kngcJ5GU1?ۿhY#҇m|,L|CZ>_{>[w/=SPV?(|+GwT>kngcJ5GU1?ۿhY#҇m|,L|CZ>_{>[w/=SPV?(|+GwT>kngcJ5GU1?ۿhY#҇m|,L|CZ>_{>[w/=SPV?(|+GwT>kngcJ5GU1?ۿhY#҇m|,L|CZ>_{>[w/=SPV?(|+GwT>kngcJ5GU1?ۿhY#҇m|,L|CZ>_{>[w/=SPV?(|+GwT>kh[5ᆱk%cџy{]?J5t)S+#oc?%/~_+0k|cڵE^<ƱI4\/ՅSQ c&^W@]{ZIy"GHZդlR5> ^+&eS|ݢ.)!\Mc{m58s\CO2~L89PA'9l&kF%hc-Hu4MU~/劢1Wb6 IY<Kۀa@M=cfWEwvI2[]X~Y5"xc#Ԗ%B~ 5SUثT>YZue'g{ wїRtn,ه,UΖHGXrT0;m+;~*zkIŴee6aDb]v*UثWb]v*UثWbT$nuCv*UثWb];>rLn-8Jj~iV_Db][s=#"\Fe^>K:2*ikyQ+=9bz~y2OÊ8Wb]v*U*Mƨ5+:HIwtց⧦m9#*ȍ3/NJWb]v*UثTFW%.n*R%zk2̜r)i?QUPs~e8GqW}CO}I)] ??'?Sm-tcKMG$B£>#NKEyyPߦ,/U&.N$h?"eP;rH_*U*o7#\\aUR_SݏSwU4Y.0ia5@N;B몷*Vso-q* J9eV*Mx#?*-NW H碬A^yPߦ,/VA$RF.P{uV_oev*jhд_KƯkcˈœz^TlUm}ռW6{idx::8䬬+)U}Y՗8Y՗8Y՗8_BIRX2n|I/qVoX8HeMnyKmCJDs}܉-Gdv*żeo.wjzEoԵSuvΗOkx'[/ԼoOԚ/^+tSpj2L.7eC_MhOT'湵Vw2Is1TEm7ΗΝKQﵫKCt/叉ZOglȟS=>.UN.?^y_ *ȱWb]v*UثWb]v*UثWbSK?O!E ZXsO\x+ . I%3I*Ml7Y>d+<Æ~?}(9D7"k΍Ic4B4N4I=$igN?%D3R1K8Hw{iZt42US[ۈ1Ԗ[R% rAʷZΟVw:vOȎαRYÂslUWxR^M.KݵHBe!ɽkdQ^hnOZlvzs@~HI"ʡUy I$eUH<눮eT+(RD&X`?V9e!rEvZ?9'eY6'HlUWAp%֦IQ*6?"ToFt2=1dcoa[!S],q=73=ãZm|gvkX^rqrz auQOc=~'?ޟIw>p]ovBx.- rLx3V%[s0pͦg9{i1ey%a8uxhdA qiIٱ'!7K#3dʞbΚfkzzT w%M}8 dM-'#N&-9Kj((1ݘͨwm`idAus3X> mʒ|rj D2 dc)KxRRB"}FhUԧTy"Y#ZMV^ f< o,-o+(g3FT4M$LIGOv\_=kƓ^i)nI3؋e(2%ͼzm?r޷U4fSey/lnn.$m2"25Ьq y[U^ECwu 6I-,٦ORz)#H7 ,%.] dCC uyp_kS=jS<s_ʔinaY^gyRWÊMzq-j[Y}No\[O,w6F{Ksj[Jwy'5ɼŨhWwVx b!i'xg""߉$%92pj<,\ֵ;FV]\¢/Q#4h‚G鷪.Nvi>,yW$Ů-zzzmq&c/dWcǓ3b-.<<}b{HAp<7VmJ-Rx/=;d5ym^Zisr^A?qSӛNAۧL#/ c8?<1~SR1G==~Z}^xc{t`2<[@(dpDL>7_MJgn5C63ji⩑LAs^?U5]v*QOa'mls;1p]kW0Xi, BޜVV-ժ}UUYytWU48wS̜:MY]y#+-GlU5͚ZZUꌍՕ~⨿noiyY⽲{!14wsȭ-C#[$M'>(٦2ggR?z ~x>s/1o%6 J=GNcz-f/q;SCΡs嶥g$_uHp+$t܈/⮰m[OԯmAs42kkz|;Ԓ(RNIydt%U.//%R]_XԮ K:P N.d/-XG E͑S-3>h=Ɨ6r=6nY%o!'m~:|æ6z$hm6{}z> f1q9M_߼2-~*a|[H_F#Kvnl."]MEմGw 4銠?,</&!\ܺѧ"YdM&?Q}O2o6ʦ9_ARNRyK9k{$/iq~Mk{<$ƪK*a5?M^w!y})9>PqqAhYK/$7eEmI~ζr+ty:M:!l@@$|.bXo~J8Wb]v*UثWb]v*Uت]=#חM+I~*iZx W{Kn d> ohSc.EsU/+#"B9RP~~,z2S9RԤx  xqUUʚ{ um:5#޷m_q5Y&*UثT_ ?lUcIԟM_w]>_BO՜UMqp]Aˊ`K]"kM>p.$v$?C'IYY%WoRGH..C7^Ǘ/w|Ivܱ=I:mkP0ꘫʭ1%5Iߧ$kU5&Ε=żE5/ 1${8<*?翖pyHKIga. uqNd$Z|wotVA'^5=kOJԯe#>3 ̰ TB S}ZUiv2=KHڽv$Qvy< O,׶HS/&K47Ob>{wqf`vk OAzvYL=qkqʂ;ٯZA{zh縳ؤvױ\y|v};)L/?5H!Ӱ{ᦦ"MQ &[MY}QeVaisլ7Q )YQf+"$r>&EQV^fԯdwR;KIrLi/3rQ>ONӴ]Vy [ˋ=;x m4Ii$0zjD,l**?Ŵ?yRR7XG&i*5͹Un_շ9$U5uO4ONXu3yrsnc6GQ-KOIlzw, Y}{Mе yXi{6DQ-};G%;9)'{U5tOI~OoK z3ZV\3֥_MBwvwyr}Eu-NkSOh,ngӕ$2\IV-KU5y|uoy_iizhlzbckڧ6U6tt#Z x,bO~=Z-$qW?iPŬjLlm+S[[G +&$WufyX\K~*>5 7UkKK^ӤJ&0Z$GtҸu '"[^\j6s)gnrA4VDG"F+D< 2?.>y]c׎i66-Q5ƣxi`Xte,agZT_յ/T_?^?L^=/CH}W}oTZ]mm$P5F; ;NK$ WpƑ, pϊY.*Qw?_K|~/%]Oj?u'_5qWed WG\UY.*Qw?_K|~/%]Oj?u'_5qWed WG\UY.*Qw?_K|~/%]Oj?u'_5qWed WG\UY.*Qw?_K|~/%]Oj?u'_5qWed WG\UY.*QZ۔kO*hWL!9nn$f4̡CHU~HRcZTS,5Z2z^iۇdy#^OU妝oq4~i{%jUk/noi)ldTybHGc"krjwl&x 8IDbvqw5mVK/*|%NK4}E7ZAE+e][ٴzu֭8}^ⷵx-?:$(R+6VKk~)&xWq9mnfv>:bEV8QUkM;QTu-BMԴHjfeHKx^$aX eIYU]WgT}jvQX~42vR@א]Zg VXtoYc!h]VKim6(#X搪#I#v努]v*UثWb]v*UثWb]v*Uث.e}9⟛:{Z{{ a$A ݙW%KI8i̷H%ǤZAޭm 2w6O;]+9M6^˫k`'$n dZ]}e*w)o^ة[hk,o^k/No*JKqz]EJtU/Y xZ"%5z5+S82z۵GGҲ6ܷOQ]V]OWNnd9-Y.cxa=uy&[m?vES[_O^iRmB fvQpْ86>܌߸~H&SWᲕ8OkrnujxYƭ命TW~h HOOwS˧GAs,ZŊ[ޏٙT6TsHi> ׶f\CofBN_68UZV/oyk 7H };ptOR9fFtOyooKͣs9|?Z̩8x gYmd3Z&BxbH/H[#W?eߤUǀ/w)~q Tg1ռ3IJG2DHUǀ/U%?<x˿IO^2S*ʿq.%?<x˿IO^2S*M߯>,x_)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?eߤUǀ/w)~q ]J_\x~W?er-j@o /oʿq.%?<x˿IO^2S*~ekXڿm41_8q'GƩjbq]ݲz!H3fz-ܺKr4 <ĶQFE-TTL_C? HXyT}{iڜO4]:NXT:p*ȲHcBb^cQ^j֯e^XϨZ&ay(,$,]~bɂy5Bim2.xRWm@2o8EI&_CUY̶yc0\]FY4/?M AHdp?$֞uFuMn|H-yfT*k3,H[s +'"Ү$Ksйm;TD 9TOջK5呕 nաyx$+eUis68.JEԤH%qtOnp}UXWQ*.44 9.&`]#{Yn4ĞKc)$^R UFI=Ko]TUկl,5R/+Cv['k=ŹNSF=ozG JR~q^+Ym5 rzwW1<:֑Y濲`8_C*CGz5" nI4pf\Ki0x渍+[=)uoCk"iToP4{')gassIi6 ,_K$I4ckx_X _+?%KH!CVkapUWԁ'{Idleg/^^xגֽH6KJh̢h%tݞN?wW?|֧ҭ'lծ ݮt=Q3KK{+8ّ=_ܭT_|W.4,tmxkɯ$2Ok4^K"K'ªIyWI.ai=״ԴhG#?kx%UݥmkiEIUK5"zDSn]!{=9K,r7[\zXaUo.rIqh2j]j曥C#a& }jEޗ"Mw 汥C}uI 5'NGwJi<NYƬrIqTWz_-oGZ;9)C'[M={iy=XuwXX[O&C$!txhb-E+ȍn&<Ȓ*y_D&s5<3M \I$IOHLґ?w,r1To_$Ma9M<ѽRK.$^8Q)[UpRz Oד]Iizi%5²hֱ2(XY%y4 3IM埈{Rrgd$G˚0C^Y(!_WƑi3얦§ѕTR}ES/wIax9";hgH-?$,o|Ӝ3XI*@mhIB튤2YZbImoe%pKs,Ol~ {XyPWI$HG<@WXFx8UTv*UثWb]v*UثWb]v*Uت;2-2dPUثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*Uث0Ťi=0Cq.",|$}&p~׿7#Sb-Ww}C8IkOMVKC? HQ>s]{Wi/#p4j,?ݰܻOz~ mj, +7wW2lu B $x#_M#ui}(j4"j6ZV7wvda-δ#yI8~ h/~Z $ AU`+:2<3B[G5hΝˬ_jR7/xYbcӎ;DIf)dV5Qidjڔvח\}AD-d[(a xVme[f)E~W\C}qww%;Ɩ\ji)yX8XkUEiduw$r$@[u5 }VHU⸽FHXeRo#U~CKCwzw\ x"i8*_$,ֵ\\YӖ}s`YDx,&%Eux yJ?ׅzU,eHn]$>%(IFnqwTZUqaI Hma/cESm/޷+NFoy5;WSබxf\#8!kFH"&Xi@\~ZimsUԵ!#+]*H}8VK6"ať÷H\UBy.t1jewSۛsVZREyp^?4JſA4k/`{/A1:r^,ލ74ʱ6SjizV5.חwh3Ec6eeRʺU O7 VM^0G5/ >SZ['_.*J4lloD}-usEVS5b5oRUI)4 gk6M6Ioq 3۸ְ2Ķ]|XdU彼voR2imut"]=Pۿ`e8oy ~ŦEgqw"Wp^ۙ2ZK}t45E􏏗UN#MmMGYZx(l__}_ҖQB~fa_.髥sAW\c(OʜŚX*V강uViu=2I-y\[CP[`E,OV?RuVoM8nƫ~H[NHf."hdtHocoO$MªUj6w:Rm;Y;_Ei#39^w խYe$v`@њէYZG1C>/ubʈhB޷$njG{fVe}__|SG,(;fHunsnC^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x:zx|=n>";gY џg//Fşۏ KчBn|D)J')ZDi dj?*cIC? H^|?_y`BVǬZot䲃Uӵ]Nޭ%dE`I~+04w/fHRw柖Iߚ侴SЮ&g-''Gpa| =g>`-*u0H׭;1Iͥv/LތÏ.yqAO)2rjV0L!F+CMdPV[Y8n;>*Q4~~?́)b ;̶Q5Ž[KŴ)HomJBm_D~9?7XuGUX[mާym%:ca2Li[Y>rvҴ ukI㹻1+zsyuB$rϟ.Kjav*UثWb]v*UثWb]v*Uy?o2r>C sYTK[mB&"kayf޻zyw&k?gzh2 |8TcXr*_MͲdvNV[ki֛vp;"2ͳE]HU#^'<''/&z!#qeik {msm(}>3[^Y㮼4RƧ3" 8B}$JP}Bޘ=C'[oA ͞id%vk&9-[oӋۄ?.󺽽\Ɋߖ1M7]*eiҵե5՝kdyeiyߖ[ԮtsI Qd-E޶Iw"aCґy#{qo$KU(,g7WHERMu?bDe^9S# k'r|3OwpS7WF# h!2ԏԑ?ZIV G(PrCO>umu}oOgO7^4lO<4ZK8.L$ ::OCDѻpeCr*o$ytۤ";w޹*%[U(T:q K.I\iYoq,VKo[E-&h=!1_bW>􅿭Z\V/N?/Ŋ|Ӝ3XI*@mhIB튺\ӆmiى.^=`KV[Kgmx|]{u>m k{$E - pio4 c7m}/sUOFl쥎粒{,%ߜE 9m ^YI5So*~XH +yY&K?V5!Vz+_Oz*7-ѭ^8OqrmQcIm̞BO?s]uo,\XIjMK;F&jx#{o*b>֣l=GOZb69TC? H^|?_y`BVǬZot䲃Uӵ]Nޭ%dE`I~+04w/fH~Ng5MQ:u]%]gXֳ,/=xRs"BKtQ.mZ& ] %<7s'೎yoOҒ)/.uƳ+1&,Jok娸U! -ޯxO]-Xw& ؆/s}/K/yUmh2Y$iK2D,rI%f&&"r?Ly=g1Y0[?*]yVBKR.{%݊H[%\= gO5̪/R,kh[ͦ[[d&KH׏r׏m ]7%5Ro&ܤR֯vy>3~ꈖXKXKU@FNԝtOR1-⸺k=^ S\$[5i{O4b8nRY)mXllK'1\E=ӺY;I8=khUi|ӵ4^~ +VOFi)FuYaIZ%Xk{K{[OŧdWb]v*UثWb]v*UثWbXޏ1s6,#}1̭)4d BkMrz"ػ7FUDK'mi- Vi8z~*Ti'F9335UTU⪘jZq]Bl}/܉ғ Ybxμ~*6p*$v@\qULUcڅյ͋wA*H=YxʨKFܑVQWb]so3R[ܢ-?VUy׫TԾOÝxٸk5m-T2vHʫ*$aybwzgwP[dTqe<\חQWb]v*UثWb]v*U2v2^G=h"HT9FN*[2sGK);uK,uzK$RTY4)s$,ub^{ssjƶ 4sƍ(Sk;z'65Ij&K.m#@NUT~}M"Tֺг,qfI$_LӮ'! sMqFN^w8U97QWjڜfiw3Yt1q#,/$x' ;8yxQz:RAشM,+ qnD I}8Dչ-(xGUpf[.kee(ZI*ҘYx7;x%xd6w?ZҒ^5љxJ7]֌͊O?^hfmob]<°ZC!6X*i>omOP84\ErPW HBI?^o*-WSnmXzvs-8B$x"}e5X4kMtVA 32 00Fk\U[Pm=?].ԯ\\Ӎ+I8uۗPz>Ǫ$_Jd'M߫WL.KEG H9U$^.Gmt}RLoY垨8-¤^9VOEWgm\4{xP,pz>9[NbCS}cMnK oIf8.\DRYwu]뺤Vս1X}NA #`cdhݢoMˣ$< rrUSFktkȣלpҠҎmRMiZV#6q_Q=7 iy6zmn. ZiWq{KK Q3+x՞5D'>TKuũF>a>V $ҕQUb5#%Ipߟ tcߺ_a U^`Ǝ6 \'poqV96_Ra/VS%-$:C,orG!Ѝ[UM{/WV Z[}b%H#odDUP7wږӖ5y"b{OMǡ2V\RAƲz3/ SZїT^Y,m}Qp LPID3"z:fgZ`)KȱIn/Tc0*0RcGbZ`Tո7q~QחP_N.ZI+4t~! >~s#j&[;ۃtC#X cxeUW)NKs"F̐9D4r2C~!,6I_Ki4ZtC /WKd~?S5Q]E-SLHVaksqwNpޜ'H!$O~VUrk}Q=2gV zijUY6*UثWb]v*zqOEءثWb3;CϊتOuQ֘Cg&/C? H^|?_y`BV+K[Y!6e*#)k`C?妗ޭԕ<;$NE|>. 4k;cC$n :0*x8A]U`Lqf!C,2!4LjI2c7PO-3ɖW_Q[EL@!Q ~H(̍idcVH[[,Ji.m^[kM;u[4NKkoEU)?.#ﯴo:^E*NַOs8kQ<4 K46j&$K"VoyI$K+:e_yS̖Zlvu|s=w1$qG8_Fzʜ}z~ZHѴk ䷷e{g7VE ҳZE/-pK}KUkQvv:փ,w vv@_<\xѡ_SNUK5k_7q~nVfo^xLWK#[뛐P^P3Y-69EQ6/^Wz^?~O['?JSI㊠VXE֩%.=.)"Ċ"VHf]A}+6_Ɠ/_jZ9u[3 `!{Ii7.!~3G&UKmGq}~}^-ʣ]% t.c88vj]sVC/q}&zqq4[/i+lU6V3ORiRWԙb˂~b[DW #wD`FRDמZ7E-%ex':Bҷ][|U|_fSsq-ʠ *"Y\ƞp'r]ҾNN^z}_ϟչ_^/[x_,h_[N%!Kb |P6*4Fխ/[gdwV1yjo*X̐4RCu-򘥖:II:KSu Ud~TcFI%YVLbP&$p$>~_SV'hnҘ-"EF YGrz޼Ma"BcP]؅3cɱT*h[[KRi~۞R|ܕ/%KUygHF( Y1JdlU6chѸGqT-JNb+7?7 r|A|hwabVؼ#;'B9⪀7UO1T;2_G}$+%+ _1Pޝj#.ZE˂bU(_*hh(6wBUEewY}_TsIyfwoت+60-@a6ރT4Gzb>Y ΓHO$\<đRv΢94U?|UX-Ẇcde<\ӧUY]U犣---8DbKK;yobVT)U %.ncR^ "%h/*/tX43'DbN%U$iFY4X~%4m)O>unJ櫴)Z}Žͤ2$H!<ݹBA&oƪ*]wn򴊏Jd؃2H?eTm,qG!xG$HS$^h6_Iל|_t^ҤNH/JXfxyIh&Uy/7oVOIO@\y 5Yx=.0y.&cHri{ K )+R(YMaIٮYSHbGӇ~*+Vq=81zM?zHx%F]wn򴊏Jd؃2H?eT*h%q-M:OV ۀST6xNJƉ0B ic7 ~7,֮[U=2a-l$d50Ïʳ7''䪍t馚&24+%{ږ0^6v*q_W|Xzrr=oC֛.|Oz߾VZcDxq,X _k}[TNFEYҋ=9v}=T^*UثWb]Z?oG8PUثV?׋RU'퇨LU!3C? H^|?_y`BVbm"2̿Y+i|o<^wDz5é 6NӇc$3U/Π&c*ʬ,+Xf8GXė~Yy3A|\Vf]e?w25i$7%&i.^a&hhZVukzH6 Gs '2 $nRj } я 5Lү0_YoBiI;*An-fix9Jꤷzuo$V pe93\Fӧ+K?ESZ=©}1_a=)5CawP]N'%Z|HIu7(%GOR9E?殕jsvO)_ xG%TӦ^㷊F(Rķ)ho"ԫoow{#UUl1}8>%M-ͮpG?T1G$ݽs*X@'{f#ۭx.o Ykxynmyah5^i4E~o ztE*Y5($+K[+|SғI*][)SBĖ!UUTwv!QswRo3^e粑mtV(;LNRON/FJSpbˍzM-"H/,ri}w&jsFwY\D+E{4QIctYI? D>ai/=F;d ̙93 ppޟaYuH"AiqxZFH} \ fidi#rX_GMWb]v*UثWb]v*UثWb]v*UثWb]v*Uh➋CWbXgwˠ^/KT_Q'1TL_C? H^|?_y`BVbm"2̿Y+iI5/*_Qh7d_[E-FRH9]K.LIN b^d[eբu-&{k{KEG"ZI<խӇSy7u_98d16?kY]]yY[+kԶjYΗ+6QIԉ9p>z ;#=1ҕyPOa{a?ִB3A1Hg{wo<^iUDU%ӯxu"dFy!奆F9]l=$-QD/"UzmnVf2BEI^Gٽϥ?pG cׇCӯN/_N+>T1y%! -se\:$3 K]Y})"#kv.V[f $2[nXtkvEҋ.my/5ko2_O*H)Ǫ "XEg@ѪkiAeo6MY6qiP]b8ciӕ^]],*o=ĒWb]v*UثWb]v*UثV=\M!E s+K5 Dv G}kiZu%k} 5ݕK,RpF/1cǿ :^g) 72ݦKKS^oJtNhPLfNӭWIfSoܠYf 3*Mj,$h,,Xkڄn/$kiJ; _GS^S6O?8cgd71-yLwROL~`B8%zd]\C<I$ 4ʉŷ4<`i-YIV9UY$\ȳaʁVXw"~.y!']TzVuYi2rWb omd= yIITz_/jǥѶzs"i8rqƜ*ϖ-n.8wqrmQ8~B[$?s/Q4M:[[q$2Xay\DB(I$n%w8dN1|xȔ.i:Φ}aᴚ- uXnd1Y{XG#ܤŊ'>\[ɭd}TIu4rhZYDu[Y$cs4z3Diz̒ouo=^aHܫKvEVU1]v*UثWb]v*UثWb]d~Bi?.2sGWq-D]-S0ZDz8VTX>W_!mq?߾oU}o."vC ?0ZFbBx*jmyj%֌Yn-ʬcpԆՑӒTQ[iI}BgU_\I*!a-V\FqW[QmOGS[t-܂i`0yeVQ?YwmA#Um>kiJyY~/' Ui{!'k9H{nޙcTNӾ\Is'[>Uv*UثWb]v*UثWb]v*UثWb]v*UثUT~z.]a.mx|U.R}GzRls;1C? H^|?_y`BVbm"2̿Y+i|o<^wDz5é 6NӇc$3U/Π&c*ʬ,+Xf8GXė~Yy3A|\Vf]e?w25i$7%&i.^a&hhZVukzH6 Gs '2 $nRj } я 5Lמk+MFH֍%Ѹu43Z4"37D.cu*[RyD;Ol'"%޴>w#BgN=c'ӣKXls~Αͥ׵L.5| 4eiMYV[-ېY$]GM/[m$ҭ@S}[=OVI%Iі].f-Eעt[k2Z~{fVw,"$ܚ8nқb2KY9xO ԉEb]v*UثWb]v*Uث.e}9WSyMFeizڬPlW"帼_CT|mxu۝3O]NG '*I$hWMqLdߺ FOHQӮRWIa#q ࡚)a 2C$Q11Y(te6if'x4ĸәF%meYqTq[61^R)3P1D\"QU*)lء`셴tP]Kmvi>dsY+ {-_1ku WvW[GfNRK{]Eu\X^l/Isws#1A,WK2bZȿZa)d@tVH;C'GN24RF#2A7%FWtd$ n!Ƭ?@侧%dtk_aifn%-uU?y >8/'%Wꚶ[HEi22#JI5lUbkvX{B%m3|-nSFWYU3t0qK#2FcUeN|y.*}i70\Hi4UH)(FYaIFҔWn\~b\"O# *30N0S r?$+|A{QM,HK'FG$** ƥ" *xf> b~P[IИ1 sH5Q}Ki.b9H(%$T/8hL 4?X|١D'+XG B̲߿8}?VDFU4hg&XePȄ2e#bqT<)n.JS}`~pgqUڂX,3ZX՝gA䬎mx:7-;+!k$\ F L.MabֺՔSjO?+q$і',^c0qYTTefB$X eOSd)9J41:_Ad个~ 5xoQKpޜ$2e`WЕ$FTx>W,/-*WhnkIU>g-;%hW1JkpBq1?v҃G+,r:*f;Keg$i㹁kzG'Rqid5QaҮ}_BIӍZC0b^oTJMW%Pi-IondQ᷸Xi6)NQ-}n;Z'ydw5i$7+1U~c!KX̲UĊg3G{hz%̲ٿ*ZE_\ү.>ʂZb%4ȯnJ9 )#ӄrL8G$E{%PyEޛ\=.EpFw/^ ١%-4 x'=@i?!^J^X=Hb/צCj:kf1*HE1|z ;#=1+ji Y[2+\n Y6cIT.k^[=y//-@6tI"*ȱ5dY}U$ֿ-58}gG.O5%5MJVZ%K, yfjڽ?~ w*ʯѺtJu{>~7jwQz~1-7\H]TY5i5gG/ү/MY#)n7xc`mSU<ݾ|, h[8o世MK<773$m}PUOѷj^};i)iip?Wo(U+M:VӟUԢuhd-Tjta%w{+mc^qۯm*Wb]v*UثWb]v*Uث.e}9'".vSkoꎪ^j*HzDz9KHf.&wç_Knd1iuY}I%E)E]v*UثWb]v*UثWb]v*UثWb]v*UثVG/Fb:l'?ܠ)jQPQvZ`QL&H.;ˑꎏ$tRv4ZK[+O"zCn~*I7K4ׄ20p҄H'eEPv\WKK]}zX.lZi}Hn#M|>&WKFk[yh_X"z߻4NCpZG ZܵĚ"ݤ5uXc ~ _*ƼNPkZmz52YWlrxSᓗ#TkN W{B_$cjȲC:ݹzx<ս}Fn=~_ոo+oSm>*iUŌuhm0=̦y T#06'dUQkvr &AQ^"ŋ6ZѬdmd}U(#Ĭ k7:2?O=^KNk9ݮ'rL1H.VhP*M ҏ3hWk$wVfnQ< %Gkl.|ª]^IdX.9 ">|\F/ܷ~ҫ֮Vyj^wVῸOOѴx}, tek(Nb0gyQLpCUVcBiotcsFbu 摩xiw-[t#^ f_EE7Xx̨'h8:ت[<ڥאnVs~hy(xccXdJݿxȍI"GwU]Aoo0I}DzUDVθF$~-VITIm$I ȭ7zrF/%[EKkUQGG֙&eSkw[9cӄFҠVmXκ . ~l"1> c_C-\y*V,/cK3gyƩǔ/HS̫"G~W,%L!A3+ T^m*"UZT1^yL}i=C??Ums%nw6n0}MHbreoV$ad| &#9IeKOʈLqWb]v*zqOEءثWb3;CϊتOuQ֘Cg&/C? H^|?_y`BVbm"2̿Y+i|o<^wDz5é 6NӇc$3U/Π&c*ʬ,+Xf8GXėyGXu?-hךk6 Xnd^h ' /~_y=Wjm4M_}k[TA?A/,m#]їyvD󆀷X^Xa4iua`Ү]-mtҙ@3i#7BuYm}ko/fD[Yι椽i94u=Mcns-XԏoYodS(8z ZbK׆NԵcL+\_\$+4KCiSӛ_ꪢ<,&Vs4D}-G)D>&o?7>]yky}kY֤ REi,1A{GդOOG43XBZZ WP1]O0sqsh-n^(}=랲QU-U?2YVg cңຕ4K=B7Y%3sb]8]3zsq_5ZkqbYenk2[ƗLU +/^KyҭuKQ ZNn7鶗|"~:(ߔ~Iif: _c2\ج 7 Wϔߕʳjisս/E}ymUA[yΟ]'NHu]E[(-6)8./4=ђX+ZܪڥfE2kDчشm7 _Cғ)ͯ'&}j7d-(A+B[I< #'T> yL9U$0Erb3.,?=3X 8 hźjڍ8 '@ @ˋ0VM\PI?Eq8W<}8|~.*.'&[H"g^K,I#تj7w6/X n&_P^ ZNNrqF[ysֶrZvYզ'T+GiyK/U]CDѵMBHRX{RpʥGJ_r2߾PI/H&g62 D_7t-abѬcҮIq+o#$3fe\U48Yd-avޗkGvVSLqd^?gSmFktk cmG -UU q7~U ?qd,.4kUE=wö́Vד{ ;Kf͎=HYFd2M f$$ZDUS[?+9u{MKҵw1NZs /"P,"%ePT¹.{}'J}-Bo@zj$II%}ZFizv*UثWb]v*UثWb]coz?t̲P2BuHle[.._Đq+=տ١6"@;o5=~vYd71ФB*?-*4O'SwV1ӛ ?5 =:K=8#$vfv I$vX5i%8՝[\[sm*Om:,OGGj1U;]B{  {1ߺ&?rU.nmm幹 I瑂""LEUUf8 H[d&[{y'Uzs E/]R^r*(ߊ*UتR,:QҳKh( T죖*]v*UثWb]v*UثWb]v*Uتce]2dj'uX{[i㱺eHa D$R+'5$>542Thll oE fn*W4EiyCI4]WR՚K.HGÅ4n-7^d>m{NMkyŮȲQqЉd0}R;ޛa)?^} e1ӟk꟣_C=K꾯Vx;ztwֹ{6ʞݽ=Xxˏ%Ӕm-,4W?5ywL}SU,bh QmV%TbIO.$^m͢[k]w|qXzR4OJ⎌RK6z~hwwc][bY5R/2rX[(`A}idyz-3KɽY*?o.m~7qTGGXI* a䑶R4g eKKn5f@.9"i-VH,ѼRI4_Ű )6yߍ4eOtcXZmz721Z33vTEglh-]3Xw!{YG*yCpLƼ_Q^4˽yߍh-z8[)4>uTT[Ɇoj/xMeOU&tX%^nj98 ֠gN[^/8Jp߹'r_VAUmu7cDYVHd 0$DWO eWןyƂw?^} e޼4˽yߍh-+]E.a_{(k5] 8__ɾ^_Jo%[HfLGg6bK[֯d|@ڵOoxљb{iǴP[uʦܿZJQIuվRȩqmn-[eGreUI η\yd|n[t8;Td'El*?˭+׺mqku*\+FD7O,r1z?iYV*UثWb]v*UثWb]v*Ǽ鷙d9w衎eixl6͏+iyq[]NktummW1n6sO?%#!DP?GR#?I;nj:{mk3qH%hKʨ~$w39"Ҵ?6hX[mt{GOm+$K$6W_^_7ǥs7X/u'EK[,ΝsGIiV)ZTvt&fvY$TZiTu+9+}OLCfއ,FRדZ׭ms6gvRI=FxDbq-zjܠ$*bin$qf:aD2Zi)i-=*/ƻҚKh.%X}Si"%i--U~^Dm_Y㳓M `w$-SaJG;n-;kXUO2~Zj-Xמ夒6v]B[VrU"Kxt\Us5DְE jVUdoM _ /+\?TlYxw@$r:G߼T*Wb]v*UثWb]v*UثWb^1"cyu[+Kȟ-GO\2ju R<=OfgeMMGҧuoi ]X[PK2׊ V|=;JI#E>Ae呬 iɯE]fY-]QYuz˨) JEO=[-[CFo*^\TkIl.>itHB}WO "T4.|y+']7Pn l]ҹYU[Ko-ou-Crk6{yWz!R mB++,o/Um[Rߙ(XǸHеk,d[Yf -^V+p[[?Q= Qb|Oq^OqjU56Bm<7r'[{jC2Mq?O8=~t<[hK;>dfgHdG>s$-ꎉg-u|zkwZa xomІIG),PlIi6͖{A8[a(V.Pt#y,hȳ1YKB{m?]z}͕-#yk _t3SOU1(&ߙ̺#d)-[]Ewwm kȞfUבx+a=d#ZUNZ7 &R.GX.$y^.Id_Wh4y{/?61M!/oeC]IubBK<+luqF9$<6#4;.~T?g><Kҫ[?$t0^>WM3XPԯ<[nmPg hmD~߸'&E·k]CIciwt0=Π[;OPoUgOKnY($'~BgjW~\};J_*ã]Hv,wJ#²En$ޖbuK\^,$ Ԗma򦽧KXZX?H'5-=F Ayg2o"Ό&)XmGOt_F5ܭZV]6MB`siZuuz]4[e/ iծ}Ky>S{^PTBy--5MW@RS[Akie:{yCV,siY/f$24K ^ZuOťuM";9[>2\~;{[Is.-cI=ݡ]k#:+a# Olbm6+8RWݮ9H~׻-*@B\YIp<;B3ҷfpeHb!c+R|̚ꗶ+e :x?Cb9fy`YK_FN'm`! ve6/B[ծd:ثA]Alr]Knm-(Tԭksu }k[8m!B~] yaSոֹ[N;FI]#W6*;wG8Bwo>s}waos׭#4z/V0ţr"` xeUxBc\kTG1=ŝ\Fxٔ0VVVɌPUB> .;}+C'<%JqƸ&'cW"k~'W;V^Z'֣l=GOZb69TC? H^|?_y`BVbm"2̿Y+iv*UJk;cC$n :0*xR+Ek鶺eg 8cFUeUKUÓ*Gހ}6T^^^Ǧ_ivG4k%oQ:}SW>_{(k5] 8__ɾ^_Jo%[HfLGg6c+JzYņOROYK4p8=̞$~+ßJo-|}E^jz}V;Q\5;ʜbqnj?Vٛui5Vo0IfZKV[F>VڍʹSeozK{]:މ[]'QV{k&ʼ徛q=(mb*UثWb]v*UثWb]v*Ǽ鷙d9w衎eiv*UjUN 1Cyb^EP4HH$'P-.kͩ[i{mqs"ۆL )1FU<*yuQ-~s_ BWx28gU$2G+->*ϣj5EmtgEx#eRg[xc˚b-oζNuk.w<}z kiZe$Y&w-fvKx&~+;pUuŸWޏ=_W蟩^;?ѽ,U guϙeaC{E}wva _u*m'ٹnRe^@-e7m,Dȓ^HI&xF'&F㊦Wb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*Uت?Y=bb]A_>*b>֣l=GOZb69TC? H^|?_y`BVbm"2̿Y+iv*Uت%RTF)Gpc. DL /g̍ŢǣP1ԚkI3X};ӹ,UikTǘoM)5;iV9IO-Q+>zޒ>*1|s;,`/[xbVjKl^ggbK:yk^g{gjvW%mu.世+/WKm0ľ~~˽J m2+[]Mouy:]llW;Y*OyKybҼ}yZԗZUx?ЯZK~ztS\UثWb]v*UثWb]coz?t̲P2v*y@֮4R4WkduO\[<)iԏ\i4e+mVG?E~>1\54CLij~'%T?K}[~DjD]J%"4kIHB}I$U1,/N.MdEQe.ƶl9K#Q%+2u?5]꺉ylfKHn"I ]I2$0Fdo#Gx/凘In!w^6{Igy H>j]K,qM=nXnUd'cK]:K=ZSif hPBaEYv[4RIUeP]nYmmc2z֟4 R5,LDrKk3K1'H+5_q=Vz'w-i-__)$] kE[[ki卭,:W7i EˍզYv[]Yحi vT~C^,O=iK}͎Xj:tv y$K{mj .+k9`YŇ!m?<)6*]v*UثWb]v*UثV5dq _IB^?_,ToPXoqwu][pnW}Vq=qUU_o-~woqwu][pnW}Vq=qUU_o-~woqwu][pnW}Vq=qUU_o-~woqwu][pnW}Vq=qUU_o-~woqwu][pnW}Vq=qUU_o-~woqwu][pnW}Vq=qUU_o-~woqwu][pnW}Vq=qUU_o-~woqwu][pnW}Vq=qUU_o-~woqwu][pnT0vW^&ߏ'_eQPUثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*Uث!>LSbOuQ֘Cg&/C? H^|?_y`BVbm"2̿Y+iv*Uq:֛:6y,u84WS7ki:IY#y&X-_ "Y"RAy嶴|w/$+j+ɴY cIĉ$,ofX_!zN䧙nΝ}q.q!\=E_PE%j2/4zR/ԭoаkYKE4ZzsGl%H1r~%c_^,`Ip/nK+Ae{v:ZJE#m,IDinSz?8G كlҼˢ9YKBK64o_U.ҿ34K;CrIefA5QEIf?N&Ky=Eq⨋/isΟ b)+EŢIxJ7gM:?qp}Zymk_V}X*o;t[Kvw^+9"kVXXqݿj^kkmN\[^:, }=DiifXu_N)rz檹l-k֏i;i`T@mɅ=DY%ӟfH$WG)q%O$/k *)0 BdEhnAp?{IU+"1/[?F )i6AOuQ֘Cg&/C? H^|?_y`BVbm"2̿Y+iv*UJk;cC$n :0*xP' =2JC3Am!KUKU^_* A]gA^<}OO0\U9ˏ5ثɵǻյMB5q5ľ}QH/B[|3$SC|gVX8\}jmZfUfT!M&bΜ~?)8zI}s{?SIL2^]zUYL2[n Y뒫?g>3{aE#\꺕ƥ=Y mc@nZI#4?G/',[5̫%޼ZHI5Bq6>HTOTs Wb]v*UثWb]v*UثV=\M!E s+KWbwQ9u V{[K-=;.-niCZ{[rWU&әhFfSwjCZY).ѯaK[en.#STӿ,m'nk*y̖ࣦ -DrSzxT-\\yLh7Hd3$oJ,ZciY^X:KX%kh`kBiq L.x⬺X:tj^ @Ru?2*eԱ湶{Θ&aKuխrr{8TKVgM}oNG,ސ.H۟OSq U*Ӭ-ny-mKn+ۛ]FY愿F[6iW R1TN7K ym {坎v/>CG)hY&w^rRYv*UثWb]v*UثWb]v*UثWb_'tfN@d9Z]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*Uت?Y=bb]A_>*b>֣l=GOZb69TC? H^|?_y`BVǬZot䲃Uӵ]Nޭ%dE`I~+04w/fHRw柖Iߚ侴SЮ&g-''Gpa| =g>`-*u0H׭;1Iͥv/LތÏ.yqAO)2rjV0L!F+CMdPV[Y8n;>*Q4~~?́)b ;̶Q5Ž[KŴ)HomJBm_D<`榝hf K˶3\_zPG[p[D$`伎Fsi$ʥPxXhq^yON.-ZK6Խx'u}8Ck֖֖ ,^g]Yœ3 6]y#ŕ[Eb]v*UثWb]v*UثWb]v*Uث-0Y&ReӮISYf3@EB?jv_I*\5wJsM!QU{`wN=.YNJ8(rpāgL`;}Rh&U)cőхU A#hƈR>\5;/$;/w#ed)]&;;nX*UثWb]v*UثWb]v*UثWb]7bmYG(cZ^5i|{[OեӴm Xׄ$rze$W_Eϗ?W3k%1Cp\^H$aYtqG::<_^ЬPށacsDpq+qgatÔPEy|9x%?9bMEu=K0ŨC=#MPZ4)!1F;ˆ+ԙ^ ڴI%ڈ'XRnW/DtKy)9YWQ4R?ZOB /z;Q~$nU[3NS6c15rAI9xmh㏛#qWT߽F]_jr5RMf%8FgđkOeTG JKص Aw'q$u`&C A+f^3x }?4OTkOfTb?씀۴1I#D߻o?UUjwލDhŞX4mYTʎHO-[RR?&_MUMuJN;{-rЁVnK$9?c{w-#FWX 'GT8.&X"E9I"#bm46Ź2& %i?V|UU͚DzbkYnndєk$>pL#JceTUj JH=xOFe*sP]wZ26*ŵY?%Ȭ4Ioip!zedi`Ljg>,rƒ2"79si㊨ZiG LMuҘAE5h~9p^ L*ռz}8u̢A&(&I6W+,/y*<74,]}Z)2ZƔ*ܐ3q[MKB*ItZKPnVN=Y6#qȐV7^T2^&mX dG!G Ȭ$hTd][ۛ=&I-[Ds",i#,+#~S6>8Y?TxMu-ϡFnn)gx_McITlDCkkqem<̲]n\E"'2~>dՒQ#Wtu[03pޛI#I_OU.U^\K5h>ic3|Of$3*󜒙ZK(VgT8$᷉'EUiz'A.]/Wӂ*$IpP(A3:dv֑cOqWb]v*Uh➋CWbXgwˠ^/KT_Q'1TL_C? H^|?_y`BVǬZot䲃Uӵ]Nޭ%dE`I~+04w/fHRw柖Iߚ侴SЮ&g-''Gpa| =ʺmft%gy$> zO=E_5y K¯&n>6Zy\ov'`a[ɕnr':xK98^xF.̔uR.o<<G_:e+6y,-; ZCrLDK(=¬?*5(n,D}nTHl-'F{6koj͛ ;QfP֦ݡҬo ,V"0F)=w15[çIdYo#zWWX\@9i+MkV*4CW{DG zSp B;FIxT "/ Wq3z"UثWb]v*UثWb]v*UثWb]7bmYG(cZPipj ChdY-c o26`zYyd8+1zxU,=[#g%#Ж8H~)|+&:JX_rƲSAꤱ?M&aUOH/nuJI9n. LJ}N$+'9-?C*KA WHRyfdOUɊj!x r(SH4/&Y}V,Ry5zQy/.<1T;-Zç7ۥ^ 2YR \Hy}.2@,*v*UثWb]v*UثWb]v*UثWb]M|RYI$k,br#go$OO̜rX5 kfI*%(,PNu2Q4X0&x]L$YFĉ%oUOP~SVQ~eaq#<&Yn%!k}II8/&*+;*OEpB0x7xFI$e$Cř F^H̟eKn<\")qr$g$Y & D*y.stZB۲^]WsJ*+~վ'W6mQ577\2\%Ei'q,U+Zzއ7^\[r}NJƉk}  Yh=?rAx(80 #bCNmZvGx_ucV~-1M E$7R)Ycę$#%?y_VGM;qkpdUn!a/GI#鼟e>,UavV=)-\܁$aIՙ+K7TR$,V5ٝQAܳ1f<Ci6VWwA-k gUdfT@_݅bk?-ivmrjVBܕS^V TEYW*_,ֳF4 DZIFd)=V}H?\qTNXzH-=I[HZ_RfN Ɋ. mT;2_G}$+%+ _1Pޝj#.ZE˂bU.kvqG'deWi"Iffi8(+qb4,LޭL襰\LQK# VAr~?mUht=& %4m->% (JyW?_WO_6V3ORiRWԙb˂~b:_ףG$#Ӛh+}DoEӚ?~UdY.&IfI2b:zn$͹SLU"Om㼆+q;^]ڤ45LriyxM ,S5AoJ5aĬ18@8~_74YY%[y)W! "/9rUhzf cDn^HUp?{'ۙ9YvXj^zb`\O䬮D/"[7]uPm*ۯ-$2h~\N+G1t˿/iWwOnyGydv O$sUvn(eWQtK UbKXL+ՈQY }*hg[Z\<ܛ?/>^FA]Ԋ-̌Kŕ9fMڼo9q\UdZHMɝP!$z8Kc?9#]Iy7d)Q Ģs AWJޒq78UߖSΛZYY-m4H"ZU8aV_,ߥK-@Gwux.%ծ9A,":7=z/[UTo-,*/kY-u}kR֡ wno~6CkWg?kφk\U;Y KO(!k$SijMJꢱWb]v*UثWb]v*UثWb]v*Ƽo◟o%b#HXӮڜdO|K}37K|KIc/ZAEqiuYٛQA$P'>(Y4>8{wAG޽7i7K|KIdC(~ne,V7K|KIc/Zw//&Q|iߣtĿF>!K~ne,V7K|KIc/Zw//&Q|iߣtĿF>!K~ne,V7K|KIc/Zw//&Q|iߣtĿF>!K~ne,V7K|KIc/Zw//&Q|iߣtĿF>!K~ne,V7K|KIc/Zw//&Q|iߣtĿF>!K~ne,V7K|KIc/Zw//&Q|iߣtĿF>!K~ne,V7K|KIc/Zw//&Q|iߣtĿF>!K~ne,V7K|KIc/Zw//&Q|i8>\\ FAIHn$Dc#~"q,krrYj JH=xOFe*sP]wZ26V4iyByqQTFq?S 4,U48^DdRq ^eVre_T3حͧIkg@HWrTy3սtU>VM4,-Ig2Ei+!<mRH[@tY꬜G$HȼY!YMfMYXyuw *+m;rYIuդ3Cѓ`jK$ξw)jsO%[iPt{첻jk} Q/I4bje7Mԭ& ֒2ɦ~HlEhWՎX$H _LD#'d$gӬ3kwgOAo52Wt YbFO^oNZ$kUQY<wi"X랅iڢ$i2}]nY,Kv $[* /Nז}3JԮ4PXh%."YF[ܼ*=W2X_A y}mHf hZ$afE]G,[FHZRY<6}N=nK9ԞN4ɚ]B+M~rXnmKU5O;jCBޙ=o#F&l[Fm涓 %h6[JͧXͩ 8l罀Hki\ϥ[I?ՙ&{K-I<=)4ek}Zv,^Ci2I2! DyFkh!U0DѴ:̉}o,ڄOooi-wlߙlntMJ-$)k6Mu:%ı=}y[eT&ky]yK{A>}e}`o,>準)UM|;̷WpY]D.n f=X(yrUJo]*vI{ON/OIW۽.$ג)oo'/ḕTW|=9mk 敩\$Fٸ6Ii$R$7irUR1#c:[}kV7䷍S?3MR嶕%$^j1Cĕ_R"syg?֟ZU{6]-ΞZ]<ڭ8bI&EcܭaU=&?0hvLVײZO+]qF>GbtJGHV[R)iw&} ƓƋzm2g{Ů.ٔ2xXU1S[[\\Hb1/TFr4(K_yu46E/p3~gu]FLժBgAȪb)bњﬥh.U/?tv*UثWb]v*UثWbQJT%uAsG DF' KI,}Nkd2sG5Ғy^;MQu#]2Z?{/2D%ֲ^5u,U'{xm<Ղe&/-,z\#U]7?.Fa0*I‘DceOPp7s44MFӢ DI9 ~⪣QcEXQմ95 []ZF nTHQ.}hebLrSy|X49&b?I]F+G DF6>(ZZHСcs_[&*}HuuOWR4l1OTϊNEB]Igj-,\!BEqODnRHk:H-RMjhAr-U%Z VU/f]N9-(kZ hp'9˟6uPyӡ. AjW̅Vc <_*-VZhgQl$00 xs:F*I—sCC\L>G.&Wzi^V^]Cm~#C'#r3jޫE͖V]'{xm<Ղe&/-,z\#U\|#YO_O5޲s6ZdXU,Z5I[oJITf.As$ ӹ%/UPϖ՝SƑ\ky7gFFC$R|1nqb%oIo"o~̶ԟ&IűTecmjHX48: q m'HʼqpUV=N,(ź1!esG7F*#⨝+C%.nXbFA1)~?QTNa [Yd$B$87ZZ#q՗P˧vk^,[7,IM#4a*kES{{x -q$}GUh~SbXaHX"fv!E'rŘlU.YT%u#N-4aYiLOͿ݌/g-VҙHU|iH/捱UW 줿iK\qF ϫQ$$eWgm&-Ԓ8fcnAcc$ͽ/Qո;X*]v*UثWb]v*UثWb]v*zqOEءثWb3;CϊتOuQ֘Cg&/C? HY_+>bu TKh*I+tݙ%Ɂ> A,3ΞZ c^{7cfԭ!4A=Va>~1SU~e:6li:Ȣr8#*v͑9bNA-k,FGNLT&Z $ AU`+:2<3B[G5T}Ne/)khrE p1[ޤO2zK~Zi%ӶVtfHHVITEy,"+{hb_ZCo,2aU*tDKᰂ;_/ 3s ڔ ޔ6.yꈲ-Ϋ+l.f,uV[[R{G{efӭfwҴ6*j^E5-&Q]NIcLfir VZt5T-|mm[KCy缹V#SjwO/Ĝm*ci[1]jC$ܐvzQC1 Tv3/R\˭+^71?5T"ͺzvdD3Ȣ'պ*Ӗ=1 m+Yנ %{{d"uq23bx_KGMjhjsly ڌ=ZKv[gwU浪tZL,o+6#:񗟢?彼uͱ!w+R5 VͤiWxX}Ϭ*~]iZA}}jz4To餓ĺr pbModz&W/֕k }}G6vz|uKBY&I#-`徭k*q-k4ZI}[c%Ξܛ zʡ!+i/阮|\0+jR3zSXغo"$+:I?}jmGR.dg7n-ʃO >`+hL/|SX-VIF0"$m.p5V7#rwz*yq5E\XIl.ͬ|oe~WW77_W 4Ous'>SW7彼oR Œ@qqv`#OYO٠U? $qtfk駙~#UE((^5Um.4C5jO k#Z-ֆ')%' ڔ17β\<ꪯݝRӵ_2iBmqK~:mIq[X*i8Bԅ624q,+ XS_~VU5:T:[Go7e#K{r5_+B<uϗҮnmmBZ\$j QCxٗq4JU~^_2Xj.4 l?U*RL7P\eYӴ~v o-lg{Udh{^y})ղӞV){uhZǖ {ѱ:]ĨHoh_Cꑪ\Hd.ӷl#}+iV[YPL1 CRHO,yY峖HI2JZoD)/ -` a,`O|ݣ?T6VK;&x 52T43|ʞ&XƺƗ V#w")h͙}d5+/n~׆[F,I# DOF=N(eTdfKhHA<31+Ȳ"4pyxzTX4;{g{&h$HZuYj ۜ>:Gik}Z P9R4qnJQeQ~O6hOo!1:ODix[N7DwVت>X\7FU$f@&ٸ\7Hث~ OQXfM>oKxXr}FERS3SXay\1XԻVv!EO@TrlU+_3iQiIA4+z<})%ӏ}TU:W>I}Fozys{C_y="xkm]s,0!u~KqQ/ŞO >V{t2/֤XbuY;Ɓ.N2rP}櫓o̍#H́PMEpoU)Y$3#f0;.99/Y>Wke+ixG$k,`dUg_BdO?UVs/n$FbQZCLһzqX݄2^

&㊦JbvB(ث3-50REt&&9 l}n)!s<+q75TzyDKibo8wy @ &+®yz*_6hQ<(I6*A;6BB,a07wOՑM!IuTeod[Ҕ+_X/n\UE|å6 $y$xcq 5gtYzG'%9+#^8KmN`Z::4,S#Ey"ve&ړI"e4Kz<8_1U|١DI$h#GuYSY si N$Y9.*_Mm*f4=$qI) X%I)~OUGkK;y#Kx1;0ʼ0ۧ䮱||U}ϙKmDzLRe8LfOݴQʸY#Fx`DFgZބԜZG)~Y>?MTetWВGi=X?ғuU~GTyR[b&xm$EpDxf1TgG6[ք蠅Y"ZI9G!sUeߘlR&V3,q"bQ8^s,o︷Êt}Cc~-ˏ+֘u2+d08C H0#N"zq_T4kfwi+K}<8Q3_6hIo=M 3;IOGh~WR4GGfت5ڎlZiJ)hLn-OW⩭WvqȨ9!}*U]v*Uت?Y=bb]A_>*b>֣l=GOZb69TC? HXyT}{iڜO4]:NXT:p*ȲHcBb^e0I>m;rYIuդ3Cѓ`jK%OkӫCoi7PܼJ2G'oWe$Enlnq7A-|h\%Uj|$~_k#8@HgQue1[k"xUprRT|utťܦpZiw$kZ?bOs㊡["9 Ή[-|ɮ[9#;T1_?"W9Kl?4-u/5ˣCo#ZIo`>ׯ/P-EtGݼRYE*|y ;+bHXA,'5?nP*u/-hn ܐCѩp,vL(2GK;Xݝe?]]TʿڮoR yoաyz !^x̼fR?A%?U_ت/X~UN:\siLlmh323ZYΨ qjtCW{DG zSp B;FIxT "/ Wq3z"UثWb]v*UثWb]v*UثWbXޏ1s6,#}1̭.]ss*Am4#DD*qULU5-8z.6w>DIU׋zq?g^?kT[v{e HI`]RBʌG Vnmm幹 I瑂""LEUUf8JmbݮtmFJp-eŔ+D\ss*Am4#DD*qULUN[x^#vBoM#7⪘Wb]v*UثWb]v*UثWb]d~Bi?.2sG˫m5 ̑dhcnHHJ>H-'hM5$0Ҵ'd1i_촛#t^/#O-/ xMs+L3 (IY$nzTUkEtn׭ݢ?ԏ8+DޗroQUt\f&Kߟ'K$7N_pH\IX-NXH*޼n 7_E8"⩌\kɴu רc[)x'>9zoR9UA~Jo8Xe{K+]F8F$3ۚZ[m>ym[⿸f=?FG⩖\X0\Ig%O>23x,\#n2zEUvmng,pphT-XCi^ MF[}&H'\ 1J0s/HS濳{^['$)SfkU ܒM?(c6p>GqenfuRT}fF+ 9|*/5ߘE;2*Cz)9x˕j"z*-jo_Q+_qnO7ߢΉ>F[V8` &# &wDq:/,&vF=>71i)gP^iƟkMWyUI9 %eZ$XOՎWʂvN1Lo97X&̫K=tCB.Jܿ$ pfjumUGF(hR2FbiZIzPE_(WiFb6q[`¾ (d?U iFGl/w [&-!I|?UF=N;4sF,ȱb8bJz;;͊mo{ug}gc%ͽœH g`ӕ%A,Kq'SUsyŅ+=Պ]\!X/J15dY!V^nս?$,U 5#-+gU[#<UiEY>ˏAnF!Rxd+ia` $z3zI¿iYkW,u{r#$bz_W(eNUB"wn z+ pۿ;U=?تǒm>;$6wjyM"T9ʲ+x'rʲXD2@J)jnUK9POEbr/%[EKkUQGG֙.ʤ7^ԋDJ~CRўm@Y؂GW|8qPxe򮍠Ycmc>hV.|*9Ǜql%/4CF=Kim$U9~> ݼoσsRC}sWaY!{_08[."8,w9_)>Q[4 @`ḻ#N.,}42~;w*O ƪƈfm^imuvbV0$dR&9KU+k{{;OK C= 꾧8XRUK?*aMx`K9hz?ы7y7mw~Oy{i_,:vIM ѭj0_:)GVkMZ5UثWb]v*UثWb]v*UثWb]7bmYG(cZ]c>tY:n٥k.${xi Ƭ"5(wv%xX WRHJ\V+~7[%敝U[mJv_Og=~_n^}=[358 USTǘdִ˫Ngn&"%l nORk1C櫟12kP&&9kM5-Okv4e#L/[wCG ۾'8g4V_Lս/Z<}M5*yTC}~c/[vZ>mu=n<8V>&_eqϗh?[Xu|3+nܟè>/[wCG ۾'8g4VhGq_MH&x/[wCG ۾'8g4V?P}Q>_颶,:>M}nOa?{Tqϗhrp|Em[Xu|3+nܟè>/[wCG ۾'8g4V?P}Q>_颶,:>M}nOa?{Tqϗhrp|Em[Xu|3+nܟè>/[wCG ۾'8g4V?P}Q>_颶,:>M}nOa?{Tqϗh f2UWNj#ٶe`[Xr(*Vb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*zqOEءثWb3;CϊتOuQ֘Cg&/C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]coz?t̲P2X CSi4btI"Rn.)d}L_U磪qqde d$wOџzq#T_9:}.x:dmOȈ%@UnKD7n/[6*UثWb]v*UثWb]v*UثWb]v*UثWb]>NU Hٳ&@mwNyߍYw?{pn^[hg`6,Ϲ߄m~6W e,w|KyoQkgki&<4Q\62!8տ0ߧ>Oey=_C8_<9ƂE~F}OFŸYVWOō~7qP4-"W->=[ci#s+$S;rfƂ@W˾kyt-E'!4X/JUۋ`Rm=~7pE>mczK,yߍh-z8[.~7q]oAlןyƂRRkokn,'gwv!UUG&f8[*4˽yߍh-z8[.~7q]oAl[j)uO3'5B9'DxaՑ,h-]jkk5̏3G4,HUb8#mhe4ʖA閚Mcw6|k)^4ʯ?u=2<:IJM!TH$‘;^X[)1 -˛ƒկ9ƭ,2\ r?ݻxp NןyA]oAlM2AB).\l'@!Dm$W4ʯ?^} e޼4ʕQ-toK46Ғ~fVuxHiѭyU/6Zԭ| F9_IwXѱ^*6z5/4_26hg{hȥ%?V%U<~XGN) HDUkIzIۥT;Uʺ"B =8KtahOwr@77|ˏ9m%nodI, V[\=H5%MBݤ8~*5/6}][M ktM%kdHg~?F+euZu_1{X7i[)4U5;b,aFFֿ8[H,iB6sQ[[wKѼ1wVvjsGmuꪂt-aԡ2UZDI3jZoEEPdMWyoTnuM/RԶc㝄2İ jz0!̲JʧVyPr+WIܼQWb]v*UثWb]v*U~`?}b˯-Ais\YOw {]gJ[yi_Vlcܰ^Kʟ/2C<>dJm0f'Yo>PCVY|lz~_ɩE\]E6YO ͜wV-=m( IַDŽ3`:nO4 ;ISI{ i<6yldcտK𭢿0(WW6jV~[,kKY^.tI"ZK'訨+%AEy΃o0i>Zy4G] y"Cp̒\D o/6sF7[#ڎ[47fM6h;;'d+جcIr寮h\4;3yB{MK}."o%_\^'y>of18i4Vm*0/VO ߻Xy}kPzjmq[ %!o_4+g7>ΞuYk1,RzIhB}7䶺J[ޟ0\O{k-" [x-żwe_ǖeX-ԵOʿ0-yrzcLMݞzA%iXۅNH!yrzj-/̟ˤvԵ#}Z{K&5q,[}n1\/d.l3wCsx轞w*?GNN8ZWԽZO}fI2MI8(/8K. ~My\]gj^=ϓMKȖwMݾ[Cq]Z0 3_F;vH%WkeԓUKԴh?KyEмs~m漉䏕sL$XVf{~Cv^Kjk^m5]D.Ӥ&8cmZi/+fh5ӥNbԸ=D:~ϭ궗zW4O>]c-?s!YyҚL4拨Xw'JڳRYwsGp]iw+[2Ә*5M;&Fo5#Nj%InUm-ҭcK3E{5MZV iF='$RyڵŤJdi&%H^b/旔&O]j:M]-Λf\5Ħo9YW+ qTXeBAJվ1:E;WPlyӚIyq:I2-F EJ-Elằ:,RF ps^K[TV"ͧtnp~6qwk1\Z\\z%0ygU򕭜uI/[8c{nm^;DmA4zsn K7˛QDzqZ^Kihgy졙HQ%z$$ߪꛥ{?.z_LӼwjgz]JUmfS)Cm*Ɩڷ6_'ZkWyf {C;Eo\[]On.C^imƛ|ϔuk"8ѝI,[KAKXlIn-m=/йU]_ʺn]+׾T43Am}G_EߏB -e_^im"u/4%^^Cj_Eo6.q--#-DV}J'[t})n|)6BOմ:ޡwct-qWkwQm$EE%V_]VD5 4-/WizkGo}7L: K -ivPzw(-m/,ڷuK]j/ES5G40-E5ֽ͜+ƻ_V4im+,A9 O84YL^y+R%˛}RZm6O)%^bK{ = _quFe{*v~e6MB[nc;\*]Cr qpBfKk -xM&{`ӮAf |LB$;Et|)hdӴS+n_h5#?>s!?i#V!?i#V!?i#V?Z?_P}|zܸ> zW? }m!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V!?i#V?%f{xă|"V uWՏ%k?Q7ԭ?+++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_Onjwԭ?2!RO\x}J?q++_OnjhYs#?wo_Z?fN@N{[̽Nmge,#Eڛx[SWw~>,r谯<,v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثUT~z.]aE./HJ2X4a\gO1o_薂oxļ7×͓kQPG ӆ(K=C?`kz|YTC? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]coz?t̲P2 g̺ŵ[Yl]ζ[sHdi8I${X/.UV?kEX^WOux!c\̌ϼPA饽^N mmmc /X<0"Ǚu .og$m4PI8[Bem>&u4-#C\5\Z6ijWJ}[`PDG&[yB\VS,j̾uNK 0f]"WKfkgy3G+/A75eثWb]v*UثWb]v*UثWb]L|.R@eHwҤL>ק/|?Z̩~W?#ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq.%?<x˿IO^2S*ʿq-~n+R{}>axUǀ/w)~q ]J_\x~W?e`]5S2t|u,~ogZ5櫷-P<5fŹwofŜ]?I_C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]coz?t̲P2Q򥇖knqyrmSQyn64,$yR>Y4Kn5+!y$ie*6nڵl$H.I8C29K/M[KW|Ïsӏ'y{v_/"{?b};^ (}[ִc_hAk⊫}731]wu Dya-`;^(}3} <5+[rI:c@;- J Nɧ]ɧuF#B2bԵ =7Nod졒Z3q%.C3qU;(劢1WbRijf wN֭FԒCp5fN+9*y<647W"YԘ#E㶸3/ NqT=֡gk=[я9V'+P_C+U⨌U&gRn!EnѤʜGby7?*]v*UثWb]v*UثWb]N|c}dJmJxܰgY x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|Ewqߣ?_^~?x3,|EkwW_l|EogY џg//Fşۏn>"1̴LBSnTf5{+]|3#Mqo᧙弦o++sߧ>>¿g3|XwVrǯ23~giV@Ii@+zTYEW?I_C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]coz?t̲P2Ym}),L/ӯ^v&1Z4Ӗ+MB)fk乹~v[i?}b"U5,^jmkgi}wZ(UUuiQ3$֢QZ*giϗ"Mju?-\~oR{"wsa75ēnU/!yIUmv%:{;- gmבeu T鞬O._k[<2픳8H8m(՟?U1| ]3P>t.nO$$ԥὓrMmQ`<}f|ڶ&VDYN\U9'_W vS<ͨ&Y%KaEhef?WnY}X$Ī/˽ ]"/o[;-H@%[}5OV1,3 ?Op.]v*UثWb]v*UثWb]?!4Qe9#iv*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbGg]v*?3]<]Z=i?wRbC? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]b:uwBw[A9V: g/#?Ś[9q%nVIzTS%8ѕUe;rMC[E~s}rZԕUHAcEX('D$?-^Nֽ/[ӵ/>?tԷn<*.K^b*iZnNc[; G!r+.*8K^$oQ|?GyfV%?GK%/Ś[8K^'5I-TqؼNj?o[/?x,$Q^b;YվIowQ|?GyfV%?GK%/Ś[8K^'5I-TqؼNj?o[/?x,$Q^b;YվIowQ|?GyfV%?GK%/Ś[8K^'5I-TqؼNj?o[/?x,$Q^b;YվIowQ|?GyfV%?GK%/Ś[8K^'5I-TqؼOE̡I]@ ٍ5*HdR]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*Uت?Y=bb]A_>*b>֣l=GOZb69TC? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]`_ qz?`#Xܾiy]UuKգ<ǔ|chx~?Y%!?l)Ϩh];Eg)Ӛ47R;I,0%)zA$l{m8\\#Iq[jGviU_R5NXʑ7A |~ox=M,lH"­Oi8z?7V6oxчmECS"7wOa/;[6FY(0+z$Od$h4e?^/?$kX4*"#kgh#Hr4r؋9q-rr;v*UثWb]v*UثWb]v*UثWb]z75+򽥎oms5fg|xWSH_wZR+i*zʧZeέG, 4P,4LNR,R+? Mb]6X..5{+(iG zQ H[y ? Q_.?]nldx8.'ek-d.>0"eEQmapx^i^^Iîܾ*<]>=Q eS'8vZh>^Jeiuݺ\D*=h&H_bFʩ"X$P.i8y*7.OJeE?u]mNlZt[,j#RAsD*o1]|l~:i𙏫q4_Rzsb*XS#U.\EijU@2dH䍕-o2$'UF=wWg.kXӷؽK13a8K$cbyy ϥ0gHh++-;:['dYqVA4?O($;hJ.]5:Gguo6C"{u\]O ;` 2cOV)g,~r{SIsqkO js%IfYoƾkxѪU59lc]I,´|h4RC VD}8&VMv*UثWb]Z?oG8PUثV?׋RU'퇨LU!3C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]`_ qz?`CLӒ5Hkɣr_)YM{Z–\V83+Yk$:vSmX{]:eQԼoV}Iah[qi>H%K̑NW["Ӛe[5oHK1̜Y8?+W@W3Ar&[F{][Ȣ;fFIX_Amb_F?@{QG-9ٕ\zJOm4pa˔ܹ2|wmoktPEnfU Ea(''}c?K W[۸y.. W-lдrޜ֭ޤ0oܱ]v*UثWb]v*UثWb]v*UثWb^L򍔷17vHXG2#*߻HSlPFd,RX)2BΡUK\/(JiSE/# q"jW5ElHV5T>lU6V3ORiRWԙb˂~b[DW #wD`FRDמZ7E-%ex':Bҷ][|U|_fSsq-ʠ *"Y\ƞp'r]ҾNN^z}_ϟչ_^/[x_,h_[N%!Kb |P6*4Fխ/[gdwV1yjo*X̐4RCu-򘥖:II:KSu Ud~TcFI%YVLbP&$p$>~_SV'hnҘ-"EF YGrz޼Ma"BcP]؅3cɱT=eeqwqn$H&/,p8VFeO_Q>&*֗f/ vn.-U9n2DUz ⮵Αmk=i3ApInn%̞fIoWԈWDMmČԚye&i$༘r߶ت/Cc%wB]¼ #5 ֢2Ť^*&*RYGq%w4[4*sXسz$옪Q.+9;[D,EkOK1U?CB.*$"`ㄍ)txv-&H%Mr^Yd qʟ }LU gHnbIhT$M!@uQbF˔qXTc-a%$<*"Gɽ%bޟUav 4p4WW71EH1TEsW%K X^s#3It%27qob7SIYxYfFB\Ua*!koP?;]̔bi_T'SiZ◌bEIif)XHYvU/ ju &7ExSrpn*Y9pfDo\U yxMlV(ٙYTP7GƋUgHH0*,YBF$rYRFdixIqW?4G F3A7&7)FQ:vZ^.$M-9M+AÊWb]v*UثUT~z.]a.mx|U.R}GzRls;1C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]c~tI9q{+ $t1R^okd)]ZLxpe{W[G&1R^okd)]ZLxpe{W[G&1R^okd)]ZLxpe{W[G&1R^okd)]ZLxpe{W[G&1RH/w]mo Ie@^%UfwA|x +JQ?4ؼoWԼIzl#yr|*M40BL1)y$rUTTu8E5׵al2]dޢi=$+uthส&^_mf$Zkx؃#d[y=^F?ܹ;2\]yB9/s7 >7%8~b-ZvTHސdLFq@__VO6iތS5 U tѷё$H§ԎKB'Y1Ti!I6C4OIJ*UZCřR7_Uի[i3Hj.Ј8QJU֫pTEON^⨛-m.nūZ<֦Q}heWuUf>>UK_wTM6ppI#, V,U$wURK2Mbߣ Io{)W\DIK黹EF/ $YE ah_i$4oVYcGUVK8[ x漱HVQ.UyTK:Q~/QUagI T08iJ T:/'賷zUAy.i:3$:F@HRHޤ>ZZOu AJ&ȥ#$k;3byŬVɬn}k$##:\Ir#G)vM^yGz69@)QmA |vTIm5]>+F5SFF(K#queڍ>,U-[X\]Ւp!HvmY]6tֆՖtXE\DDy -+}RQY[yʍ:I,_b:]nlpRbI!i\_U=JM/mbV 9hY9VF_)8.*u,7^i!1"S]$l'On" H"5 -RDd% b=f{kkX/DDA3,;puXefv]/|4:eDw!V/L.eVh4f㯧7{4 3PĥUUQRN-כ`OAo%HȊd=1$lz|_ ~*ioh6qATޥl[heOFC ybZ/VY#GuUfFEF!iaY' ȁs DVMyOY-Qnacl%㠗Rs%.|88wV\W\ۋG:#D/!uhU)>NJu[Sݭ[p#@$O"I40[I$Um̚^ O{*nHi g%iD_r~HdePvΠ֑]FS.h LaVy>̈K p2#zzYkw~b+m$6bͮO $U`vUK,q\[Wb]v*Uh➋CWbXgwˠ^/KT_Q'1TL_C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]coz?t̲P2wU%[{GA.^p+me-%gI5b}_3D3yO rqfex{(q,?%yyebQ?_?8dBZ7R :GcB m凪֑K7SͥS,>ㄱ81WT6Hc7(x9^C9b+*|jwm$G?D q^b7XnXƱ+Ç*NEB]Igj-,\!BEqODnRH---'OR6dE*ªA*Kc4Y\l`>f:\,am'߽Tm'-r\:^A40x<ʲu+|(VH}Y'+RLܝfc QV4GqTƇ$Z+hAo' KI,}Nkd]o.JFV9-[&424i²6ʟSUo+ QYo`Ur$%(]OQdgnD* GEAscUER Tܾ7EQy^9gi'#^X&^/bѹB5UhKy"]\\i߽lUTP"+'0G*QEEu5 oNRЬ4tf6o (^][[UpvRT$Һ>_qUcT[VimV>62|У?^?I~UD1r_G47-1J>yo.҄-m Bb $w _Zi?ߟ"H/,v露Xq/C$BV p񼿼S[;oAm?L~ ܝVoUqWb]v*Uh➋CWbXgwˠ^/KT_Q'1TL_C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]coz?t̲P2~g g`i.\Ou[vgYe&4ޤ"d.C#˃.oWk;>9?^kk־e),%.dĂ[=?hV$oSґӆLQÊ'W/ݦG'QӵKYb&].W;A$(Ie^>r}[|{MͶح%ޟ-\76s?-%hKbƺֺ]6,w+. NRoK7($s' UV>Z^X̗6YikhE7եP4EっT^Wn"8-m%VRET_,Jiڒ[hܽFԸf:rpHgI-}Y _YV;RiC it蠺++{ۀ%}Qբ$Io/VQNMC L_Ii/7UeSvu}ezk-غxt6=> -.2&[s#("fYfxWb]v*UثWb]v*UثWb]d~Bi?.2sG+/R;/dOYX12:#@?Ҍkv'ddi"IfeXIQ(#q4~ OQXfM>oKxXr}FERS3WkVWP^z-$+/ XFzQ=7_ʨ +sqq4$)x fbV7dDhvD9b wΰiv$-m$orMfH#>18}4u*'SS9 =rh ܔ#pأGEe\lО CbuО $,|),nU}櫓o̍#H́PMEpoWi`|ޗL<6gEO3JbvB(تVfҢғSg%ۋhV6%Yhx2RK7橊t}kԓXxnX_*]zD6ڻ~XaB#04#ؖ<_ 멣+,XיKm: FY\Z8CLqHwUX><V4m$a4*rH^F$#iJ+.?aWKi_ 'ܕrRG)9pIԋ>J=tn $%ӋCLUON#D\zrȒ|MMapcRY؅%1NWqJ*4L&W],UdlТxQ擕m,Tv#l!fYJ`o>"#*C43“B,2xBYXT2t8}Z BOȷU)Wr_D?ݸ3⸪JmA,I H-,j NKrVGOqU̖ڝqtth.eY#FGa&0D?1Uk]jM)'D fh/E18xq,b2B!yf?HF%VI/r\UerU7%i{oNHRD2+J#*$-!z/W&[4󿖤72M(H֋,4Wm'_Abm>ǭ A <;ErB˿1إLfY *EųpYclqoD-"Q/[qWUAZW1UdWa7%Fq9& aG#Ev"⿽h<עoM?VKYhyD8prg⿻/\lВ{AfvО 4%/,hձUk!ѵNص3$S"И>Z J7Hw7S[K%QA4rB7UI.*v*UثUT~z.]a.mx|U.R}GzRls;1C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]Jã]jqZV-gW#2۲Y!?fr$UHZ]?O+p?? iH2^7Z]?O+~w+_ ex;:kw?qU'p??dnW WøVW{OAwu] iH2^7Z]?O+~w+_ ex;:kw?qUyo_c'i/;[n?RiWGz\xp??Zt7}j?BONVy'nTG3龥^} N|}a,0sqse_Swu]_!e8;: nT/'kD~5>&nU'p??dnW WøVW{OAwu] iH2^7ߓ|ֶz#h+W[J7y_BI2^;nP0#@h߼/qU iH2^7Z]?O+~w+_ ex;:kw?qU'p??dnW WøX#eHsPPpOk"uQhe!̼c5~__uP}Bǯڷ pz~WgDPS-YG0zwD;ʌU"cR8UL{J4f }F/4N UOdߦmKaOs2-,q+eA;E'y&x9P:ߑ-6r3FΑD%PVDoFIDj>Vb {xеhDe:Lk'׏j'חnu4$h(JKi%VHeEoQkӒ5Py*-PݪX^zb}V*fOiap&@=Y)H3*ݭ[7$6Exm.*LJuMjvY}X Fq3E'ҩ晨51jV$ $B"y?~W?Z$$Y% $_4I'2bAoHэc)D8un œzAU֥vF!%n_35MM6|*#Tek ) #ON14$_(`"؏N#Tcm}^8 rH_QVDyfddK 2A*of G-ړErHy$||>_BI[ve{XudX1E1%=OCGP붋Kɤ[d30iʋF%U]*Sb.k%w ,Ϋ/7njޞ*4^PDv <߹ZHfN_*˚3k*m N,o]{p#jũ<2Zu0C bvtf=$_4z|:չsk{WXJ1p=/Ycq2O*_!V;7Ipc=Ka 8mlUZRqei{_Y;F5N<}ԪBeY<\|eY,"a ^`H7*'oV9 ڥ5(ޣg#Li+!_⨘|h,+k?\C/¦oey^8E.Ui]S(K'iO'`%Hey!Hc܍/Q[OԒ[؄2C%I>JTeQ(y O ,UqWb]zg-RO[eVs5 Ř'$'K,/4EӍ ƿ2ypN-'VQTF*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]޷Sv(v*Uث ytkPv*j?*cIC? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbRo6*hQX/MCbFW? mui7")#,҆"\8b*.X#⪩ o^^6ĶG m"cGe'+ -n0#[?hVC}0Sē2  >_pEC^߷͟ZdqWb]gM:eh4( Z]$=W zI҆k7?wҶP\VMZoL{I/M7$⎌iF I?P[.~7q]oAlk=!zk]5c"Ti %dVo7LK;:.jb Xo9H.E`f@'"=/ so᠋.~7qXƷ[C./TKxF<HHY/g'tOnkziz'J[}/eer?ㆂ,4Sc%xbmSɂ0ۤ>~\h-ߘ].EaUErfXȆxRl"u6zҷmV2KQ[.- YE_kNqG2z)'?d~7q]oAl=oɚN&:{V͚k071B< "<)OIݖz8h"ʕ֢] {[tigY8Gh ; 937Ƃ@ysvbTҦ{hax.m}EdWY#[Ԥ-I)?^} e޼4M}]̺w&XY4LW9g, (9:4y!A6QPIiirngbyR&Gͭ x|_i9m=fHeUy#"E&؅+,S[*4˽yߍh-z8[.~7q]oAl[j)uO3'5B9'DxaՑ,h-_^} e޼4˽yߍh-z8[*K]IhADXc^#cAl8[( /v3I]5IвNUNj*rDuxݗ euwwBYNBLq]u=2<:IJM!TH$‘;^X[*4˽yߍh-0[MN]5/=2ytH{3鹗t)Hdyߍ4e޼4ʕ֢] {[tigY8Gh ; 937ƂU~7q]oAlןyƂR]EKE u$$7d%WhTo eJZm:qmx+CZ~x~>?i[ eoAllu/m.ZesA"OM!2K)Q eoAlך3^} e޼4˽yߍh-z8[,WA+ē!1(m>֣l=GOZb69TC? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbRo6*hQX/MCbFW? gIͬriS\MՙeX3rcoV`q#y<Z-sIHVI /2m$9Q=rKOʋ4?X/;MHjM^}DzTӼ/Ym8$mnI+m+Ĝ -rp@L2rqgG&ث*}<=L^~z?z|>>9_>8??WPy?㏢SX0.)RMlv}m2|73iRXK=mp^ܪܬ[LS3Ux໶D?>1f>M^3x>q&?<M)~Y?1.5{K̏P]XCi1)&hlN_J؉씵c^ϋpxZ6VDNJxqduj+))dA ;4;;[lGVo-%no'+y法ln̒iW 6'/7^P9?y_Lx~T8YWR/(q5A<7qvdvyzYdx~Վ\ 2/-jqzka<:ϛԑ=]DD`kxr$7޴03.*<ˢv^`u X5׮}ST[~{T$ͬV'._ ~NF5M -5HQ_{إ Y4}VOUaW 5_55zL77i,nTinmO_/渕ԌQhMb}`[y1j7e4 Z8G[E Lߔ+fBy|5̐j6E2Lg7%-? [ D:myCP1#O@yI$|vmӾ5#foS?p74O2y?-ZZa>!lYb-H/A*]<Y"5/gZJ CBJ) ~Z?W/Ǚ4kW -cZ3ⷲ4m$R]z/WkuUǜ5FE׺6on"!p^[J8=<ܤTEIK4O0YyG]>Z"ҤFK{R;[EHMJE4"+lOh&5](yNtUo\i;]ZVHR"whI"`(oiWkuG_$LO5jalv> ǫs2^/.K Mpfu.O7l%͟7Zy{f[Ҟݏ}$6IS䶅տ"u 55+0[/ԕA~,3gHwW4N֣[mCKq[efUy5WX^rCɈI%~Y`hj&hq&u/xE,Z9bp܌ E=[?XT=7eMo[;끷:ldfIDȒ~<_JHŎiZk ^ 4E-n-OKiǍ*r^PWxu(i?j[൬CymzsKi}DE f*ڮVli%ͺgC8$tz,MۭI=6g|iy;MԴIeԮo im.-`UYQ7]Z[ԟrE!yʾe:0iU5̓iAE/P=F eE_M4SGP KBVh|Zjr$6Uk>+)wGD,ݬ6^ -DYn--Dt}f&o&qt[QdbM[KlQ5KJO0Yl/vinwv?_On1m[ejn)7]?OH_HQgȐBXR^\aCW~X4u,}Z飚 E o8"~%_ykh~b_,iVwg"&V) \CQ[\4N4[0֧ti :l3Mw |բfӊVǪEiv~e6MB[nc;\*]Cr qpBfKk -8,<:F5=vEINړ^sn%{S*(d$dW~Hԭ|_/Y%f>Wy{?ZYei=y};i&4f>L /+'4a 8fFUపHgi"!"ukGIKlKFm0*Ea;UJ!̷8H)^Z RH<{^]J7/:sI/>'I&VȱViU~};NkVM}[->K8a[ = 47`Җ8岆tϏdGH-?J)w]I獾g'1p9UTtdP?/?w\˵?XkF~(bYi-. ( , v*Uث!>LSbOuQ֘Cg&/C? H^v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWbRo6*hQX/MCbFW? >G}P+FD΢O6 nc>W[95-:K,#^r,fE40yr?iq5uu-:iᵺkVsR+MR8ȪICUmq1#e0- R#QZ$$C]+_OQ+_Onjwԭ?2!RO\x}J?q++_OnjJɞ_?Oj:Gy}[Qz9]9朸K^cy[P-.5> ;#ΐ1Y]9q}oCe~OßÏ^v]חm58@Y݈UEQə> )͂/)$eE쪵?i+_RO\x}J?q++_OnjK<>iuK{[cx-NOWˏ^t(9eCt) ,$b98H[2!KK5{ * B~^4/7#fF?iq+/k#?_}_z\OK=N<98Z'^'~?_kcW&RO\x}J?q+^W8%8nlp^+F oK+qq8 A?rMb^ kX2ips$`1.w'īD2xק2UBS6JY/`zjyI| 2 <1!+_Oq~'W)Ŧ[srM4rffbVcHtgX5 Ib.o$KeccB$_Gotz1Dihw|^Y_JQ,MŊF*h`&CbxL Hp">k8Z'H-YJ%zce㉏.9 G>_QRO\k V3ZH/}z;oSӧ>>ӗq+luO+jwݦ#çApGq$aF++32.>njV΁WG`-}oX?Ozzxsq+nK㶴Gh ; 937njBhW MV9 /qep(^&ee2ڼsIJI e~c'ԥwgUߗWŎQ7lo'H8DwX)OK:tM%ߢzkZ_]*}oGxdKKGK6sm紾TU%][Z?^~ЯuYtmqd;,V^^}wqWR?ි,UySSDMr?(֓O-/Y$ZE计[F*}K%Y(%ސi,'U4o5Y`dG4KhmaAč44P啞YoIӷ,UMDC&eWM1[E3~tGn~p%VE~^kֳi])[=ni XZ, 2Z5eN6OEyi'gʬ̖~fzxuSlU'I)6>5)Xge[VdqT&![zK~ԿOz]Sȯ,1TȲRyv5h;1iO,UKkOpk-Ɨm`}YzWmۍ ozƒ)KkƵ8_z'7wkb^MA ] Q ϧiPRf9m^ߍ3K@bqdKÛW|5 };^Y9VR 0ޤ^iK$j1ajobfwC5ޕiow#B`'$O?COϝmL>R[;ȤJ:RUIO, Ѱ0REJwmOM|wWVWX&fKKA(W?wN/ 8HχdjQVyuk ;W [HbE{4OW6\UnaEͬ[J3>/%OT\V_Zi-utSCR̚tֺoz\Iŏ 㾔c8B2(CKh}Q}j+zAhu-uIW[qٙ}rW17Vx= Q2cg_>~_BXMRkPN2%\0﫫_5K-cZFޏlpп4>Nlc@OF2;8/CqiM?Wt{1-Ɨsmb偕5ҙJ3?dbqJ2$rz}\їYIcԵ);8fc{M'ǥDһ9$G"MJdcu$?<WtKKԮ)間]5ɥZ,M}UqWb;GRiI(1Q$U ȶC,1dfEثWbT-o-f;Ky*b>֣l=GOZb69Tow`1PV*1Wb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UتGNqU.1V-L/? U!{{}N a-˸7G)ک&T@E,I5̶rGZ_餏7Z5B׆iQb^Gfz) MEC7־|O<{%g%gvdYmX"V\&VyX;vhAi8Wb]ykR3]zjSo;iW.&Y&PR UI#~Y^[ֿ/cXŤK#6_ J2%"lZK#^({ŕL50.D]OMZmPӮQ.][8,%'9䵅)^%xKa ^Z}kCFgeE0Ӥ={xa[N[n.#U E.t9|}N^pԬj yZE{U"^G~Va<ۿ~6j_Cqo"AqWKlml[VmA%ԤD coo M>jw|w6V.Ee f׮ޅYgg~j4$mDY[|^фõRuX1cWԵf' KmVQ/u{n 혊WI|.mq5펣kixLVIgm7:xѴ ZM\ӗvˏ%1T/!/}⩴d9ލ,xDeeaUeaiBt8Ӷ+.1W~_HvIJGLUߧmW?]b;kR"w_odoqwycH\3"UCZZx!SoORއb-*ORއb-*ORއb-*ORއb-*ORއb-*/`90xA+ *U|d:}BgIe -GXǓ2k?P =O(KWbECU]v*UثWb]v*UتUcH}ya6us %9uo wG4\Ӈ $kv*UتUkm Dׅ8~dMIyq|U0kKV񡍮2$ri^$hgQ8qU\UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]Z?oG8PUثV5iiO"]Ue䝆*2y^h&5ִ."{>ךoVXVGZuZ=CdY8֕M+LU*3ur6IChY}:Ss4ЗR4A5,2f22LJ+?)1/n6.Dz6uwn2|˯#K9I4OSD}Imf+X[?ܤn|cl VOItZRxKUHk$ 46cvpcAsx54Hp#S(k恢M/E:bMo-/V!b#$ё ";*RhzKX*ywGnڬf/1Y !;7}ohne}zUD?i,` qJ&.bN N|$tU6K=!7wzz?m"ץxwV>+/nx-<흕͖{;K^0+oKG8~R7!Ym}Эդi}h~+ (MRhco=A&Skr=M:Q7VPēEI^9fC$Jo'p/"e#_Y_S\UמpDƍ R)ϬP#eD'7WCH/4cm$uݵa"E#<:RI>VW{uK}bYMd/8f]x̼}OU[8A.Eid0R:2>~v *Q+7dhSRvŀ9I?6^1K*ՍΒ RFI-BVC)'4.3*Jn[=/6S̟ xٜ}vKA*@L'3^d?jծ>qj8asXI4lA "╣^Hy謪aFcE"U[j̭!Y}fTDF slzy&ERvv-KEk Oz.<ץX[3Imx-˃s/~$Uh5 {UhbWwW"%.\M'ffTHiqVwv*UثWb]v*ɨACbO@<.]7?tHo5mZM']TII$vWIvR?#k\o-|m[^<d.!Vn1 6Qˇ.D0ZGڰ*-IZ'5k`H>/R#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[W⮒;d9i^74㕸~*#OSj%kpQqCH>9[WvfwK[{R&K,h`\?Ϡ{E|V~sZ+ն\U+ն\U+ն\U|]WOifte%Re<v4lU&w|=sCӵ+N> `1q/9=ok&Uy"Uz6vv%HmᅘFMqTIa?zHl,$01h#JU.HU^i~G4qJ%m`rKe$^)9ĊQIx`ܡ%sh}5>m~Um+If/K GmDA D\40 ri'ӆeQ\1k7Z񹻶 o$UX+hȩ"Z][K+ӆY|Da?m#hq!h)V*9!+qDdh!X7~?mi hUU@UUU*"( /¹`%^\LzXcH\TyUmJY˥ ;kȭY0q28X3 L">*ά 3Z[&$+f֖b[IUQl#ee*E!KC4r\ZgeXQ#I%k"\-¤QIEV/Y|m҂+?Z%IaH1Q|K7ŊSIdՍʏWicdWxRoV ei˕J1/N8FP7/zR@&EdWZu,LS2-%h^Ű;P֗z[H y^(. *6C7D?Z}G^Ս$j%1}oB S?S#NU=r[P{c$3S*Q_O%jK,pjo[HDÝ?o͖x^Q~Ǫ\]^x&~Mp#m〉',^F^?.ly]Xڲ6ӛL,'`QYUW:,sugIOUc%*`5ٹ?Qvi4ͪ_%AVUH`%ݚnʑUXhQDwk ,,2(0UثWb]v*UثTMCbFݭ9`+o~Y/?Dy_?Ք%+aWWIjR8\/YJծn!Y:24HA H^9F"7,U"5|_/kv6o9i&9I$UȲpfy>*>hUmә2c?UV O>, tjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTncoԴ\[#'V*giͩiMGOUS㕹>,;ӛR7qnM[ԫ+s}|Xw6o7a!>WOV>&8 NmKL߅źn?B}5oR*|Mqaږ t݄jޥ\U>9[ü-9-3~y սJ|r17ŇxZsjZf.-vzqTnco𴭤jL^bXʜG2 orocjTŘWKO՚n{>/wtX~^jT$u-1Ƨi9n 5O-bs]5Qֵ;K]sMyg1q2վ(YTmB:휣Q1ҳ [x?Q?/G5b~iױjSSёdkZW41TL_#i 7ZYʷAVJ D?gYs[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_wmo|Uޟ?嵿#sUWz~\W]s[[7?_L4ma[OfIxܻ=d/Sb/wyXK7Do<<=@;(9"_{-GB]^Q*:LZmT1Wq׿b~oS UubŨCw{-G Qܢ/bfR03}+x7S Uub-SQzxJa+ o45YaFTo{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1Wq׿b~oS UubŨCw{-G1j?}P]^Q*:LZmT1TXV[ VTGӸ1I"3XCg&/U:L^/C+Zit1U;4k4[r v *G!0_F\ޫ^kHu#%է[@ܓIcj`@QoYލ\+iƕŏ5kfgk&tUw\Ub?C.*׭M%p2Ihc[Kib@2*'/rF6%C}oY>̼xq++ʴȪt\=߹I TfZ [?⪟jF7]KQc\U jm T s廉FW^H̿ bY Ms,2xMOReeaUeauBt8LIQ C-ʆb^o;dY>̯j^bXnnm9MvUEpikvam=^犣tJ/5{- PimsV[/5ï*GX8YDLII'yhd\s_2v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UتOuQ֘Cg&/VɃx:y]mtǚ 8׉n~[IyG¤p$VAt?9I JG_dGӴ]COTӮ5;%w JkmH8p)\R2?쾧y=?k8lWMձTZU?o#[[L¹NKйbIiO:J-Gh` "~GJqzǓK|a_g 锿yG>mք:Om[]Ќ%В+qФ 1M OM~pc7\|o RMC@{tծ%I.$bh ~Q_WYg}_J'q޸OIY6H{Ϸam;aXu]@YyF YuXD#P.*q"'.}(m憩>iq×_xdpAo+!o}>Hk].GI`C=B4d5@N |[_l8I+>"Y8X+moK{yuү;e`AFkDթekj}`=e?]yq(ފ/oNR!Hc*:ĩP(i%GU Bm;AԵZk;Y"WhgPxoJKLer(PΰJwwoqws]>|!/$hZtZeڨm.)@v:"16^ =T&R]v*UثWb]v*UثWb]v*UثWb]v*OxaQ*|euq v[f=&+pF @3r/cZ];(Kk_˧Ub.IW_Ew%]*udXk_˧Ub.IW_Ew%]*uKIa+,\V7W? x]*Ԫ|J*.IW_Ew%]*uMB?Jil AڇId<66* XAg&/VɃx:I8|˽K4\UvVRTȷ,7 iئ=ۧ^7RK4'$ij}_G*=?km/qibu}{98k&_T3D~ոxSxT~&f.n& ?7XGNo\p \8Ifg3 ^P8qǏpwWykS]GUg7is]L:y?X=g2~xSeVHkjLVTܤ2V-VA J~kxɢxB7]O0( _B?̣&⡯T3Y{H%O(d׮u{y`K;3q<̷L}/1sN\yǒ֘UZ= 3%F8d]ֿj7G_[UѺw"b$ҢPA)e@̈'`7YU+rYiNΩ 7 "T5cŕlU.K.j=,YƤJN*y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈU/ծDE4y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈU/ծDE4y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈU/ծDE4y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈU/ծDE4y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈU/ծDE4y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈU/ծDE4y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈU/ծDE4y{v"/wsk8Þ^]i]Z?D_N*痿i""qW<VOӊ9ȈUZ,ZuH2:ea b1TL_~\;10=5p*Qg_NY ~CSMKKfzҰbu|U|UR66)/-ZA~ob'k,߅P]NY e*j #I?pUIfdʅ$YUfMqUv[ U jVCEHQc  13tODob'k,߅P]NY ~Cw;_f-*v[ UߤI7oT1W~ob'k,߅P]NY ~Cw;_f-*v[ UߤI7oT1W~ob'k,߅P]NY ~Cw;_f-*v[ UߤI7oT1W~ob'k,߅P]NY ~Cw;_f-*v[ UߤI7oT1W~ob-K\0ak"BQ D(*BI%򵜲yٝؒIN*T&vTV<g,7EY4W鬒p? b#C++ + +)䬿 .PͫZiDV6ВKy[֛Ū'3ye/(%ྫྷX/Aş,BRKe4ڝeTB..ݝ/ I H–򪲧%GO %_o}rڭ>ifP~o~G\U;k+IO$v\:)a20G_Q97f0y`1e{wg}V?VxN4薟[􌸪}bj.m-s^]Go?~w֘#4GgXlNG8dg1X>/Œ4ѫKТ*K"1~?b=СЊАv 0!VV늤s:}ƧamuK;BKhWG *9M)&{: G  lbhyF 3ig{xI.3IpG,QWxA6.YO }w |??L?í˞cT! x~)>z=q_34l) m#9ʠ,BP~"1͋I}.fHrC$[龒"Yu^6泯.XGUOJ1M.i{q"I[ZG%L4a?ۙ晤g\{KH?⩎*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]bSIbgL_~]C7d7\|.=-(i? tҶ9K|Ga!)pY<_?L iyԖͨj*4C^&I /%70qpȄqF_W<3h}_gtd[i8ykiBg/HR??c_Iſn:Ajq#[B%U)bI䑅Kf%g$l/^8}^(ˇN>}"8zwu$w0Nx}:ecmuzA4fDb]v*UثWb]v*UثWb]v*UثWb]v*UثWbvh >*ɟX%D_cڬf'+ ={X^UY剩ţ2sBG!1iow5Ug0u2ssVa#/&Ts'RISm{T:jMJފ;>>Th;K仸ZO9ӉW[H|)cFG/Z0VhH(䣣cO-9-a2[ԞOx^zq|)Vq5F2yPґKhŸq[Q2i[ɛTiuvXXJyz`|8w~-_L>mޞ-_L|)1i3.n(ѹ2b[Jw?oŸq[T_mcO>⶝yJ%vHZN,U(.FcO4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+ni?/O|)4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+ni?/O|)4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+ni?/O|)4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+ni?/O|)4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+ni?/O|)4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+ni?/O|)4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+ni?/O|)4N>ۿK }m ?%S>)Ÿq[wOAIzOa ?qV0^e8S+hMWwz]jK$ ]C:||)-pW_ϳ'~]C+/OeifLĎ?hXXɯчAٍZ_ҤI]I|uYףWTOXr1V_I_Ss/wHA@WھUm2u?u@^#cWb]v*fLbUثWb]v*UثWb]v*UثWb]v*UثWb]v*U.?b'Vy3Q+U~a1s/{_!ثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*UثWb]v*Uثjgoodies-looks-2.5.2/docs/images/netbeans-plastic_sm.jpg0000644000175000017500000007723012003555452022060 0ustar tonytonyJFIFHHExifMM*bj(1r2iHHAdobe Photoshop 7.02003:06:22 15:00:43@(& dHHJFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?C)pckX_E?&u ׺C6W6^bN-憑sAI%ՆUwX'7Kذٸc=?I2d~籞>X`2-ڷnJ5ֹ6 Q_~?@o|LKE Έ#kcWK2"sGNǻWײ涛~Y1v>kU6״3!n۱Yks}/yf[K7}Qs5[dlw) 2ׄ$Se-T弟Qd;óKTo4/ʮq#C!%`֐nn[u$ju00X_n:(ʷ:̺v}On,=kv>kGE?cz.+!p; }@C{lfYX;o=ܚ`wmcz_hM_M~CZ ӻk?GV^i& ?_ng5MeoK=ޗݶ;Ρov~4ϧw'~ĸJ1W{b^}Og*ƇwFSv~S/۝jK;},ucN~\%O頻t3Qk,88臩+{7SN.!qK6zL~TNXa5z-hV7xc,wvv~_wTT鲜g c46CvȒ#n;*lEANNf#_k+`k]K\ָśȢ팯;wn}4žk7F5G>MnNƲSWsnݞ^Z?LM.vCCl-%gkvM%6z~=sqh{ǀ _{?{1Cu?ܖ<%!u65܇DhZnwT~Ӎ-ՠp' \F>C}OXvT[Qc7ߡbݳyE#ֻގѾܜwhd4}"li $_RoMu9N{L'oKUZ:~YwTp=orv]k݁^7Z<̧=-{N͑[ex}N~<53XxPM0~ǕFL2vvO襯Zvn}ʷ4u|y [KI0~c7,]dx9tuB˷]^cM_઻o?Oۑf=zu0ڜW6};~l¹ P0ƓF?6՚uMy{ȶ@V5ݺ4lt(OM5R͕5Wmxr" F5Sf.+>Llq fuP;Yϳk/wk45kk@ٻOJivŝ/M'еem}5T?ZQZﱰNo*X  4d,uV זpkz%s}vlviyNn>ڧ>W҈7{x;ߣ8G v۱ Anwo*7Y/T湗97`6ȱwU1w%v7nݟ/u5ԝ7K}N7c45;Q}6`OVklcnߥ^g_hkP׺mYk+1'9ox>7E9~ĵ]۾z~NƽŒݭojh$9ؓ?*2:I Z -4H]nsɑăΩ" %az/"t6ER?kX?$/cRV?+SC5"ۅLsC]fߥKM(zGw3lp$;msv#ܛo܆( 4RWOhN%6y,3nZ?@qoNb*vLJ̹o[~N\`v%j`x(IkYa0ַٵ>Zfg㰀*!?V|;JF?Mĵ#F\m2<~l&Dp <a e ӌO}R*ZQ#ѱI&LE6[]Q G;CU=ɽzG F$~ܖѻ9Cx`h'ʳuQÝHӇ$n)S[=pִ[v?~,X6#~5mw~cؖ?jmV4LxhsiPL='{}voA.i;uaþ%_znވESOs m.Ac^CO\7"ۡ479B?bQ?ҳrqMu\bpT;fb5-ѻj dgW[XKKK)-$ ]~%> A H7{)#VҸ<7f,kՇwRC˅Zx@pYjlDuV[-T)LPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM@@8BIM8BIMI@ Untitled-2@nullboundsObjcRct1Top longLeftlongBtomlongRghtlong@slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong@urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM Im dJFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?C)pckX_E?&u ׺C6W6^bN-憑sAI%ՆUwX'7Kذٸc=?I2d~籞>X`2-ڷnJ5ֹ6 Q_~?@o|LKE Έ#kcWK2"sGNǻWײ涛~Y1v>kU6״3!n۱Yks}/yf[K7}Qs5[dlw) 2ׄ$Se-T弟Qd;óKTo4/ʮq#C!%`֐nn[u$ju00X_n:(ʷ:̺v}On,=kv>kGE?cz.+!p; }@C{lfYX;o=ܚ`wmcz_hM_M~CZ ӻk?GV^i& ?_ng5MeoK=ޗݶ;Ρov~4ϧw'~ĸJ1W{b^}Og*ƇwFSv~S/۝jK;},ucN~\%O頻t3Qk,88臩+{7SN.!qK6zL~TNXa5z-hV7xc,wvv~_wTT鲜g c46CvȒ#n;*lEANNf#_k+`k]K\ָśȢ팯;wn}4žk7F5G>MnNƲSWsnݞ^Z?LM.vCCl-%gkvM%6z~=sqh{ǀ _{?{1Cu?ܖ<%!u65܇DhZnwT~Ӎ-ՠp' \F>C}OXvT[Qc7ߡbݳyE#ֻގѾܜwhd4}"li $_RoMu9N{L'oKUZ:~YwTp=orv]k݁^7Z<̧=-{N͑[ex}N~<53XxPM0~ǕFL2vvO襯Zvn}ʷ4u|y [KI0~c7,]dx9tuB˷]^cM_઻o?Oۑf=zu0ڜW6};~l¹ P0ƓF?6՚uMy{ȶ@V5ݺ4lt(OM5R͕5Wmxr" F5Sf.+>Llq fuP;Yϳk/wk45kk@ٻOJivŝ/M'еem}5T?ZQZﱰNo*X  4d,uV זpkz%s}vlviyNn>ڧ>W҈7{x;ߣ8G v۱ Anwo*7Y/T湗97`6ȱwU1w%v7nݟ/u5ԝ7K}N7c45;Q}6`OVklcnߥ^g_hkP׺mYk+1'9ox>7E9~ĵ]۾z~NƽŒݭojh$9ؓ?*2:I Z -4H]nsɑăΩ" %az/"t6ER?kX?$/cRV?+SC5"ۅLsC]fߥKM(zGw3lp$;msv#ܛo܆( 4RWOhN%6y,3nZ?@qoNb*vLJ̹o[~N\`v%j`x(IkYa0ַٵ>Zfg㰀*!?V|;JF?Mĵ#F\m2<~l&Dp <a e ӌO}R*ZQ#ѱI&LE6[]Q G;CU=ɽzG F$~ܖѻ9Cx`h'ʳuQÝHӇ$n)S[=pִ[v?~,X6#~5mw~cؖ?jmV4LxhsiPL='{}voA.i;uaþ%_znވESOs m.Ac^CO\7"ۡ479B?bQ?ҳrqMu\bpT;fb5-ѻj dgW[XKKK)-$ ]~%> A H7{)#VҸ<7f,kՇwRC˅Zx@pYjlDuV[-T)8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:cb9726ce-a4fb-11d7-a092-bdc7d824dd88 Adobed         @(  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?yltG PCb^=Q?HzO5$p)I=,os5k9VrFEI>Uk/[k9PGv}\@lj+^`Sz Ur5P}jB1ׇ6}&}Zƒ_zہԥH!1գ&z s9>_6*Ui,mq)<jO[aS _O8cݒ1RK u Pxegɣy-Iuo#Ds M[fd()RQ{Gu4_T~gY]@q,YyXnLd<EiAoڸDwDjzΧiqg6/p$|) OILFG#9JU0tJRnH*r ÷7čCDoeѭfoqu$Bߵl27Xt/"gX~|IP ntqĊ*kZXmJڒEIN)RJ:SVč .uio#zC$ѩԥSNz]ћ{zp yTU~[L]=bnlHXMDfRT[ekTFXb"HrįRJ+}8r͑x1yY}N4<\-سiс k!&0„늦|:?H-^BtP.dcE Uޔ_ȿp]E U.#ZJ%?v|'$?c_|אSNWaǧo\@Uc 6zgc/R;c8P69⮩8|N*⮩8|N*⮩8|N*⮩8|N*O_~Fx fkFP +Yȃ'{!R?1ݾ;]*Y]i2z1/Zdi)Ǚ$oq!Fp,`0UfkWp(~Ez5F-'Ҿ>øV@~$-Wle]nb26~ _F6W[mU-bPhW]6ZQ;iI<]Gs%ɹXNbJP7,fRɑlUc^Hv"75^H>/]5plGť\/?yh#5P*ybc䍽+dTV 'Xp_c,@eyVT8?hP⫤_~*8%JWNTqU--RӈSOݐ9.*}'Mn Ve!bcZ&ףe^ R;. !T@uثZ{ K;K +qwX7^NI:]."2eN/ZwGw?ӿD?sh֝'Q_F6:\"1~sэ;NW;miߢuE4ckN/ZwGw?ӿD?sh֝'Q_F6:\"1~sэ;NW;miߢuE4ckN/ZpuN/ZO٤~BU2Q>MG<\ϼ#.4,</WE*F.4yHxBWWI8OƊ*"9XPqQjw3"ۙ*8~~*U78~A?T[d6 V_Lڄ/4U_ޕCJ|c6-5.~1˶4z!펵۷4;VӤӚ7drƠKZ7_Y7o&m|UW Ryiؑҙ !ľ-J uMLʐE@> \/q`5"iʗ2JU0xqFO*އ-:WN4Z3U_O|(+-@Y"lp&gf^)"(M[d?1 =04Rc(Y8%yu/GlnYyQ/O5'ÏrUn[{;F'3!7qmͧ$@1h^Z]it%FjE xgc8:ײ\G7 N ([|=F uһTϐucǹ^MGX܋4) |x+ǹIw^ (c1CӍ$-lyHa2?toZG&$U/5]k6Y"$L\Pj@ke/aT^,m/u]fLqZȊT\^dܑȗp!nX$V:sGyqH"54ފݱW6yT~%C=D^$*⫡O&2O0*TTFˊ̞[Yb^~WjW 7K.*|,#S$X,Mnq-FYBӊOD#DЮ倝 L4α1XۋQyH̋er̸#FHq{sqznIȲpkRUw;tĥaxV]u7OѦvH+О-!G/~*:;]BWQSF3U*f9\5?eq*sg/.LhY mF\Ak/y*0yKA4!$XSw˿TL-Vi45F__gY)TdV41 ~xIm֏t+t"H"nqb?S>N 2|GN iNOl䭏'p[%=yw|mk"ג>/M*Ipry{GI$c5F$ciQ4]-#HUP^LX nMIq-.:Fzӏijw#RNîw65k_@fv:Cʱqח=KXJOс *e.f5&5q%.DdEE Q78n,N"Zx,ŀ/t7z}K1CaA|UMo)f`]B@z|DUt:=[OH&6TXWEȌi$PE@ďuQ -ٺdhG%+ZmKbt՛XTEw*;h̪r#.YwPY醷6mjMɖXQwғ2iƊŤ*X5_1USm8y]'_kxov*U.4ɍ"$U >(?a u0WaRG6~l4[3\  `8ʿg'A) X-iBԷǸO^|MZlIR! OM'~|8+F]v*kf~@ ǃE^L6!vmT5k`0)AbS:kY 1 Ycq,۾JLsK-%!E,/tL.J4\NcZؚ/^)c{4-O"(5b(ú jT8֊B[Q}VpaOVIXҴܕUז(DcD >)+cVJfG4k_T״ظ!gb>*~KXzyeVt,YBw^CqVUH0mJ9TlH"vbUǶ*UuO#S/:'Z}Lc\2P92DO.X,PE@(N}"nQ(h)ы1Y>~\&bl)oL󝗔ndԡѾexZ'yq7{5_M:/&EHghBD F7A,?G1ӭ嶷y^^/rX|ON'U6]v*k֦NӉo+Rlʎ͈V+y_VѼ6-,[ۘa+30ol@;$ƦDR3@=J=+|?ˋ%TxR,q=OސRYY8Ua5^Rg>[q*Oį¼>qoGS^qx{,5I׊뗿'_^*^qx?\A%H[-IDBCp*:kCO K }rD?6DTFվPzW6vȏ"9"5m*BlxJ-գl{W4vR":(wiw e B*EE= ^ Y(dPvN>#DŽ]a )އcW;6y LxJ nDŽhY fִ+ODŽh^Y Ȕv+ ^ mAmDŽqWk ^ -IA\xJx\~ 5W)ÔLzKD?wcs(O_(Mr Jkxmd[Gx`цK?cb+[MH~=[2g `LY+ۗ3ݭ[ 71-&X?9/QSe{BFt_L3_Tv*Uت*ަ>bG% qXޑ(TPyI4/!Aqqmslm\*\HD][[ic+PE$;12gҁGO1VIjֺK]%źRFY u;UcKUԼx[j]KUԼx[j]KUyKH`ӥṺDW7wN@p%8_>+YJ+]YRr 7SBpETp@ GrX?$RAԧѶ`ۋE5M ݉9,˃, 4yDk]jv2QU EJr術|l<+t'yT[{o@л43-a)͏+sigk#hYߪji;^*o2MYVOYoI_(#~[Uq^9)<5v8\HBR }pq/ 'N4T=y(yei țˠ FI=XnfOYfp%ZqGZ2]v܋yx9$5'h::ɑ3go|xׁ]/l..(̫)RZ>%Ǎx#*O'^JzNk]^4?^ !]nCb6"|_d8 *$1[? P(kіTЌxׁ$Qn6.Z^8>=B߽~mZuo>"*~O?>"1i5=k idET }+30˙@-zSI\ BkP[m =K$jxBeX$ΉD.YV?LJI.&@61$eY=)ZqRIdN)?nt ď9r} Fk]>l+s`(Z@b\jgn|MS'b]yem,rx⎜ݖ6!V풄AՕI4vJ3_[H/`.ч`Il)čɸ8rq*lEm' +Òa KѿYK %Ux}N𚓿- ];c^xx}Nw? %S8.1Lj/ w<YIU=@8xWb]](c ؑ-b~VVF]*\ܙ9)?D*|M)|T#Kf2\75<# d(F~l9oVtmO{椞EM*EnЎuWĕeN#]Stit<wLTU2Ѯ0:lȬmVS~~W7qwo]M_.mVS\4?w#c7|~_+U[zL?/swM?)kN-ss &YyoԌx<)=HFU x>r*^Uk Q 1LCXܾ%[SO0jx#D'u_i5[Z=yT11@9c~?^ ?"V;Q̱)$x EUJ;|?͏)K}˫^gZ!q%~ 5EZ5ܫH%dN7',Q!(v_ 824C}<>,|Dp"?F7}õ^Osޠan{9| .đ*/?Ïp˙@0%ثWb]v*U55f P1_Mq*<"JJj7imsEr̕hA )D2)sTݡ4Gȍ2ȫ餌s?iESq2$<TdeU,G* i3L+R> Ê6q-lX7ź 튫]AjBB0Ksn%+:AviP(צYk}5}+]MCJjWwSP/һ~>?_ߏwu5}+]MCJjWwSP/һ~>?_ߏwu5}+4k_Z;ʧ*=P9VL21ϫ/?Ïp˙@0%ثWb]v*UIkNMpdAŋ 4M bV}kEX PєkfF9Ց}$X.O ^(mQӑ>c+8e?ˋj6z=zWZR9F?LW|!f0E? E>\qU%Fd0 z{6{bZŭ(D`+$SGb\{bXT02O/?Ïp˙@0%ثWb]v*UBn0PYYJT2 ұ˿,D=q){tG LSm`"( 򎊯lleUG%g4mj\~n8*͔ OFGU@\U!>f}H}]sV3+j9cjWaSV?N/n… fUGK~,98,*87^CjVԃ@ƤѺWQ.n-P&Tb0*t߯\Ulͩ oN;u?U]o dj~*E_*rT1j$mPnZE>*Z'V((* yuV(>qzE*(r;ǖ*F'/-^i`j5DK؋:_F㊮\ۋf ƛ-+Z-&OmB(H;֜G^}E"53'5kB⫝/!~oR#5b·(mԩVk_T}3OvfBDNB*M>FFx4K2Iv41U946T$aēO; Uo=#_A~ƒWHD-1HJ*k^'F "@ׅM+Z,#<#p1)1UEiҵ?cxQ$\ *O*t}-fanXoC犯]6KF.vjTFفku$t*zFpUiHTǗPŅ@ VLvy`Wf1>P~Uuel1Db=WbOTLr}L'>F< rFGi8]NFsdέ,q4|@w[Xi N3_88iߦuocG-;έ,q4~տ/|@:#ӏgV8qqӿL?N> Zw[Xi N3_88iߦuocG-;έ,q4P#ӏ^%igmA7ߦZ>z}_֝yz6ܢ`H-qq }oE׮m#JK+~X58R<%͸v>I*'ZgQ%Ue"7W P3JF4U2c<_(K0Myy}oXmVhR%hJ(WG)/cq +&Fg{ƌ[@Cd?B")$cѵ##I"(__}xޕ3HJy:SZ#_ |<檿xP]Mqe%q@ldDK_lW*TZ<}j[y78cGӟ+D漿r?e?.5Eo(Ӣ8dy={!dZ5Os/leYXxzȉ„ O^Ү-g.īԎR'bj? S?2cX0SuC1o+n3CXWdRJl'YG^b':MsHhT:ʌ UmhL@~3K$a T9OUkF/Ibiv!NUT yG _UvE׌4\X[+~X5hOI4n(̩4,Hw)!8@՗f 4˝NuwsQ%B>1SgBͫkq,&TvqVJ[>FLޟ`U{MCPYkY8qb7qTkY3oAM;ve鍫/KLm]Y_cj-V'KLmRB 5FeWZ~#2c|Zh|4k9tAq0<b̋/&]d=1^qSBT&0 fg\Daa&$xSCQnd8H $ѤI8o[z֬ͿcxO+XYQ;᝹17ŏ4a-RdYBx*SPƟˏ㒘}4n4.Q2şʼ8Jmd zbF,)mUIW?$-%;c ۘ/eۆ?$,>]V]'Oy\qyKqˆYdq|VV omZKfKdDh(CCuk (}G\n!omGHRG ƼY_A_t9&kZD`CHdk_LaKAO yZi^LѸHf*/ݤ@;M#I*$ yI¦FVUQ0*%ž%XH%'Pbr*`҅-RMקk$ o''tPS?/];_Zoxcj鍫?6ڻxcj鍪_+&(d )^r-?"}G܇KO0ԵARP7?bGwʙ-nMğZ%ХIhv5zfmvV2?n=2xn%7}Sm3D$niһSUU}][_~kOwmib? UU}ኻ궿1W}V*][_~kOwmib? UU}ኻ궿1W}V*][_~kOiX#PW!_]X|Ő-cYƬ#TWdffSg~in/|/d,}j:y_#Cd-:{UH(VZNUNJUz|t2~>m8GoOPznZ8'wǮ{=_?W焓U9~-]?k{\m]?k{\m]?k{\mVJJ5xRiʟS㍪W4e^RKn@qnR֕#˥,RR[`1 ( EBב yHUg)fy-eM$^ " LOÒhaxq.*@7^TQcqS>v_ՑWs}$Uq/w;/Kj]Ws}$Uq/w;/Kj]Ws}$Uq/w;/Kj]Ws}$Uq/w;/Kj]Ws}$Uq/w;/KjV~&~Wjgoodies-looks-2.5.2/docs/images/netbeans-internalexec.jpg0000644000175000017500000005046312003555452022402 0ustar tonytonyJFIFHH ]ExifMM*bj(1r2iHHAdobe Photoshop 7.02003:06:22 15:32:10(& /HHJFIFHH Adobe_CMAdobed            U"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?F(۴O~Kkwsԯնuv8m;hmuQes[9G#n#eB\83n׿75 ihF]hO.ٙ!ϲ3|QXʞEȯfۿK_5w>hq>R?2܁MVQYZ @sͿ_pM_P^!k>fuvYhnֹ6 འy @BSrrk 1ϲđ٧j~S#[tS Ж~S/%_pIL6B[YOsy}%0 mg=[k?t&sY0ascۊA ` JrM` i_#9kϡ\o;\>'nّ;m_rR7oŸWXemGݗzߙ_P c,w~Iҡ׉)lVt5o/iuy lmU=;s՟W?"e"qǥ;ٍAx7|ns9-n~zmױ%՚ޞ^˜u6uMc?FY/=$ 5RVݙV1n^׷'L-ΆF!$K4Ank[[G?F2-۶`/%/k]W]S?ľU=CZq\кx}UG'˙׻Fae{ۿkv7~ ,c[s#*jcn*u_]mcѱezu7}=+Cj."d-oP )q?8_S~V$hc~T{/8_RO/)hc~_1}տI+QA8fvOt6Gz(lxoMfWvK\#Q2rm7SuS*Lm=kK=C~PsX>ِ6dv}G?"Iri >u5 n{guٹĒ;lډCJ)$iC,V43=ʃ'29Z?eŭTס#U(u"ο)covuvi'buw 'u @k?NnIko?#:;, 65n>=Q$7Zv/҉};gEI xV9{?_i@RK_?Uas ȭ "\gN2U9_d Epk6h6snz<P.:Q_%% rI$I%)$IJI$RI$I%)+5(y_ѭH)_(ݻ0K`F'/&DW2ID>bd)IJ[Bt{ KɆ%R X)pk, aदi(ȳ—?))J>,0" Jd?)zȳ’!FKE<Qc[]=$zGzlқ1jwFPǨ/kw{eI(_zG^g[noo߳g5z_s=fO_ueVz}z$uoUޫ2wlíO}&3-}MJn#ҟlwIO]8t[zw7o[l|;/R@i%*H)i%*I)i%*I)i3|̒JPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM@@8BIM8BIMI Untitled-1nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM KU /JFIFHH Adobe_CMAdobed            U"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?F(۴O~Kkwsԯնuv8m;hmuQes[9G#n#eB\83n׿75 ihF]hO.ٙ!ϲ3|QXʞEȯfۿK_5w>hq>R?2܁MVQYZ @sͿ_pM_P^!k>fuvYhnֹ6 འy @BSrrk 1ϲđ٧j~S#[tS Ж~S/%_pIL6B[YOsy}%0 mg=[k?t&sY0ascۊA ` JrM` i_#9kϡ\o;\>'nّ;m_rR7oŸWXemGݗzߙ_P c,w~Iҡ׉)lVt5o/iuy lmU=;s՟W?"e"qǥ;ٍAx7|ns9-n~zmױ%՚ޞ^˜u6uMc?FY/=$ 5RVݙV1n^׷'L-ΆF!$K4Ank[[G?F2-۶`/%/k]W]S?ľU=CZq\кx}UG'˙׻Fae{ۿkv7~ ,c[s#*jcn*u_]mcѱezu7}=+Cj."d-oP )q?8_S~V$hc~T{/8_RO/)hc~_1}տI+QA8fvOt6Gz(lxoMfWvK\#Q2rm7SuS*Lm=kK=C~PsX>ِ6dv}G?"Iri >u5 n{guٹĒ;lډCJ)$iC,V43=ʃ'29Z?eŭTס#U(u"ο)covuvi'buw 'u @k?NnIko?#:;, 65n>=Q$7Zv/҉};gEI xV9{?_i@RK_?Uas ȭ "\gN2U9_d Epk6h6snz<P.:Q_%% rI$I%)$IJI$RI$I%)+5(y_ѭH)_(ݻ0K`F'/&DW2ID>bd)IJ[Bt{ KɆ%R X)pk, aदi(ȳ—?))J>,0" Jd?)zȳ’!FKE<Qc[]=$zGzlқ1jwFPǨ/kw{eI(_zG^g[noo߳g5z_s=fO_ueVz}z$uoUޫ2wlíO}&3-}MJn#ҟlwIO]8t[zw7o[l|;/R@i%*H)i%*I)i%*I)i3|̒J8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:db358ac6-a500-11d7-8744-c4973dd0acf1 Adobed           s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?^$Zs~J?cM3Pum;l=r:i 0ۚ8#%>]iVx(H 7RGC#fR՞H[j"vJi O4c5-$,*RIR?[5 mm;.1\FX'Ȏ\z(!Vd^BC2_W}Zxڻ?kVd^6>#%wա/׍m]h|FK5jC2_W}Zxڻ?kVd^6>#%wա/׍mVoRAeڡ}yߍ^c'JyWޓv>!~`I/oigiekzv,Q(D] _J [{{)H0dR=_I[#OBDGG˴K]IeCI?^iTD/:|\$^6n8= Z[FVEeWĆM;KM.0ί!hڕҹ\͖AXZʳ8V!KF"Soq.O׍;-P񖓌MHjilߵ'&XXWb]v*UثWb]v*Ud~{Mơkiiwt 646Q Q2 %AkeV NNE[_\2Mtx2}M ޚI*+/]JWkEyK syPkr쵼ɣѼӉ$~UDwUm\vF2*EAo%7ݏ cĭWljTlnON-$FufZJa~J7ݏ cĮ*+ʿvLM>%i%حA܍4GpweMr\7FH1F *yei"mZ,vCյ YXro// <5w)zn[ |OoJ,N#-}54);TVSDɽ?z{U?دdW6Vp[z'GKpPT +OIY$6A_ȹ?朏 Mȹ?xJMYq?=?r8+Hw!*`HA[V%e?.O [w+/r8~~'ӏ [w+/r8~~'ӏ [w+/r8~~'ӏ [w+/r8~~'ӏ [w+/r8~~'ӏ [w+/r8~~'ӏ [w+/r8~~'ӏ [w+/r8~~'ӏ [w+/r8~~'ӏ [Jym6ԘЫnB+-CcZIQko2B+2D߂)|8Ҳ7oaKkYYH yGá?|t[^/WĆ_?$.c#&YςomٙOgĤߘ]QUwF`pH=Mx Ky1U,B5ನna~,6 |˅ kɼNRroxUfw=1TS//g{ml$aEdr8t/ŌNFGM%/a k9xzQJKԟq)2hC;Gyu$]"Ign%w+"o9ns% ; zw# ^Fx_iUx?kč-ų_"]/Oy9to΀,oϏÕ4*_T]2 eN< "×'T~WkkJIk8 i$hV d(C~8rN }\H{%CIDVg΂Q鄙Y|b7) roR-͟OFGՑaM4&8Bj%(~cxbܓtu^&AjDFf "1z2Mr*MqWroxUܛ'w&87]ɼN*MqTLIzv+/%7[m-hRe FRMd_ ?+av8'a |Cim& +-T# :~ K|8c'IIiq#hfO1zl(f˃=ZW+6)BsPxE蝑UG+&O'o'Ӄewiewies~v85Pmmm.}]b W-FɉĢcAia5xӏpt!D%x1en,ld%ijhȳ,ɧ0TD# RZ'q9 WNݽђvd1!b)N=--JCeaTV^<҉fe)̕}YddiZIzQA/,H2;-6 _MK2c5+RBWD\,%HhfH?BEYZDE1$QGkQƆEUP((Ț;O O'o'ӎ'o'ӎ'o'ӎ'o'ӎ'o'ӎ'o'ӎ'o'ӎ'o'ӎ'o'ӎʕy뿣ݗ-_KHEeiA(%P/qo#ҨUyX1H k/)<֞vWK$w> Q+,^ 7K3zG?츑6W0YF[s3TOO4|?o1˯J-'^ֹ g-3^o/O14(VWKefUXX z !^x)xyן㉐Ylibm%ǗE^@k%ݵ"'%yFT'kAHl0)--G[d3!oiM6h>`>p!_G2#_W|?i>g%ݸBU[JHм_*|Lw |Q&͐K=Kk7%!$ H<S!x<^wVӺ0m4tbTH60*0#OOh-G^kHF`(_.Kez_͖C+?wKSYVws$~&*1U2UicAGh{wN{{{Ngt5zB\F>|FT+(yB]v*UثWb]IKPaLﺬ}؜Go&vfy8Ɗۖf+24):O;Z*O4%(~4Edٔ_̿̓W@_}KjSS(Xԅx oR`Uؔ=囹85įnWrդGUuo%,S.HM'Ό:UYd f7J_ ?|^%w_ ?|^? ;G{EKIDM1y#YyZZ8Ɉ'Vq[H"ӟ*L>)%qeEe_~d44ۉ:-YC/^Y y %cRjE?4y3yNZC* @ha1fLI"+DM4dimߥ,eۿJY"&1T_7э-k:;?~q3G8Def)%6Aq~YAᔸ(%+.[}C6e 43"+]H~'KG_B;mB(@@=8F&u!̟xdQ_:?4[]:K"e[ڡʔm~GO?Ώ躄k/敦3 IV?U~$'')wHQX"XDT,E|`ir^L0?_:?z&zɩ7RpАxLb])x9x`2!tM Ӭ!-Ԭ| -;9dC)|!Ofy9dC)|1kGi?̟/?~?uH8Y_2!t]|5#4O?΋Ofy|sRcw,_/ӏ?_ :.>q'KEߧ]9dC)|1kGi?̟/?=V֥ў]f6$3GW\n?mAfO_:(CrK·W]̗/8-L%dsv2)Y$OοX%Co(H֕MȂl&RsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsURsaMcK0v*UثWb]v*UثWb]v*UثWb]v*Uت\&0ɶsU A|FxxFz*7-cɐJ&}ά-^-)HVn/' *֐SZ5+soCqp `8/W?ҫwi3pE,#uvUqU$)$Uq-NHR;hԺBWw`[FB?aTVW[̺[AuA1M0VJu().գ{)7!!Sř-ՕszgZ ?!ʭ}G[_V*??BXp 5b-D/ՊV*??BXp 5b-D/ՊV*??BXp 5b-D/ՊV*??BXW}KY\UѢ@Fcl4m oL7Cw%9-% ^^7Ŋ ] xu),m'ab0F(%deQ6~Qh5ݚ'3XD?.%w+>KҚin&{K1ʙ 7FTAΓ[L噭ȇxƻ)_Mc/)d%H]S# ×GPcc_ bO4(bw:++4-SMIX%#^J $jk*ikn-Eǫ1ݛc\ v*UثWb]v*UثWb&OU.?jgoodies-looks-2.5.2/docs/images/netbeans-default_sm.jpg0000644000175000017500000007402712003555452022046 0ustar tonytonyJFIFHH ExifMM*bj(1r2iHHAdobe Photoshop 7.02003:06:22 14:59:53@(& HHJFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?,-Q]qkec}cgfP+Ł;YKZKnYH6m{[j9cM3>:3s wenIK#B ['ݷﵻXwwTo#:V%λTZ@;i]ڭrc%83d2VMsXGX VIǢkp}w&g)UekcXڏG`cϩ}k26qnniC07n"IM#kk?ڥn{Z@si?gh\x~Mnָ̹AHߑl\)}AVEP/guǝ. EADkV}GAr+qs<4 ,F'p[o\4^ߧA*=wkGAr 61F{w(4F~?}*=,wA?n-h{ %Z747s\:ƍ~Iǻ3KTrh\`lE6;riqt3h}PIoVy/e9>A܌x5U݁2${?uXn=m4UH-_wf/{#N=ȨX0DGmչ5\U}awS2Ke#\n#m=zU vx"dl̙]GUkcs5kw mEݟAxL{3C+s@w97nsSj_SY) C6S[ɘ'S)q!Joזox)ViLa#Z]^=0l6 k̜oN0ȁoA8##Qmst5&}ŊBdhp^?63(ۤA~ҝO.kiC*#ӎNޘ2[}`&Dz:~W>;Q{R/nUC]f? UniQ_S_:Djd߽>Ua؍" as?%?) r\$dA?LMǢ;RަN+>ڞ%EVG{XTzorgm]%>y9ٿ~8r4}QUe`p-x?T`w9}_t1DoNj֮@!˥?R*XL?:sk`#k(0wE%6U?j`_0wE%< gT{YuUXD: _bS c:vYӻ?=u_z|SHA y;">yC_mc_֬gg}TDe>?Me\sϺ,oU,u=EH.,??1@<O_Ea޽#v;\AGֈnfKGj Q>ĩn_-7/?܄>.mKv!$bJ'3(A#:m?y>Cﺲ_mMCy;]S4OD]?RPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM@@8BIM8BIMI@ Untitled-3@nullboundsObjcRct1Top longLeftlongBtomlongRghtlong@slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong@urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM Im JFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?,-Q]qkec}cgfP+Ł;YKZKnYH6m{[j9cM3>:3s wenIK#B ['ݷﵻXwwTo#:V%λTZ@;i]ڭrc%83d2VMsXGX VIǢkp}w&g)UekcXڏG`cϩ}k26qnniC07n"IM#kk?ڥn{Z@si?gh\x~Mnָ̹AHߑl\)}AVEP/guǝ. EADkV}GAr+qs<4 ,F'p[o\4^ߧA*=wkGAr 61F{w(4F~?}*=,wA?n-h{ %Z747s\:ƍ~Iǻ3KTrh\`lE6;riqt3h}PIoVy/e9>A܌x5U݁2${?uXn=m4UH-_wf/{#N=ȨX0DGmչ5\U}awS2Ke#\n#m=zU vx"dl̙]GUkcs5kw mEݟAxL{3C+s@w97nsSj_SY) C6S[ɘ'S)q!Joזox)ViLa#Z]^=0l6 k̜oN0ȁoA8##Qmst5&}ŊBdhp^?63(ۤA~ҝO.kiC*#ӎNޘ2[}`&Dz:~W>;Q{R/nUC]f? UniQ_S_:Djd߽>Ua؍" as?%?) r\$dA?LMǢ;RަN+>ڞ%EVG{XTzorgm]%>y9ٿ~8r4}QUe`p-x?T`w9}_t1DoNj֮@!˥?R*XL?:sk`#k(0wE%6U?j`_0wE%< gT{YuUXD: _bS c:vYӻ?=u_z|SHA y;">yC_mc_֬gg}TDe>?Me\sϺ,oU,u=EH.,??1@<O_Ea޽#v;\AGֈnfKGj Q>ĩn_-7/?܄>.mKv!$bJ'3(A#:m?y>Cﺲ_mMCy;]S4OD]?R8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:cb9726d3-a4fb-11d7-a092-bdc7d824dd88 Adobed         @(  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?ul,ˊA_LWT5~jm@օ9ARFo͟~M8+Q6n#$k+'Z)e[_M[|$x -BJ[BWepyRySUWQgZ}hP-v6zp'uav.K_ O1p~?8uX݃X>ȑHn[TԩͿqTjKH+2ڟd;KdTBH`яSdž*S3iȍ ‹r^HHclqo!HhHt3ji˦g ,XlbD\A(`> ~|y2i's&ArT;% LGOũBkUǖ4sW<ƕ6G4qƕ8һ#WsoJ2w^{*^{*^{*^{*{ۉ[="mgJVpmqT˞`x$7WJ)Oթ.*~[?( Pxk^: 5hӱd$}DꦫI*⩣iK$\lj-NbtV98c8 TVm&hr/O/Iє7_gS֣HdոIXЊ*튢*جEzLSӒUKL}NV--)1 B D?ˋdUQ4VVs,*A pRn5h EkOqU:-CXcRS+*?[EՔ&; v=ybZUTEJQS6[j*sZMzn>Xјq`{AR6\C?gڶ~`Q;:%:耉:FbIK fP`ʺ(DRUثWb]v*UثWb]p1WZzSIh4N(7hO.*uesosn}%8BTOÊ&_2VPw oE0]CI7yn$E..9P|0^s&*#k鋢_ 9@5V/oUm|&iT02*ZJwvSOPk/]u"e^ș*JYnLw,_&_銨]%ҽ~G?LZFU80bz#!Dyb/>Ԯ³h/SJ.vłjV[7 ,q%XUEw8L4qTm-@)OK4$SabT' Vii" RE|z{b(? UUJ[ЃL1ӌZM+PO0h,F Z'uTL;+yVRh n\Aȵd*&1H01rN$qVU+ԥYX*G RNԉYs҈w<|\kJQDI/ j(R+R)Ōx*>6^Zo{k!ƞ?dR?Xgh@&q8kNVvKX_]q GlЖȠN~ŎGoR-ӭ~k?o^p*M$\C$$a;1} S;O3hmdixEVX5<ݦBOFyL^J4=OUB_;lkiw%yz|}2DM9|jbP~aSG]$Ӭz959r㊪yEbUe y O_byK'b bܠxU} <^"wf M2H#qpKlL+.J=UyO0al!0B֡a;OYl~G#ツڽW%r5:GprN<%m. k35y檡FA9i} +̚n})zV?giDŽpş*_ȩxJ۾Y"q+n#ȩxJ6z6l/y!V ^/RJGlڌt+IRk]6ex#j,Wr~Q*2SWVmGc4m\Icű* +[B[-6ժƿeJ>^-Kx#fuFWgsja_-iᾣ[[RcB SZ|q S8(%R փE%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/w%hXǀ/yj3:Z2ޥ8ܨxyÏd3gmB/Z̗Z-'W$w~啸</mV jj7!e*޻s,?^mpe"*!T_[i)eJ݂GIBb?+49y# \"]'WeM/bUثWbR?7B%5;y[ص mĴ@&G?N^=;3j"@WvRo)&P$U90RіV. E⫓LAF5uX -fqU4'UwMN#rZn?GX[[uUrmʐqU|UثWbI66T VdP 4 樿Zp/'BQ#:UR~C,So?/|USk!@J>"Ŋ5]4$u Q'zbǪiR6 xSۏUUnm,\ E=U(=>E B݀؊ثR8V7v LUxdwY0Yʐh*jZyb1hµ@*nFHҼz*u-=>F!]F,UlZ3q]G$hBہbUثQygƭ1s~14ѵ$ǩ7 _maXަ|e;!if&E-d}O6N<&^BeaMJYFua@"r9RT1YʰڬLE  (gS"UVlEaA(xƿˊWb]~nx-!UyrhZ5SAvq,hi<uP$$Ω|f*gbA(+"GJ ⎱K$3i JwO8b/L. 欠|sG_⨹< JR5G"O*3T,|aˍ;S /BSAJTPP5xUv*UZO5VKcҖS"(>^_uw/2E> o:S8pe}.5ZU*+J7Qf 44kA$Vg?,UVx'XcK_qSQȝhO,U֯1m3 &SS,`LQ>(xӧo*@HQW%J%+8T{6VeCeF* I48ofajj w8ԱAD5@>2ABGካb\zUث<5o0/Ú^ѐiHAS]4nOGXׇ\(Ix.]i޵-Xk)/Ƽ`ke:XԴ;oN 5. e@b-Gԛefj$QdRm(-N*]HA1 |zsTQ>qr%8.>.?ȑߧGJ*0h(ըf꼱JԴ*Z&#8eIT?̸K +0ۢ*k*!U[24 n4{hDI"UE2c?gNWb]e:hז66+yQ QӃ8dpFup8`ڿDI`Z'>G#_ATI,~pg59lM:|}U"R΅fRh ,ULNir)^;|;qb)>,/< &Ҵn19~p1OIm W߮*$5O/TroTDK) 5 (:⫎730I U*tV |n]\p@=i:@ bl$BVD=F*UcǘWVpIq*ƼwkigdC Ր*zϒ粤.7@WLP\?*<[_wfYkvvD=H= x=Z+L_/ v[SMQ.lU2]v*H`y*>(yy%^X*id R88 "-[\K,JQgw2y{4?p嶗TK3,6! KI"EyPUc[Eڕ)%trٔu/Bhilxr7ǀ-?{?{?{?{y{Ϳtƴ 7̡\MR7ò~OtnBd ~<ݻ;͉(o,, e#qL ~&(acu(?8ըN.%fBy˺"R;eaqtyEGLje Տ?UYHv JnOݏ}JGJ=O;׹z?_9??3*vzRA 8q^+/Yr]K[e! ~>Uv[e#Cդi%DbDi.?ax3NEKMq6ġRY"v*UتGEޅ>J=UN2$NU$O"ޘ)RX<ܓu(=0ۓ/pRfWp5^PAa ܒk˗Opҧ 4~>UO+~i]7qƕ޳i]7qƕ޳i]7qƕtHh%)=ЎIvOP>*F9Q<{ 8:ZM] Oym$y$fyyB *#z4(%|sj7|'ye㍄9'c)k}  ׍ߤߏn&>|5w7AI xM}ko^7~~> ׍ZUn%uɵf}HR#qD`d |9.¨+yvc(S*[r-qf !H zG}Gyke<-k** k}N (V+bad]SZV7pI,$HV1( aHD3D2KWb]^p$iPTav`(Vچ%7@I(n' Z1ےxY928UBZB9e){$OA$* 9~vճռF-NBYh8,MKwDX[]O>+F?%تcɿ~qWro?x7\Uܛ?*OgPfB)MTN_ +iAh bNC]jK|ANԨl8~ፕUk@TvmRUR#`:6V~_ȿphGph7E l˼VxǘKY.mkEo~\ňVKGލLC+k#ZG C%ZHxU(y"'hzUo-g8PdE qT=D"tȣ*\ XbXҪ됆RAuR -*W'VNhԄz \0Q~#B*Yn*:"cZV"Fy.ǐ? I{g=9 ezZErQ'%B#+\Z4Ak]O.eMe9S_DYR)W4Q_/*CI逪w?F*,uBWqUSت>,o~^y^<~]oeq ˨ aPD͊Xr+è4 i#B` y[zURPqw@T һը*\zUث<5o0ӿS|UثWb]v*U#xQ(W7 {49n>,2]y4OxLsC-οA6UG?1\.RiUJ\ i:Ƃ,gDpi8؁uVy͏xM`_j|&(hѣ,ɢ/Ƃ,_#NἦnXA̕UP23Al?Q:'ZuBu ׎9zx~43zV2iU1ق vaWW e i WEy~ˉDi˿[*ZREk9en$95j8oѳ}WH|3gL_|xBtיiO,e`䩢N?q em槍m!bh Іvc!1׍ߤᏆn$ |5w$CcI' xI?kI^7~O?>!1׍ߤᏆn$ |5w$CcI' xI? xI?k3^ \Fܚ&R͛DįDN?//>fцA3ĮnI}hzO'}n7R}1'ܶzO'}n7R}1'ܶzO'}oAmK~2TxB/ﱃwmc"!T}x}V1+[oW;ﱏ^@a|#jFGN-ŊUjxӗÏc&TY: PdrsROkȎ*?^{y9w^h_Gx]Zn^{y9z.g;M!vlח"9PV+ffi*XġDIoEPӦȫNb&H``?ZXMfԘGdbYUcRFXYa4|$>|U[49&C'D,%E%{.*z|5)Rކ▂xqTp H!^Uv늺a&iLFHB 6SU]),Ӝ,X1$TփتwZ,2K''&Te`Hv#Vk1-QdX5.P<~X lN:K*JeJg>İ^[SXH20aWb=F*UcǘWӿS|UثWb]v*U-״#Q'Ha ('Dz気/H3 >pNSϯ_ ~5#YV]jK@~7"*V8K#qDTɻR5*-Ɠg"[cL1M*ˊvWwu-ƱQ+;-@na#kTG,"1Q@5H6T_[ThiTz2EHiuU j8ڧCN*m 0CʧĪWZHaT 鳱F EB [oQ2蠌Pt*KR~>J@V*~Va /}(0c/j*קl$hB.j٣׉۠ef؁NU,z@+-:թ "3ڈxSUMkԓl諣W ;צ*j5OWӨƸ'q1Wb,տ.o׆<¿ӿS|UثWb]v*UثWbT?IN*(!n#=33nJK 6_DxG YNT)SHs͟kY) FiK0$QOhOKB=4rjUJ# 8,`G!G[yyn.M*%ظy´l,neBϓMki}e9OV^<|k%- 'Kuyj4mRIlxZ1 ˅ (m?^]ίhjX3qP?i?k"iw|RM. F5{1|-U^"_8Ep^߉ @=[mfc\aXd$H<iObycO/軰++?<x,wn}Y PY<x|,qpĒ,NEBr܎vcyHid9̈K|_˃/Dni,XǫR$k^"?4N];Z:X̭v\qTrǀ/G&;?jniQǀ/]F_\x8-ǩ%`;?'u ]&mbx*7]?1*v,pڷ#bjo銻]?1*v,pڷ#bjo銻]?1*v,pڷ#bjo銻]?1*_6jZB!ڴ#~ثщ]^iokW 6xǛ4_ f5_ded\G(e9i(6hZrPdZ?_T](oJKˊ8y kp*tryOuyu"Kyp=$B}2;zlUM%n,*;H8" ح5Tj0!x *{*3oQ66ZEe,>4 9oڱ'K_8Gzy.-VPlQ*op?Rˈf4PZ|-$>C| ,kɻo/_IƳ`d^<#qU7bw60Ւ'WG.`~_o-1++⑫r>i2lG?{汢ku4 _Bu< Nխ P["@胶(cV;{S;%,{~|84e~$ Uh6jU{Kz-FFdfmUI?'&8I [^UBY2[?]>jPY8wG'g6 "!CqU~Aw:H$ 4BSw*H*_̊=X`biL13\Ck[+%h SWAFIgvI4 XqD-鱯Vd4]*A", $/W늦6AYg! yqTZ78Bh JUwWrƬMG:қUSK`¼kbϺo)ґ_`H)Q̚ߡ3 *GK*ǻ.*:[44ryr h㢕gD_儐y*~ab}ѕ@Tאvm+&е;fPqT1W}T9*ص?~ኡt(}n&Qml@cMmd􏊂\BkFDE.3ը |;',IKQy"0[gCHq!?35yqc`v>#%8w~6@BSSl7޼M;Z.t2Y Lq?z!<ͣZ[k` A# ` ~`c82hlM?B-%=Xcdo~% Uq^$2{`ޅ 8 kE(7Gۗ~'w}BP+Y;8ljOw4q^'}C{m?gq^'+Ou?z;VơJ^۠4sO'q7Gۗ~'w}BP+Y;8ljOw4q^'}C{m?gq^'+Ou?z;VơJ^۠4sO'w}G{nq{׉4qm,J“!!Z}Luf{aM/HQKqG8OF Ģ*|~Xc+owei`icQx(PcڼGkcmQE?L_vjWb6 Ҋ<dڔrE 8v.EyYrx|N*J-BԐ?p.AimM̓8#Wn dZn 0X*ZVҾFGM#wܢ$Tq-FF[oO#o"wE* U*MzKdX )Pd>*MUJi(AQviHnHqrZO.C+sbT6r^?2LM.eRfYՂV'$3y"_B^$x֮A]髇xTÏ(PXEB2Z)EOo4ژ o%~OdqфUT#}#]GGwUޤqWz]GGwUdqFd J 6cSH4\\XD3p5ɑ!4Jf40M"d<$Lb&šAuva.丞eYG^5PÄ́aju1*_A ZH+TѫQ5Aas_SX*ţh Z7><%)v\$z̿DvqJ xJtGhDŽH/я W~ӿ_#+`}Ҫ&@P*T)AM?jgoodies-looks-2.5.2/docs/api/0000755000175000017500000000000012003555450014714 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/package-list0000644000175000017500000000021112003555446017202 0ustar tonytonycom.jgoodies.looks com.jgoodies.looks.common com.jgoodies.looks.plastic com.jgoodies.looks.plastic.theme com.jgoodies.looks.windows jgoodies-looks-2.5.2/docs/api/resources/0000755000175000017500000000000012003555446016733 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/resources/inherit.gif0000644000175000017500000000007112003555446021062 0ustar tonytonyGIF89a, DrjԐ;߀Q@N;jgoodies-looks-2.5.2/docs/api/allclasses-noframe.html0000644000175000017500000003460612003555450021366 0ustar tonytony All Classes (JGoodies Looks 2.5 API) All Classes
AbstractSkyTheme
BorderStyle
BrownSugar
ComboBoxEditorTextField
DarkStar
DesertBlue
DesertBluer
DesertGreen
DesertRed
DesertYellow
ExperienceBlue
ExperienceGreen
ExperienceRoyale
ExtBasicCheckBoxMenuItemUI
ExtBasicMenuItemUI
ExtBasicMenuUI
ExtBasicPopupMenuSeparatorUI
ExtBasicRadioButtonMenuItemUI
ExtBasicSpinnerLayout
ExtButtonAreaLayout
FontPolicies
FontPolicy
Fonts
FontSet
FontSets
HeaderStyle
InvertedColorTheme
LightGray
LookUtils
MenuItemRenderer
MenuSelectionProcessor
MicroLayout
MicroLayoutPolicies
MicroLayoutPolicy
MicroLayouts
MinimumSizedCheckIcon
MinimumSizedIcon
Options
Plastic3DLookAndFeel
PlasticButtonUI
PlasticComboBoxUI
PlasticFileChooserUI
PlasticFormattedTextFieldUI
PlasticInternalFrameTitlePane
PlasticInternalFrameUI
PlasticLookAndFeel
PlasticMenuBarUI
PlasticMenuUI
PlasticOptionPaneUI
PlasticPasswordFieldUI
PlasticPopupMenuUI
PlasticScrollBarUI
PlasticScrollPaneUI
PlasticSeparatorUI
PlasticSpinnerUI
PlasticSplitPaneUI
PlasticTabbedPaneUI
PlasticTextAreaUI
PlasticTextFieldUI
PlasticTheme
PlasticToggleButtonUI
PlasticToolBarSeparatorUI
PlasticToolBarUI
PlasticTreeUI
PlasticUtils
PlasticXPCheckBoxUI
PlasticXPIconFactory
PlasticXPLookAndFeel
PlasticXPRadioButtonUI
PlasticXPSpinnerUI
PlasticXPToolBarUI
PlasticXPUtils
PopupMenuLayout
RGBGrayFilter
ShadowPopup
ShadowPopupFactory
Silver
SkyBlue
SkyBluer
SkyGreen
SkyKrupp
SkyPink
SkyRed
SkyYellow
WindowsButtonUI
WindowsComboBoxUI
WindowsFormattedTextFieldUI
WindowsLookAndFeel
WindowsMenuBarUI
WindowsMenuItemUI
WindowsOptionPaneUI
WindowsPasswordFieldUI
WindowsPopupMenuUI
WindowsScrollBarUI
WindowsScrollPaneUI
WindowsSeparatorUI
WindowsSpinnerUI
WindowsSplitPaneUI
WindowsTabbedPaneUI
WindowsTextAreaUI
WindowsTextFieldUI
WindowsToolBarSeparatorUI
WindowsToolBarUI
WindowsTreeUI
WindowsXPMenuUI
WindowsXPTableHeaderUI
WindowsXPToolBarUI
jgoodies-looks-2.5.2/docs/api/index-all.html0000644000175000017500000117145312003555450017473 0ustar tonytony Index (JGoodies Looks 2.5 API)


A B C D E F G H I J L M N O P R S T U W

A

AbstractSkyTheme - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated blue primary colors and a light gray window background.
AbstractSkyTheme() - Constructor for class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.DesertYellow
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.Silver
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.SkyPink
 
addCustomEntriesToTable(UIDefaults) - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
addLayoutComponent(String, Component) - Method in class com.jgoodies.looks.common.ExtBasicSpinnerLayout
 
addLight3DEffekt(Graphics, Rectangle) - Static method in class com.jgoodies.looks.plastic.PlasticUtils
 

B

BLACK - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
BORDER_STYLE_KEY - Static variable in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Client property key to set a border style - shadows the header style.
BORDER_STYLE_KEY - Static variable in class com.jgoodies.looks.windows.WindowsLookAndFeel
An optional client property key for JMenu and JToolBar to set a border style - shadows the header style.
BorderStyle - Class in com.jgoodies.looks
Describes the border styles for JMenuBar and JToolBar.
BOTH - Static variable in class com.jgoodies.looks.HeaderStyle
 
BRIGHTEN_START - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
BRIGHTEN_STOP - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
BrownSugar - Class in com.jgoodies.looks.plastic.theme
An inverted theme with light foreground colors and a dark brown window background.
BrownSugar() - Constructor for class com.jgoodies.looks.plastic.theme.BrownSugar
 

C

canDisplayLocalizedText(Font, Locale) - Static method in class com.jgoodies.looks.Fonts
Checks and answers whether the given font can display text that is localized for the specified locale.
canSnapshot() - Static method in class com.jgoodies.looks.common.ShadowPopup
 
clearIconCache() - Method in class com.jgoodies.looks.plastic.PlasticFileChooserUI
 
com.jgoodies.looks - package com.jgoodies.looks
Contains classes to configure the JGoodies L&Fs
com.jgoodies.looks.common - package com.jgoodies.looks.common
Contains classes shared by all JGoodies Looks implementations
com.jgoodies.looks.plastic - package com.jgoodies.looks.plastic
Contains the classes for the JGoodies Plastic L&Fs
com.jgoodies.looks.plastic.theme - package com.jgoodies.looks.plastic.theme
Contains theme classes for the JGoodies Plastic L&Fs
com.jgoodies.looks.windows - package com.jgoodies.looks.windows
Contains the classes for the JGoodies Windows L&F
COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY - Static variable in class com.jgoodies.looks.Options
A JComboBox client property key for the combo's popup menu prototype display value.
COMBO_RENDERER_IS_BORDER_REMOVABLE - Static variable in class com.jgoodies.looks.Options
A client property key for combo box renderer components.
ComboBoxEditorTextField - Class in com.jgoodies.looks.common
A text field designed to be used as combo box editor.
ComboBoxEditorTextField(boolean) - Constructor for class com.jgoodies.looks.common.ComboBoxEditorTextField
 
configureEditor() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
 
configureScrollBarColors() - Method in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
createArrowButton() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
Creates and answers the arrow button that is to be used in the combo box.
createArrowButton(int) - Method in class com.jgoodies.looks.plastic.PlasticSpinnerUI
 
createArrowButton(int) - Method in class com.jgoodies.looks.plastic.PlasticXPSpinnerUI
 
createArrowButton() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Creates the arrow button that is to be used in the combo box.
createButtonArea() - Method in class com.jgoodies.looks.plastic.PlasticOptionPaneUI
Creates and returns a Container containin the buttons.
createButtonArea() - Method in class com.jgoodies.looks.windows.WindowsOptionPaneUI
Creates and returns a Container containin the buttons.
createButtonListener(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticXPCheckBoxUI
 
createButtonListener(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticXPRadioButtonUI
 
createCaret() - Method in class com.jgoodies.looks.plastic.PlasticFormattedTextFieldUI
Creates the caret for a field.
createCaret() - Method in class com.jgoodies.looks.plastic.PlasticPasswordFieldUI
Creates the caret for a field.
createCaret() - Method in class com.jgoodies.looks.plastic.PlasticTextFieldUI
Creates the caret for a field.
createCaret() - Method in class com.jgoodies.looks.windows.WindowsFormattedTextFieldUI
Creates the caret for a field.
createCaret() - Method in class com.jgoodies.looks.windows.WindowsPasswordFieldUI
Creates the caret for a field.
createCaret() - Method in class com.jgoodies.looks.windows.WindowsTextFieldUI
Creates the caret for a field.
createChangeListener() - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
createDecreaseButton(int) - Method in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
createDecreaseButton(int) - Method in class com.jgoodies.looks.windows.WindowsScrollBarUI
 
createDefaultDivider() - Method in class com.jgoodies.looks.plastic.PlasticSplitPaneUI
Creates and returns the modified default divider.
createDefaultDivider() - Method in class com.jgoodies.looks.windows.WindowsSplitPaneUI
Creates and returns the modified default divider.
createDefaultFontSet(Font) - Static method in class com.jgoodies.looks.FontSets
Creates and returns a FontSet that is based only on the given control font.
createDefaultFontSet(Font, Font) - Static method in class com.jgoodies.looks.FontSets
Creates and returns a FontSet that is based on the given control font and menu font.
createDefaultFontSet(Font, Font, Font) - Static method in class com.jgoodies.looks.FontSets
Creates and returns a FontSet that is based on the given control font and menu font.
createDefaultFontSet(Font, Font, Font, Font, Font, Font) - Static method in class com.jgoodies.looks.FontSets
Creates and returns a FontSet for the given fonts.
createDockingListener() - Method in class com.jgoodies.looks.windows.WindowsToolBarUI
Unlike the superclass MetalToolBarUI, this class uses the docking listener from the BasicToolBarUI.
createEditor() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
Creates the editor that is to be used in editable combo boxes.
createEditor() - Method in class com.jgoodies.looks.plastic.PlasticSpinnerUI
This method is called by installUI to get the editor component of the JSpinner.
createEditor() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Creates the editor that is to be used in editable combo boxes.
createEditor() - Method in class com.jgoodies.looks.windows.WindowsSpinnerUI
This method is called by installUI to get the editor component of the JSpinner.
createFixedPolicy(FontSet) - Static method in class com.jgoodies.looks.FontPolicies
Returns a font policy that in turn always returns the specified FontSet.
createIncreaseButton(int) - Method in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
createIncreaseButton(int) - Method in class com.jgoodies.looks.windows.WindowsScrollBarUI
 
createLayout() - Method in class com.jgoodies.looks.plastic.PlasticSpinnerUI
Create a LayoutManager that manages the editor, nextButton, and previousButton children of the JSpinner.
createLayout() - Method in class com.jgoodies.looks.windows.WindowsSpinnerUI
Create a LayoutManager that manages the editor, nextButton, and previousButton children of the JSpinner.
createLayoutManager() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
Creates a layout manager for managing the components which make up the combo box.
createLayoutManager() - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Creates the layout manager used to set the tab's bounds.
createLayoutManager() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Creates a layout manager for managing the components which make up the combo box.
createMyDefaultTheme() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Creates and returns the default color theme.
createNextButton() - Method in class com.jgoodies.looks.windows.WindowsSpinnerUI
Create a component that will replace the spinner models value with the object returned by spinner.getNextValue.
createNorthPane(JInternalFrame) - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
createPlasticHiResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPlasticLowResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPlasticVistaClassicMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPlasticVistaMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPlasticXPHiResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPlasticXPLowResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPlasticXPVistaClassicMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPlasticXPVistaMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createPopup() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
createPopup() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Creates a ComboPopup that honors the optional combo popup display value that is used to compute the popup menu width.
createPreviousButton() - Method in class com.jgoodies.looks.windows.WindowsSpinnerUI
Create a component that will replace the spinner models value with the object returned by spinner.getPreviousValue.
createPropertyChangeListener() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
createPropertyChangeListener() - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Creates and answer a handler that listens to property changes.
createPropertyChangeListener() - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Creates and answer a handler that listens to property changes.
createRenderer(JMenuItem, boolean, Font, Color, Color, Color, Color) - Method in class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
createRenderer() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
Creates the default renderer that will be used in a non-editiable combo box.
createRenderer() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Creates the default renderer that will be used in a non-editiable combo box.
createRenderer(JMenuItem, boolean, Font, Color, Color, Color, Color) - Method in class com.jgoodies.looks.windows.WindowsMenuItemUI
 
createRolloverBorder() - Method in class com.jgoodies.looks.plastic.PlasticToolBarUI
 
createRolloverBorder() - Method in class com.jgoodies.looks.plastic.PlasticXPToolBarUI
 
createRolloverBorder() - Method in class com.jgoodies.looks.windows.WindowsToolBarUI
 
createTheme(String) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Creates and returns a color theme from the specified theme name.
createUI(JComponent) - Static method in class com.jgoodies.looks.common.ExtBasicCheckBoxMenuItemUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticButtonUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticFileChooserUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticFormattedTextFieldUI
Creates a UI for a JFormattedTextField.
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticMenuBarUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticMenuUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticOptionPaneUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticPasswordFieldUI
Creates a UI for a JPasswordField.
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticPopupMenuUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticScrollPaneUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticSeparatorUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticSpinnerUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticSplitPaneUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Creates the PlasticTabbedPaneUI.
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticTextAreaUI
Creates a UI for a JTextArea.
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticTextFieldUI
Creates a UI for a JTextField.
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticToolBarSeparatorUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticToolBarUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticTreeUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticXPCheckBoxUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticXPRadioButtonUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticXPSpinnerUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.plastic.PlasticXPToolBarUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsButtonUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsComboBoxUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsFormattedTextFieldUI
Creates a UI for a JFormattedTextField.
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsMenuBarUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsMenuItemUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsOptionPaneUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsPasswordFieldUI
Creates a UI for a JPasswordField.
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsPopupMenuUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsScrollBarUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsScrollPaneUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsSeparatorUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsSpinnerUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsSplitPaneUI
Creates and returns a WindowsSplitPaneUI instance.
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Creates and answers the WindowsTabbedPaneUI.
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsTextAreaUI
Creates a UI for a JTextArea.
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsTextFieldUI
Creates a UI for a JTextField.
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsToolBarSeparatorUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsToolBarUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsTreeUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsXPMenuUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsXPTableHeaderUI
 
createUI(JComponent) - Static method in class com.jgoodies.looks.windows.WindowsXPToolBarUI
 
createWindowsClassicHiResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createWindowsClassicLowResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createWindowsVistaHiResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createWindowsVistaLowResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createWindowsXPHiResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
createWindowsXPLowResMicroLayout() - Static method in class com.jgoodies.looks.MicroLayouts
 
customSettingsPolicy(FontPolicy) - Static method in class com.jgoodies.looks.FontPolicies
Returns a font policy that checks for a custom FontPolicy and a custom FontSet specified in the System settings or UIManager.

D

DARKEN_START - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
DARKEN_STOP - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
DarkStar - Class in com.jgoodies.looks.plastic.theme
An inverted theme with light foreground colors and a black window background.
DarkStar() - Constructor for class com.jgoodies.looks.plastic.theme.DarkStar
 
DEFAULT_ICON_SIZE_KEY - Static variable in class com.jgoodies.looks.Options
 
DEFAULT_LOOK_NAME - Static variable in class com.jgoodies.looks.Options
The class name of the default JGoodies L&f, PlasticXP.
DEFAULT_THEME_KEY - Static variable in class com.jgoodies.looks.plastic.PlasticLookAndFeel
A System property key to set the default theme.
DesertBlue - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated blue primary colors and a light brown window background.
DesertBlue() - Constructor for class com.jgoodies.looks.plastic.theme.DesertBlue
 
DesertBluer - Class in com.jgoodies.looks.plastic.theme
A theme with medium saturated blue primary colors and a light brown window background.
DesertBluer() - Constructor for class com.jgoodies.looks.plastic.theme.DesertBluer
 
DesertGreen - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated green primary colors and a light brown window background.
DesertGreen() - Constructor for class com.jgoodies.looks.plastic.theme.DesertGreen
 
DesertRed - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated red primary colors and a light brown window background.
DesertRed() - Constructor for class com.jgoodies.looks.plastic.theme.DesertRed
 
DesertYellow - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated yellow primary colors and a light brown window background.
DesertYellow() - Constructor for class com.jgoodies.looks.plastic.theme.DesertYellow
 
disabledTextHasShadow() - Method in class com.jgoodies.looks.common.MenuItemRenderer
 
drawButtonBorder(Graphics, int, int, int, int, Color, Color, Color) - Static method in class com.jgoodies.looks.plastic.PlasticXPUtils
Draws a button border for an xp button with the given colors.
drawCentered(Component, Graphics, Icon, int, int) - Method in class com.jgoodies.looks.plastic.PlasticTreeUI
 
drawCentered(Component, Graphics, Icon, int, int) - Method in class com.jgoodies.looks.windows.WindowsTreeUI
 

E

EMBEDDED_TABS_KEY - Static variable in class com.jgoodies.looks.Options
A JTabbedPane client property key that indicates that tabs are painted with a special embedded appearance.
EMPTY - Static variable in class com.jgoodies.looks.BorderStyle
 
equals(Object) - Method in class com.jgoodies.looks.plastic.PlasticTheme
Plastic themes are equal if and only if their classes are the same.
ETCHED - Static variable in class com.jgoodies.looks.BorderStyle
 
ExperienceBlue - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated blue primary colors and a light brown window background.
ExperienceBlue() - Constructor for class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
ExperienceGreen - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated green primary colors and a light brown window background.
ExperienceGreen() - Constructor for class com.jgoodies.looks.plastic.theme.ExperienceGreen
 
ExperienceRoyale - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated blue primary colors and a light gray/blueish window background.
ExperienceRoyale() - Constructor for class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
ExtBasicCheckBoxMenuItemUI - Class in com.jgoodies.looks.common
Renders aligned JCheckBoxMenuItems.
ExtBasicCheckBoxMenuItemUI() - Constructor for class com.jgoodies.looks.common.ExtBasicCheckBoxMenuItemUI
 
ExtBasicMenuItemUI - Class in com.jgoodies.looks.common
An implementation of MenuItemUI used by the JGoodies Windows and Plastic looks.
ExtBasicMenuItemUI() - Constructor for class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
ExtBasicMenuUI - Class in com.jgoodies.looks.common
An implementation of MenuUI used by the JGoodies Windows and Plastic looks.
ExtBasicMenuUI() - Constructor for class com.jgoodies.looks.common.ExtBasicMenuUI
 
ExtBasicPopupMenuSeparatorUI - Class in com.jgoodies.looks.common
Renders the separator in popup and pull-down menus.
ExtBasicPopupMenuSeparatorUI() - Constructor for class com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI
 
ExtBasicRadioButtonMenuItemUI - Class in com.jgoodies.looks.common
Renders aligned JRadioButtonMenuItems.
ExtBasicRadioButtonMenuItemUI() - Constructor for class com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
 
ExtBasicSpinnerLayout - Class in com.jgoodies.looks.common
A simple layout manager for the editor and the next/previous buttons.
ExtBasicSpinnerLayout() - Constructor for class com.jgoodies.looks.common.ExtBasicSpinnerLayout
 
ExtButtonAreaLayout - Class in com.jgoodies.looks.common
Unlike its superclass, this layout uses a minimum button width that complies with Mac and Windows UI style guides.
ExtButtonAreaLayout(boolean, int) - Constructor for class com.jgoodies.looks.common.ExtButtonAreaLayout
Constructs an ExtButtonAreaLayout.

F

filterRGB(int, int, int) - Method in class com.jgoodies.looks.common.RGBGrayFilter
Converts a single input pixel in the default RGB ColorModel to a single gray pixel.
FontPolicies - Class in com.jgoodies.looks
Provides predefined FontPolicy implementations.
FontPolicy - Interface in com.jgoodies.looks
Looks up and returns a FontSet.
Fonts - Class in com.jgoodies.looks
Provides static access to popular Windows fonts.
FontSet - Interface in com.jgoodies.looks
Returns the Fonts used by a Look&Feel or theme.
FontSets - Class in com.jgoodies.looks
Provides predefined FontSet implementations.
from(JToolBar, String) - Static method in class com.jgoodies.looks.BorderStyle
Looks up the client property for the header style from the JToolBar.
from(JMenuBar, String) - Static method in class com.jgoodies.looks.BorderStyle
Looks up the client property for the header style from the JMenuBar.
from(JMenuBar) - Static method in class com.jgoodies.looks.HeaderStyle
Looks up the client property for the HeaderStyle from the JToolBar.
from(JToolBar) - Static method in class com.jgoodies.looks.HeaderStyle
Looks up the client property for the HeaderStyle from the JToolBar.

G

getBlack() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getBooleanSystemProperty(String, String) - Static method in class com.jgoodies.looks.LookUtils
Checks if a boolean system property has been set for the given key, and returns the associated Boolean, or null if no value has been set.
getButtonBorder() - Static method in class com.jgoodies.looks.windows.WindowsLookAndFeel
 
getButtonBorderInsets() - Method in class com.jgoodies.looks.MicroLayout
Returns the insets used for button borders.
getButtonMargin() - Method in class com.jgoodies.looks.MicroLayout
Returns the margin used for standard buttons.
getCheckBoxIcon() - Static method in class com.jgoodies.looks.windows.WindowsLookAndFeel
 
getCheckBoxMargin() - Method in class com.jgoodies.looks.MicroLayout
 
getComboBorderSize() - Method in class com.jgoodies.looks.MicroLayout
 
getComboBoxEditorInsets() - Method in class com.jgoodies.looks.MicroLayout
 
getComboPopupBorderSize() - Method in class com.jgoodies.looks.MicroLayout
 
getCommitButtonMargin() - Method in class com.jgoodies.looks.MicroLayout
Returns the margin used for commit buttons in command areas.
getContentBorderInsets(int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the insets (i.e. the width) of the content Border.
getContentBorderInsets(int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
getControl() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getControlDarkShadow() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getControlDisabled() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getControlFont() - Method in interface com.jgoodies.looks.FontSet
Returns the font used for all dialog components.
getControlHighlight() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getControlHighlight() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getControlInfo() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getControlTextFont() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getCrossPlatformLookAndFeelClassName() - Static method in class com.jgoodies.looks.Options
Returns the class name for a cross-platform LookAndFeel.
getDefaultIconSize() - Static method in class com.jgoodies.looks.Options
Returns the default icon size that is used in menus, menu items and toolbars.
getDefaultPlasticOnWindowsPolicy() - Static method in class com.jgoodies.looks.FontPolicies
Returns the default font policy for Plastic on the Windows platform.
getDefaultPlasticPolicy() - Static method in class com.jgoodies.looks.FontPolicies
Returns the default Plastic FontPolicy that may vary with the platform and environment.
getDefaultPlasticPolicy() - Static method in class com.jgoodies.looks.MicroLayoutPolicies
Returns the default MicroLayoutPolicy for the Plastic L&fs.
getDefaultTheme(LookAndFeel) - Static method in class com.jgoodies.looks.LookUtils
 
getDefaultWindowsPolicy() - Static method in class com.jgoodies.looks.FontPolicies
Returns the default font policy for the Windows platform.
getDefaultWindowsPolicy() - Static method in class com.jgoodies.looks.MicroLayoutPolicies
Returns the default MicroLayoutPolicy for the Windows L&f.
getDescription() - Method in class com.jgoodies.looks.plastic.Plastic3DLookAndFeel
 
getDescription() - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getDescription() - Method in class com.jgoodies.looks.plastic.PlasticXPLookAndFeel
 
getDescription() - Method in class com.jgoodies.looks.windows.WindowsLookAndFeel
 
getDisabledIcon(JComponent, Icon) - Static method in class com.jgoodies.looks.common.RGBGrayFilter
Returns an icon with a disabled appearance.
getDisabledIcon(JComponent, Icon) - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Returns an icon with a disabled appearance.
getDisabledIcon(JComponent, Icon) - Method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Returns an icon with a disabled appearance.
getFileView(JFileChooser) - Method in class com.jgoodies.looks.plastic.PlasticFileChooserUI
 
getFocusColor() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.DesertRed
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.ExperienceGreen
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getFocusColor() - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
getFontPolicy() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family.
getFontPolicy() - Static method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Looks up and retrieves the FontPolicy used by the JGoodies Windows Look&Feel.
getFontSet(String, UIDefaults) - Method in interface com.jgoodies.looks.FontPolicy
Looks up and returns a set of fonts that will be used by a Look&Feel to set the default fonts for its components.
getFontSet() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getHighContrastFocusColorsEnabled() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getHighlightedTextColor() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getHighlightedTextColor() - Method in class com.jgoodies.looks.plastic.theme.SkyPink
 
getIconForTab(int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Answers the icon for the tab with the specified index.
getIconForTab(int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Answers the icon for the tab with the specified index.
getIconHeight() - Method in class com.jgoodies.looks.common.MinimumSizedIcon
 
getIconWidth() - Method in class com.jgoodies.looks.common.MinimumSizedIcon
 
getID() - Method in class com.jgoodies.looks.plastic.Plastic3DLookAndFeel
 
getID() - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getID() - Method in class com.jgoodies.looks.plastic.PlasticXPLookAndFeel
 
getInactiveSystemTextColor() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getInstalledThemes(LookAndFeel) - Static method in class com.jgoodies.looks.LookUtils
 
getInstalledThemes() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Lazily initializes and returns the List of installed color themes.
getInternalFrameBorder() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getLogicalFontSet() - Static method in class com.jgoodies.looks.FontSets
Lazily creates and returns the FontSet that returns the logical fonts specified by the Java runtime environment.
getLogicalFontsPolicy() - Static method in class com.jgoodies.looks.FontPolicies
Returns a font policy that returns the logical fonts as specified by the Java runtime environment.
getLooks1xPlasticPolicy() - Static method in class com.jgoodies.looks.FontPolicies
Returns a font policy for getting a Plastic appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x.
getLooks1xWindowsPolicy() - Static method in class com.jgoodies.looks.FontPolicies
Returns a font policy for getting a Windows appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x.
getMenuDisabledForeground() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getMenuFont() - Method in interface com.jgoodies.looks.FontSet
Returns the font used for the menu.
getMenuForeground() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getMenuItemBackground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getMenuItemBackground() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getMenuItemBackground() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getMenuItemBackground() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getMenuItemMargin() - Method in class com.jgoodies.looks.MicroLayout
 
getMenuItemSelectedBackground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.DesertYellow
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getMenuItemSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
getMenuItemSelectedForeground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getMenuItemSelectedForeground() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getMenuItemSelectedForeground() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getMenuItemSelectedForeground() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getMenuItemSelectedForeground() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getMenuMargin() - Method in class com.jgoodies.looks.MicroLayout
 
getMenuSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getMenuSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getMenuSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getMenuSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getMenuSelectedBackground() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getMenuSelectedForeground() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getMenuSelectedForeground() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getMenuSelectedForeground() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getMenuTextFont() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getMessageFont() - Method in interface com.jgoodies.looks.FontSet
Returns the font used for message dialogs.
getMicroLayout(String, UIDefaults) - Method in interface com.jgoodies.looks.MicroLayoutPolicy
Looks up and returns insets, margins, and gaps that will be used by a Look&Feel to set the component insets, margins and gaps.
getMicroLayoutPolicy() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs.
getMicroLayoutPolicy() - Static method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Windows Look&Feel.
getMinimumSize(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
The minumum size is the size of the display area plus insets plus the button.
getMinimumSize(JComponent) - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
The minumum size is the size of the display area plus insets plus the button.
getName() - Method in class com.jgoodies.looks.plastic.Plastic3DLookAndFeel
 
getName() - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getName() - Method in class com.jgoodies.looks.plastic.PlasticXPLookAndFeel
 
getName() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getName() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getName() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getName() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getName() - Method in class com.jgoodies.looks.plastic.theme.DesertGreen
 
getName() - Method in class com.jgoodies.looks.plastic.theme.DesertRed
 
getName() - Method in class com.jgoodies.looks.plastic.theme.DesertYellow
 
getName() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getName() - Method in class com.jgoodies.looks.plastic.theme.ExperienceGreen
 
getName() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getName() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getName() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getName() - Method in class com.jgoodies.looks.plastic.theme.SkyBlue
 
getName() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getName() - Method in class com.jgoodies.looks.plastic.theme.SkyGreen
 
getName() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getName() - Method in class com.jgoodies.looks.plastic.theme.SkyPink
 
getName() - Method in class com.jgoodies.looks.plastic.theme.SkyRed
 
getName() - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
getName() - Method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Returns the String "JGoodies Windows".
getPaletteBorder() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getPlasticTheme() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Lazily initializes and returns the PlasticTheme.
getPopup(Component, Component, int, int) - Method in class com.jgoodies.looks.common.ShadowPopupFactory
Creates a Popup for the Component owner containing the Component contents.
getPopupMenuSeparatorMargin() - Method in class com.jgoodies.looks.MicroLayout
 
getPreferredMenuItemSize(JComponent, Icon, Icon, int) - Method in class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
getPreferredMenuItemSize(JComponent, Icon, Icon, int) - Method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
getPreferredMenuItemSize(JComponent, Icon, Icon, int) - Method in class com.jgoodies.looks.common.MenuItemRenderer
 
getPreferredMenuItemSize(JComponent, Icon, Icon, int) - Method in class com.jgoodies.looks.windows.WindowsXPMenuUI
 
getPreferredSize(JComponent) - Method in class com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI
 
getPreferredSize(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
Delegates to #getMinimumSize(Component).
getPreferredSize(JComponent) - Method in class com.jgoodies.looks.windows.WindowsButtonUI
 
getPreferredSize(JComponent) - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Delegates to #getMinimumSize(Component).
getPreferredSize(JComponent) - Method in class com.jgoodies.looks.windows.WindowsTextFieldUI
The WindowsFieldCaret requires an extra pixel width.
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.ExperienceGreen
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.SkyPink
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.SkyRed
 
getPrimary1() - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.DesertGreen
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.DesertRed
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.DesertYellow
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.ExperienceGreen
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.SkyGreen
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.SkyPink
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.SkyRed
 
getPrimary2() - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.DesertGreen
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.DesertRed
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.DesertYellow
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.ExperienceGreen
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.SkyGreen
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.SkyKrupp
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.SkyPink
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.SkyRed
 
getPrimary3() - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
getPrimaryControl() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getPrimaryControlDarkShadow() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getPrimaryControlHighlight() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getPrimaryControlHighlight() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getPrimaryControlInfo() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getPrimaryControlShadow() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getPrimaryControlShadow() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getPrimaryControlShadow() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getPrimaryControlShadow() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getPrimaryControlShadow() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getPrimaryControlShadow() - Method in class com.jgoodies.looks.plastic.theme.SkyYellow
 
getPropertyPrefix() - Method in class com.jgoodies.looks.common.ExtBasicCheckBoxMenuItemUI
 
getPropertyPrefix() - Method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
getPropertyPrefix() - Method in class com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
 
getPropertyPrefix() - Method in class com.jgoodies.looks.windows.WindowsXPMenuUI
 
getRadioButtonIcon() - Static method in class com.jgoodies.looks.windows.WindowsLookAndFeel
 
getReplacementClassNameFor(String) - Static method in class com.jgoodies.looks.Options
Returns the class name that can be used to replace the specified LookAndFeel class name.
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getSecondary1() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getSecondary2() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getSecondary3() - Method in class com.jgoodies.looks.plastic.theme.SkyBluer
 
getSelectedTabPadInsets(int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the insets for selected tab.
getSelectedTabPadInsets(int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
getSelectOnFocusGainEnabled(JTextComponent) - Static method in class com.jgoodies.looks.Options
Returns component's individual setting for the select on focus gain feature.
getSeparatorBackground() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getSimpleInternalFrameBackground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getSimpleInternalFrameBackground() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getSimpleInternalFrameBackground() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getSimpleInternalFrameBackground() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getSimpleInternalFrameForeground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getSimpleInternalFrameForeground() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getSlightlyBrighter(Color) - Static method in class com.jgoodies.looks.LookUtils
Computes and returns a Color that is slightly brighter than the specified Color.
getSlightlyBrighter(Color, float) - Static method in class com.jgoodies.looks.LookUtils
Computes and returns a Color that is slightly brighter than the specified Color.
getSmallFont() - Method in interface com.jgoodies.looks.FontSet
Returns the font used for tool tips.
getSoftWhite() - Method in class com.jgoodies.looks.plastic.theme.BrownSugar
 
getSoftWhite() - Method in class com.jgoodies.looks.plastic.theme.DarkStar
 
getSoftWhite() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getSubTextFont() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getSystemLookAndFeelClassName() - Static method in class com.jgoodies.looks.Options
Returns the class name for a system specific LookAndFeel.
getSystemProperty(String) - Static method in class com.jgoodies.looks.LookUtils
Tries to look up the System property for the given key.
getSystemProperty(String, String) - Static method in class com.jgoodies.looks.LookUtils
Tries to look up the System property for the given key.
getSystemTextColor() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getSystemTextFont() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getTabAreaInsets(int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the amount by which the Tab Area is inset.
getTabAreaInsets(int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
getTabBounds(int, Rectangle) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
getTabInsets(int, int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the insets for this tab.
getTabLabelShiftX(int, int, boolean) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the amount by which the label should be shifted horizontally.
getTabLabelShiftX(int, int, boolean) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
getTabLabelShiftY(int, int, boolean) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the amount by which the label should be shifted vertically.
getTabLabelShiftY(int, int, boolean) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
getTabRunIndent(int, int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the amount by which the run number run should be indented.
getTabRunOverlay(int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the amount (in pixels) by which two runs should overlap.
getTabStyle() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getTextHighlightColor() - Method in class com.jgoodies.looks.plastic.theme.DesertBluer
 
getTextInsets() - Method in class com.jgoodies.looks.MicroLayout
 
getTitle(String, FontMetrics, int) - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane
 
getTitleFont() - Method in interface com.jgoodies.looks.FontSet
Returns the font used for the title label in TitledBorders.
getTitleTextColor() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.theme.DesertBlue
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.theme.DesertGreen
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.theme.DesertRed
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.theme.DesertYellow
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.theme.LightGray
 
getTitleTextColor() - Method in class com.jgoodies.looks.plastic.theme.Silver
 
getTitleTextFont() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getTitleTextFont() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getToggleButtonCheckColor() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getToggleButtonCheckColor() - Method in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
getToggleButtonCheckColor() - Method in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
getToggleButtonCheckColor() - Method in class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
getToolkitUsesNativeDropShadows() - Static method in class com.jgoodies.looks.LookUtils
Checks and answers whether this toolkit provides native drop shadows for popups such as the Mac OS X.
getTransitionalPlasticPolicy() - Static method in class com.jgoodies.looks.FontPolicies
Returns a font policy intended for API users that want to move Plastic code from the Looks 1.x to the Looks 2.0.
getUseNarrowButtons() - Static method in class com.jgoodies.looks.Options
Checks and answers if we shall use narrow button margins of 4 pixels.
getUserTextFont() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getUseSystemFonts() - Static method in class com.jgoodies.looks.Options
Returns whether native system fonts shall be used, true by default unless disabled in the system properties or UIManager.
getWhite() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getWindowsControlFont() - Static method in class com.jgoodies.looks.Fonts
Looks up and returns the Windows control font.
getWindowTitleBackground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getWindowTitleFont() - Method in interface com.jgoodies.looks.FontSet
Returns the font used for internal frame titles.
getWindowTitleFont() - Method in class com.jgoodies.looks.plastic.PlasticTheme
 
getWindowTitleForeground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getWindowTitleInactiveBackground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getWindowTitleInactiveForeground() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
getWrappedTextInsets() - Method in class com.jgoodies.looks.MicroLayout
 

H

hashCode() - Method in class com.jgoodies.looks.plastic.PlasticTheme
Returns this theme's hash code, the classes' hash code.
HEADER_STYLE_KEY - Static variable in class com.jgoodies.looks.Options
A client property key for JMenuBar and JToolBar style hints.
HeaderStyle - Class in com.jgoodies.looks
Describes the header styles for JMenuBar and JToolBar.
HI_RES_DISABLED_ICON_CLIENT_KEY - Static variable in class com.jgoodies.looks.Options
A client property key for components with a disabled icon such as buttons, labels, and tabbed panes.
HI_RES_GRAY_FILTER_ENABLED_KEY - Static variable in class com.jgoodies.looks.Options
A UIDefaults key for enabling/disabling the new high-resolution gray filter globally.
hide() - Method in class com.jgoodies.looks.common.ShadowPopup
Hides and disposes of the Popup.
HIGH_CONTRAST_FOCUS_ENABLED_KEY - Static variable in class com.jgoodies.looks.plastic.PlasticLookAndFeel
A System property key that indicates that the high contrast focus colors shall be choosen - if applicable.
HTML_KEY - Static variable in class com.jgoodies.looks.common.MenuItemRenderer
 
HTML_KEY - Static variable in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
 

I

iconBorderEnabled() - Method in class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
iconBorderEnabled() - Method in class com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
 
initClassDefaults(UIDefaults) - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.
initClassDefaults(UIDefaults) - Method in class com.jgoodies.looks.plastic.PlasticXPLookAndFeel
Initializes the PlasticXP class defaults.
initClassDefaults(UIDefaults) - Method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Initializes the class defaults, that is, overrides some UI delegates with JGoodies Windows implementations.
initComponentDefaults(UIDefaults) - Method in class com.jgoodies.looks.plastic.Plastic3DLookAndFeel
Initializes the Plastic3D component defaults.
initComponentDefaults(UIDefaults) - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
initComponentDefaults(UIDefaults) - Method in class com.jgoodies.looks.plastic.PlasticXPLookAndFeel
Initializes the PlasticXP component defaults.
initComponentDefaults(UIDefaults) - Method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Initializes the component defaults.
initialize() - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Invoked during UIManager#setLookAndFeel.
initialize() - Method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Invoked during UIManager#setLookAndFeel.
initSystemColorDefaults(UIDefaults) - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Unlike my superclass I register a unified shadow color.
install() - Static method in class com.jgoodies.looks.common.ShadowPopupFactory
Installs the ShadowPopupFactory as the shared popup factory on non-Mac platforms.
installComponents() - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Creates and installs any required subcomponents for the JTabbedPane.
installDefaults() - Method in class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
installDefaults() - Method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
installDefaults(JSeparator) - Method in class com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI
 
installDefaults(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticButtonUI
Installs defaults.
installDefaults() - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
installDefaults() - Method in class com.jgoodies.looks.plastic.PlasticMenuBarUI
 
installDefaults() - Method in class com.jgoodies.looks.plastic.PlasticMenuUI
 
installDefaults() - Method in class com.jgoodies.looks.plastic.PlasticPopupMenuUI
 
installDefaults() - Method in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
installDefaults(JScrollPane) - Method in class com.jgoodies.looks.plastic.PlasticScrollPaneUI
 
installDefaults(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
In addition to the superclass we check if the border paints the focus.
installDefaults() - Method in class com.jgoodies.looks.plastic.PlasticToolBarUI
Installs a special border, if indicated by the HeaderStyle.
installDefaults() - Method in class com.jgoodies.looks.windows.WindowsMenuBarUI
 
installDefaults() - Method in class com.jgoodies.looks.windows.WindowsPopupMenuUI
 
installDefaults(JScrollPane) - Method in class com.jgoodies.looks.windows.WindowsScrollPaneUI
 
installDefaults() - Method in class com.jgoodies.looks.windows.WindowsToolBarUI
 
installDefaults() - Method in class com.jgoodies.looks.windows.WindowsXPMenuUI
 
installDefaults() - Method in class com.jgoodies.looks.windows.WindowsXPToolBarUI
 
installDefaultThemes() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Install the default color themes.
installKeyboardActions() - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
installKeyboardActions() - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
installListeners() - Method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
installListeners() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
installListeners() - Method in class com.jgoodies.looks.plastic.PlasticMenuBarUI
 
installListeners() - Method in class com.jgoodies.looks.plastic.PlasticPopupMenuUI
 
installListeners(JScrollPane) - Method in class com.jgoodies.looks.plastic.PlasticScrollPaneUI
 
installListeners() - Method in class com.jgoodies.looks.plastic.PlasticToolBarUI
 
installListeners() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
 
installListeners() - Method in class com.jgoodies.looks.windows.WindowsMenuBarUI
 
installListeners() - Method in class com.jgoodies.looks.windows.WindowsPopupMenuUI
 
installListeners(JScrollPane) - Method in class com.jgoodies.looks.windows.WindowsScrollPaneUI
 
installListeners() - Method in class com.jgoodies.looks.windows.WindowsToolBarUI
 
installListeners() - Method in class com.jgoodies.looks.windows.WindowsXPToolBarUI
 
installSpecialBorder() - Method in class com.jgoodies.looks.plastic.PlasticMenuBarUI
Installs a special border, if either a look-dependent BorderStyle or a look-independent HeaderStyle has been specified.
installTheme(PlasticTheme) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Installs a color theme.
installUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
installUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
installUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Installs the UI.
installUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticTextAreaUI
 
installUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticTreeUI
 
installUI(JComponent) - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
 
installUI(JComponent) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Installs the UI.
installUI(JComponent) - Method in class com.jgoodies.looks.windows.WindowsTextAreaUI
 
installUI(JComponent) - Method in class com.jgoodies.looks.windows.WindowsTreeUI
 
installUI(JComponent) - Method in class com.jgoodies.looks.windows.WindowsXPTableHeaderUI
 
invalidateLayout(Container) - Method in class com.jgoodies.looks.common.PopupMenuLayout
Indicates that a child has changed its layout related information, and thus any cached calculations should be flushed.
INVERT_SELECTION_CLIENT_KEY - Static variable in class com.jgoodies.looks.Options
A JTextField client property key that specifies the direction how text shall be selected on focus gain - if at all: from start to end vs. end to start.
InvertedColorTheme - Class in com.jgoodies.looks.plastic.theme
The abstract superclass of all inverted Plastic themes, that have light foreground and dark window background colors.
InvertedColorTheme() - Constructor for class com.jgoodies.looks.plastic.theme.InvertedColorTheme
 
is3D(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticButtonUI
Checks and answers if this button shall use a pseudo 3D effect.
is3D(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
Checks and answers if this button shall use a pseudo 3D effect.
is3DEnabled() - Method in class com.jgoodies.looks.plastic.Plastic3DLookAndFeel
 
is3DEnabled() - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
IS_3D_KEY - Static variable in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Client property key to disable the pseudo 3D effect.
IS_ETCHED_KEY - Static variable in class com.jgoodies.looks.Options
A JScrollPane client property key for a hint that the scroll pane border should be etched.
IS_OS_WINDOWS_95 - Static variable in class com.jgoodies.looks.LookUtils
True if this is Windows 95.
IS_OS_WINDOWS_MODERN - Static variable in class com.jgoodies.looks.LookUtils
True if this is Windows 98/ME/2000/Server 2003/XP/VISTA/Server 2008.
IS_OS_WINDOWS_NT - Static variable in class com.jgoodies.looks.LookUtils
True if this is Windows NT.
IS_PALETTE - Static variable in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
isHiResGrayFilterEnabled() - Static method in class com.jgoodies.looks.Options
Checks and answers whether the new high-resolution gray filter is enabled or disabled.
isMnemonicHidden() - Method in class com.jgoodies.looks.common.MenuItemRenderer
 
isPopupDropShadowActive() - Static method in class com.jgoodies.looks.Options
Checks and answers whether popup drop shadows are active.
isPopupDropShadowEnabled() - Static method in class com.jgoodies.looks.Options
Checks and answers whether the optional drop shadows for PopupMenus are enabled or disabled.
isRendererBorderRemovable(JComponent) - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Checks and answer whether the border of the given renderer component can be removed temporarily, so the combo's selection background will be consistent with the default renderer and native appearance.
isSelectOnFocusGainActive(JTextComponent) - Static method in class com.jgoodies.looks.Options
Checks and answers whether the select all on focus gain feature is active for the given field.
isSelectOnFocusGainEnabled() - Static method in class com.jgoodies.looks.Options
Checks and answers whether the global default for text fields is to select all text on focus gain.
isSelectTextOnKeyboardFocusGained() - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
isTabIconsEnabled() - Static method in class com.jgoodies.looks.Options
Checks and answers if we shall use icons in JTabbedPanes.
isTabInFirstRun(int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
isToolBarButton(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticButtonUI
Checks and answers if this is button is in a tool bar.
isToolBarButton(AbstractButton) - Method in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
Checks and answers if this is button is in a tool bar.
isToolBarComboBox(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
Checks and answers if this combo is in a tool bar.
isTrueColor(Component) - Static method in class com.jgoodies.looks.LookUtils
Checks and answers whether we have a true color system.

J

JGOODIES_WINDOWS_NAME - Static variable in class com.jgoodies.looks.Options
The class name of the JGoodies Windows L&f.

L

layoutContainer(Container) - Method in class com.jgoodies.looks.common.ExtBasicSpinnerLayout
 
layoutContainer(Container) - Method in class com.jgoodies.looks.common.ExtButtonAreaLayout
 
layoutLabel(int, FontMetrics, int, String, Icon, Rectangle, Rectangle, Rectangle, boolean) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
layoutLabel(int, FontMetrics, int, String, Icon, Rectangle, Rectangle, Rectangle, boolean) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Copied here from super(super)class to avoid labels being centered on vertical tab runs if they consist of icon and text.
LightGray - Class in com.jgoodies.looks.plastic.theme
A very light color theme intended to be used on Windows Vista in Aero style.
LightGray() - Constructor for class com.jgoodies.looks.plastic.theme.LightGray
 
log() - Static method in class com.jgoodies.looks.LookUtils
Prints a new line to the console if logging is enabled.
log(String) - Static method in class com.jgoodies.looks.LookUtils
Prints the given message to the console if logging is enabled.
LookUtils - Class in com.jgoodies.looks
Provides convenience behavior used by the JGoodies Looks.
LT_BRIGHTEN_STOP - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
LT_DARKEN_STOP - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
LUNA_BACKGROUND - Static variable in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 
LUNA_BACKGROUND_DARKER - Static variable in class com.jgoodies.looks.plastic.theme.ExperienceBlue
 

M

MAX_BUMPS_WIDTH_KEY - Static variable in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
MenuItemRenderer - Class in com.jgoodies.looks.common
Renders and lays out menu items.
MenuItemRenderer(JMenuItem, boolean, Font, Color, Color, Color, Color) - Constructor for class com.jgoodies.looks.common.MenuItemRenderer
Constructs a MenuItemRenderer for the specified menu item and settings.
MenuSelectionProcessor - Class in com.jgoodies.looks.common
Handles the Alt key to select the first menu in the menu bar - if any.
MenuSelectionProcessor() - Constructor for class com.jgoodies.looks.common.MenuSelectionProcessor
 
MicroLayout - Class in com.jgoodies.looks
Describes the insets and margins used by a Look&Feel or theme.
MicroLayout(InsetsUIResource, InsetsUIResource, InsetsUIResource, int, int, Insets, InsetsUIResource, InsetsUIResource, InsetsUIResource, InsetsUIResource, InsetsUIResource, InsetsUIResource) - Constructor for class com.jgoodies.looks.MicroLayout
 
MicroLayoutPolicies - Class in com.jgoodies.looks
Provides predefined MicroLayoutPolicy implementations.
MicroLayoutPolicy - Interface in com.jgoodies.looks
Looks up and returns a MicroLayout.
MicroLayouts - Class in com.jgoodies.looks
A factory that vends predefined MicroLayout instances.
minimumLayoutSize(Container) - Method in class com.jgoodies.looks.common.ExtBasicSpinnerLayout
 
minimumLayoutSize(Container) - Method in class com.jgoodies.looks.common.ExtButtonAreaLayout
 
MinimumSizedCheckIcon - Class in com.jgoodies.looks.common
An implementation of the Icon interface that has a minimum size and active border.
MinimumSizedCheckIcon(Icon, JMenuItem) - Constructor for class com.jgoodies.looks.common.MinimumSizedCheckIcon
 
MinimumSizedIcon - Class in com.jgoodies.looks.common
An Icon with a minimum size that is read from the UIManager defaultIconSize key.
MinimumSizedIcon() - Constructor for class com.jgoodies.looks.common.MinimumSizedIcon
 
MinimumSizedIcon(Icon) - Constructor for class com.jgoodies.looks.common.MinimumSizedIcon
 

N

NO_CONTENT_BORDER_KEY - Static variable in class com.jgoodies.looks.Options
A JTabbedPane client property key that indicates that no content border shall be painted.
NO_ICONS_KEY - Static variable in class com.jgoodies.looks.Options
A JMenu client property key for a hint that the menu items in the menu have no icons.
NO_MARGIN_KEY - Static variable in class com.jgoodies.looks.Options
A JPopupMenu client property key for a hint that the border shall have no extra margin.
NO_REPLACEMENT - Static variable in class com.jgoodies.looks.Options
A replacement used to replace a given L&f with nothing, that indicates that it should not be used.

O

Options - Class in com.jgoodies.looks
Provides access to optional features of the JGoodies L&Fs via a key to the system properties, via a key for the UIDefaults table, via a method, or all of them.

P

paint(Graphics, JComponent) - Method in class com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI
 
paint(Graphics, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
paint(Graphics, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
Unlike the BasicToggleButtonUI.paint, we don't fill the content area; this has been done by the update method before.
paint(Graphics, JComponent) - Method in class com.jgoodies.looks.windows.WindowsToolBarSeparatorUI
 
paint(Graphics, JComponent) - Method in class com.jgoodies.looks.windows.WindowsXPTableHeaderUI
 
paintComponent(Graphics) - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane
 
paintContentBorder(Graphics, int, int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
paintContentBorderBottomEdge(Graphics, int, int, int, int, int, int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Paints the bottom edge of the pane's content border.
paintContentBorderLeftEdge(Graphics, int, int, int, int, int, int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Paints the left Edge of the pane's content border.
paintContentBorderRightEdge(Graphics, int, int, int, int, int, int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Paints the right Edge of the pane's content border.
paintContentBorderTopEdge(Graphics, int, int, int, int, int, int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Paints the top edge of the pane's content border.
paintCurrentValue(Graphics, Rectangle, boolean) - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Paints the currently selected item.
paintFocus(Graphics, AbstractButton, Rectangle, Rectangle, Rectangle) - Method in class com.jgoodies.looks.plastic.PlasticButtonUI
Paints the focus with close to the button's border.
paintFocus(Graphics, AbstractButton, Rectangle, Rectangle, Rectangle) - Method in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
Paints the focus close to the button's border.
paintFocusIndicator(Graphics, int, Rectangle[], int, Rectangle, Rectangle, boolean) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Draws the rectancle around the Tab label which indicates keyboard focus.
paintFocusIndicator(Graphics, int, Rectangle[], int, Rectangle, Rectangle, boolean) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
paintHorizontalLine(Graphics, JComponent, int, int, int) - Method in class com.jgoodies.looks.plastic.PlasticTreeUI
 
paintHorizontalLine(Graphics, JComponent, int, int, int) - Method in class com.jgoodies.looks.windows.WindowsTreeUI
 
paintIcon(Component, Graphics, int, int) - Method in class com.jgoodies.looks.common.MinimumSizedCheckIcon
 
paintIcon(Component, Graphics, int, int) - Method in class com.jgoodies.looks.common.MinimumSizedIcon
 
paintMenuItem(Graphics, JComponent, Icon, Icon, Color, Color, int) - Method in class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
paintMenuItem(Graphics, JComponent, Icon, Icon, Color, Color, int) - Method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
paintMenuItem(Graphics, JComponent, Icon, Icon, Color, Color, int) - Method in class com.jgoodies.looks.common.MenuItemRenderer
 
paintMenuItem(Graphics, JComponent, Icon, Icon, Color, Color, int) - Method in class com.jgoodies.looks.plastic.PlasticMenuUI
Makes the item transparent, if it is not a sub menu and the model is not selected.
paintMenuItem(Graphics, JComponent, Icon, Icon, Color, Color, int) - Method in class com.jgoodies.looks.windows.WindowsXPMenuUI
 
paintPalette(Graphics) - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane
 
paintTab(Graphics, int, Rectangle[], int, Rectangle, Rectangle) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
paintTabArea(Graphics, int, int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
paintTabBackground(Graphics, int, int, int, int, int, int, boolean) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Fills the background of the given tab to make sure overlap of tabs is handled correctly.
paintTabBorder(Graphics, int, int, int, int, int, int, boolean) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Paints the border for one tab.
paintTabBorder(Graphics, int, int, int, int, int, int, boolean) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
Paints the border for a single tab; it does not paint the tab's background.
paintThumb(Graphics, JComponent, Rectangle) - Method in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
paintTrack(Graphics, JComponent, Rectangle) - Method in class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
paintVerticalLine(Graphics, JComponent, int, int, int) - Method in class com.jgoodies.looks.plastic.PlasticTreeUI
 
paintVerticalLine(Graphics, JComponent, int, int, int) - Method in class com.jgoodies.looks.windows.WindowsTreeUI
 
PLASTIC3D_NAME - Static variable in class com.jgoodies.looks.Options
The class name of the JGoodies Plastic3D L&f.
Plastic3DLookAndFeel - Class in com.jgoodies.looks.plastic
Intializes class and component defaults for the JGoodies Plastic3D look&feel.
Plastic3DLookAndFeel() - Constructor for class com.jgoodies.looks.plastic.Plastic3DLookAndFeel
Constructs the JGoodies Plastic3D look&feel.
PLASTIC_CONTROL_FONT_KEY - Static variable in class com.jgoodies.looks.Options
A key for setting the default control font in Plastic L&fs.
PLASTIC_FONT_POLICY_KEY - Static variable in class com.jgoodies.looks.Options
A key for setting a custom FontPolicy for the Plastic L&fs.
PLASTIC_MENU_FONT_KEY - Static variable in class com.jgoodies.looks.Options
A key for setting the default menu font in Plastic L&fs.
PLASTIC_MICRO_LAYOUT_POLICY_KEY - Static variable in class com.jgoodies.looks.Options
A UIManager key for setting a custom MicroLayoutPolicy for the Plastic L&fs.
PLASTIC_NAME - Static variable in class com.jgoodies.looks.Options
The class name of the JGoodies Plastic L&f.
PlasticButtonUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of ButtonUI.
PlasticButtonUI() - Constructor for class com.jgoodies.looks.plastic.PlasticButtonUI
 
PlasticComboBoxUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic Look and Feel implementation of ComboBoxUI.
PlasticComboBoxUI() - Constructor for class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
PlasticFileChooserUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of FileChooserUI.
PlasticFileChooserUI(JFileChooser) - Constructor for class com.jgoodies.looks.plastic.PlasticFileChooserUI
 
PlasticFormattedTextFieldUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of TextFieldUI.
PlasticFormattedTextFieldUI() - Constructor for class com.jgoodies.looks.plastic.PlasticFormattedTextFieldUI
 
PlasticInternalFrameTitlePane - Class in com.jgoodies.looks.plastic
Paints the internal frame title.
PlasticInternalFrameTitlePane(JInternalFrame) - Constructor for class com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane
 
PlasticInternalFrameUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic Look and Feel implementation of InternalFrameUI.
PlasticInternalFrameUI(JInternalFrame) - Constructor for class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
PlasticLookAndFeel - Class in com.jgoodies.looks.plastic
The base class for the JGoodies Plastic look&feel family.
PlasticLookAndFeel() - Constructor for class com.jgoodies.looks.plastic.PlasticLookAndFeel
Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.
PlasticMenuBarUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic look and feel implemenation of MenuBarUI.
PlasticMenuBarUI() - Constructor for class com.jgoodies.looks.plastic.PlasticMenuBarUI
 
PlasticMenuUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic look&feel implementation of MenuUI.
PlasticMenuUI() - Constructor for class com.jgoodies.looks.plastic.PlasticMenuUI
 
PlasticOptionPaneUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic Look&Feel implementation of OptionPaneUI.
PlasticOptionPaneUI() - Constructor for class com.jgoodies.looks.plastic.PlasticOptionPaneUI
 
PlasticPasswordFieldUI - Class in com.jgoodies.looks.plastic
The JGoodies PlasticXP Look&Feel implementation of a password field UI delegate.
PlasticPasswordFieldUI() - Constructor for class com.jgoodies.looks.plastic.PlasticPasswordFieldUI
 
PlasticPopupMenuUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic look&feel implementation of PopMenuUI.
PlasticPopupMenuUI() - Constructor for class com.jgoodies.looks.plastic.PlasticPopupMenuUI
 
PlasticScrollBarUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of ScrollBarUI.
PlasticScrollBarUI() - Constructor for class com.jgoodies.looks.plastic.PlasticScrollBarUI
 
PlasticScrollPaneUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&Fl implementation of ScrollPaneUI.
PlasticScrollPaneUI() - Constructor for class com.jgoodies.looks.plastic.PlasticScrollPaneUI
 
PlasticSeparatorUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of SeparatorUI.
PlasticSeparatorUI() - Constructor for class com.jgoodies.looks.plastic.PlasticSeparatorUI
 
PlasticSpinnerUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic Look&Feel implementation of SpinnerUI.
PlasticSpinnerUI() - Constructor for class com.jgoodies.looks.plastic.PlasticSpinnerUI
 
PlasticSplitPaneUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of SplitPaneUI.
PlasticSplitPaneUI() - Constructor for class com.jgoodies.looks.plastic.PlasticSplitPaneUI
 
PlasticTabbedPaneUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic Look&Feel implementation of TabbedPaneUI.
PlasticTabbedPaneUI() - Constructor for class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
 
PlasticTextAreaUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of TextAreaUI.
PlasticTextAreaUI() - Constructor for class com.jgoodies.looks.plastic.PlasticTextAreaUI
 
PlasticTextFieldUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of TextFieldUI.
PlasticTextFieldUI() - Constructor for class com.jgoodies.looks.plastic.PlasticTextFieldUI
 
PlasticTheme - Class in com.jgoodies.looks.plastic
Unlike its superclass this theme class has relaxed access.
PlasticTheme() - Constructor for class com.jgoodies.looks.plastic.PlasticTheme
 
PlasticToggleButtonUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of ToggleButtonUI.
PlasticToggleButtonUI() - Constructor for class com.jgoodies.looks.plastic.PlasticToggleButtonUI
 
PlasticToolBarSeparatorUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic L&F implementation of ToolBarSeparatorUI.
PlasticToolBarSeparatorUI() - Constructor for class com.jgoodies.looks.plastic.PlasticToolBarSeparatorUI
 
PlasticToolBarUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic look and feel implementation of ToolBarUI.
PlasticToolBarUI() - Constructor for class com.jgoodies.looks.plastic.PlasticToolBarUI
 
PlasticTreeUI - Class in com.jgoodies.looks.plastic
The JGoodies Plastic Look&Feel implementation of TreeUI.
PlasticTreeUI() - Constructor for class com.jgoodies.looks.plastic.PlasticTreeUI
 
PlasticUtils - Class in com.jgoodies.looks.plastic
Consists exclusively of static methods that provide convenience behavior.
PLASTICXP_NAME - Static variable in class com.jgoodies.looks.Options
The class name of the JGoodies PlasticXP L&f.
PlasticXPCheckBoxUI - Class in com.jgoodies.looks.plastic
The JGoodies PlasticXP l&l implementation of CheckBoxUI.
PlasticXPCheckBoxUI() - Constructor for class com.jgoodies.looks.plastic.PlasticXPCheckBoxUI
 
PlasticXPIconFactory - Class in com.jgoodies.looks.plastic
Factory class that vends Icons for the JGoodies Plastic XP look&feel.
PlasticXPLookAndFeel - Class in com.jgoodies.looks.plastic
Intializes class and component defaults for the JGoodies PlasticXP look&feel.
PlasticXPLookAndFeel() - Constructor for class com.jgoodies.looks.plastic.PlasticXPLookAndFeel
Constructs the JGoodies PlasticXP look&feel.
PlasticXPRadioButtonUI - Class in com.jgoodies.looks.plastic
The JGoodies PlasticXP L&F implementation of RadioButtonUI.
PlasticXPRadioButtonUI() - Constructor for class com.jgoodies.looks.plastic.PlasticXPRadioButtonUI
 
PlasticXPSpinnerUI - Class in com.jgoodies.looks.plastic
The JGoodies PlasticXP Look&Feel implementation of SpinnerUI.
PlasticXPSpinnerUI() - Constructor for class com.jgoodies.looks.plastic.PlasticXPSpinnerUI
 
PlasticXPToolBarUI - Class in com.jgoodies.looks.plastic
The JGoodies PlasticXP Look and Feel implementation of ToolBarUI.
PlasticXPToolBarUI() - Constructor for class com.jgoodies.looks.plastic.PlasticXPToolBarUI
 
PlasticXPUtils - Class in com.jgoodies.looks.plastic
Consists exclusively of static methods that provide convenience behavior.
POPUP_DROP_SHADOW_ENABLED_KEY - Static variable in class com.jgoodies.looks.Options
A UIDefaults key for the popup drop shadow enablement.
PopupMenuLayout - Class in com.jgoodies.looks.common
The JGoodies implementation of a layout manager for Popup menus.
PopupMenuLayout(Container, int) - Constructor for class com.jgoodies.looks.common.PopupMenuLayout
Creates a layout manager that will lay out components along the given axis.
postProcessKeyEvent(KeyEvent) - Method in class com.jgoodies.looks.common.MenuSelectionProcessor
 
preferredLayoutSize(Container) - Method in class com.jgoodies.looks.common.ExtBasicSpinnerLayout
 
processMouseEvent(JMenuItem, MouseEvent, MenuElement[], MenuSelectionManager) - Method in class com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
 
propertyChange(PropertyChangeEvent) - Method in class com.jgoodies.looks.plastic.PlasticTextAreaUI
This method gets called when a bound property is changed on the associated JTextComponent.
propertyChange(PropertyChangeEvent) - Method in class com.jgoodies.looks.windows.WindowsTextAreaUI
This method gets called when a bound property is changed on the associated JTextComponent.
putLookAndFeelReplacement(String, String) - Static method in class com.jgoodies.looks.Options
Puts a replacement name for a given LookAndFeel class name in the list of all look and feel replacements.

R

rectangleForCurrentValue() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
Returns the area that is reserved for drawing the currently selected item.
rectangleForCurrentValue() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
Returns the area that is reserved for drawing the currently selected item.
removeLayoutComponent(Component) - Method in class com.jgoodies.looks.common.ExtBasicSpinnerLayout
 
removeLookAndFeelReplacement(String) - Static method in class com.jgoodies.looks.Options
Removes a replacement name for a given LookAndFeel class name from the list of all look and feel replacements.
replaceEditor(JComponent, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticSpinnerUI
Called by the PropertyChangeListener when the JSpinner editor property changes.
replaceEditor(JComponent, JComponent) - Method in class com.jgoodies.looks.windows.WindowsSpinnerUI
Called by the PropertyChangeListener when the JSpinner editor property changes.
RGBGrayFilter - Class in com.jgoodies.looks.common
An image filter that turns an icon into a grayscale icon.
ROYALE_BACKGROUND - Static variable in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
ROYALE_BACKGROUND_DARKER - Static variable in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 
ROYALE_SELECTION - Static variable in class com.jgoodies.looks.plastic.theme.ExperienceRoyale
 

S

SEGOE_UI_12PT - Static variable in class com.jgoodies.looks.Fonts
This is Segoe UI 9pt, the default font on western Vista with 96dpi.
SEGOE_UI_13PT - Static variable in class com.jgoodies.looks.Fonts
Ascent=14, descent=4, height=18, dbuX=8, dbuY=14, 13dluY=22.75px.
SEGOE_UI_15PT - Static variable in class com.jgoodies.looks.Fonts
Ascent=16, descent=5, height=21, dbuX=9, dbuY=16, 13dluY=26px.
SEGOE_UI_NAME - Static variable in class com.jgoodies.looks.Fonts
The name of the default dialog font on western Windows Vista.
SELECT_ON_FOCUS_GAIN_CLIENT_KEY - Static variable in class com.jgoodies.looks.Options
A JTextField client property key that specifies whether all text shall be selected on focus gain.
SELECT_ON_FOCUS_GAIN_KEY - Static variable in class com.jgoodies.looks.Options
A UIDefaults key for the global default whether text fields shall select all text on focus gain.
SEPARATOR - Static variable in class com.jgoodies.looks.BorderStyle
 
set3DEnabled(boolean) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY - Static variable in class com.jgoodies.looks.Options
A JTextField client property key that specifies whether the caret shall be positioned at the start on focus lost.
setBorderToRollover(Component) - Method in class com.jgoodies.looks.plastic.PlasticToolBarUI
 
setBorderToRollover(Component) - Method in class com.jgoodies.looks.windows.WindowsToolBarUI
 
setBorderToRollover(Component) - Method in class com.jgoodies.looks.windows.WindowsXPToolBarUI
 
setDefaultIconSize(Dimension) - Static method in class com.jgoodies.looks.Options
Sets the default icon size.
setFontPolicy(FontPolicy) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Sets the FontPolicy to be used with the JGoodies Plastic L&F family.
setFontPolicy(FontPolicy) - Static method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Sets the FontPolicy to be used with the JGoodies Windows L&F.
setHighContrastFocusColorsEnabled(boolean) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
setHiResGrayFilterEnabled(boolean) - Static method in class com.jgoodies.looks.Options
Enables or disables the new high-resolution gray filter globally.
setLoggingEnabled(boolean) - Static method in class com.jgoodies.looks.LookUtils
Enables or disables the Looks logging.
setLookAndTheme(LookAndFeel, Object) - Static method in class com.jgoodies.looks.LookUtils
 
setMicroLayoutPolicy(MicroLayout) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs.
setMicroLayoutPolicy(MicroLayout) - Static method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Sets the MicroLayoutPolicy to be used with the JGoodies Windows L&F.
setPalette(boolean) - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
setPlasticTheme(PlasticTheme) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Sets the theme for colors and fonts used by the Plastic L&F.
setPopupDropShadowEnabled(boolean) - Static method in class com.jgoodies.looks.Options
Enables or disables drop shadows in PopupMenus.
setSelectOnFocusGainEnabled(boolean) - Static method in class com.jgoodies.looks.Options
Enables or disables the select on focus gain feature globally.
setSelectOnFocusGainEnabled(JTextField, Boolean) - Static method in class com.jgoodies.looks.Options
Overrides the global default for the select all feature for the given text field.
setSelectTextOnKeyboardFocusGained(boolean) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Sets whether text field text shall be selected when it gains focus via the keyboard.
setTabIconsEnabled(boolean) - Static method in class com.jgoodies.looks.Options
Enables or disables the use of icons in JTabbedPanes.
setTabStyle(String) - Static method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
 
setText(String) - Method in class com.jgoodies.looks.common.ComboBoxEditorTextField
 
setUseNarrowButtons(boolean) - Static method in class com.jgoodies.looks.Options
Globally sets the use narrow or standard button margins.
setUseSystemFonts(boolean) - Static method in class com.jgoodies.looks.Options
Sets a value in the UIManager to indicate, that a look&feel may use the native system fonts.
ShadowPopup - Class in com.jgoodies.looks.common
Does all the magic for getting popups with drop shadows.
ShadowPopup() - Constructor for class com.jgoodies.looks.common.ShadowPopup
 
ShadowPopupFactory - Class in com.jgoodies.looks.common
The JGoodies Looks implementation of PopupFactory.
shouldPadTabRun(int, int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
This boolean controls wheather the given run should be padded to use up as much space as the others (with more tabs in them).
shouldRotateTabRuns(int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Answers wheather tab runs should be rotated.
shouldRotateTabRuns(int) - Method in class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
show() - Method in class com.jgoodies.looks.common.ShadowPopup
Makes the Popup visible.
Silver - Class in com.jgoodies.looks.plastic.theme
A completely gray or silver theme that has been optimized to work in Windows XP environments.
Silver() - Constructor for class com.jgoodies.looks.plastic.theme.Silver
 
SINGLE - Static variable in class com.jgoodies.looks.HeaderStyle
 
SkyBlue - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated blue primary colors and a light gray window background.
SkyBlue() - Constructor for class com.jgoodies.looks.plastic.theme.SkyBlue
 
SkyBluer - Class in com.jgoodies.looks.plastic.theme
A theme with medium blue primary colors and a light gray window background.
SkyBluer() - Constructor for class com.jgoodies.looks.plastic.theme.SkyBluer
 
SkyGreen - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated green primary colors and a light gray window background.
SkyGreen() - Constructor for class com.jgoodies.looks.plastic.theme.SkyGreen
 
SkyKrupp - Class in com.jgoodies.looks.plastic.theme
A theme with metal blue primary colors and a light gray window background.
SkyKrupp() - Constructor for class com.jgoodies.looks.plastic.theme.SkyKrupp
 
SkyPink - Class in com.jgoodies.looks.plastic.theme
A theme with pink foreground and a light gray window background color.
SkyPink() - Constructor for class com.jgoodies.looks.plastic.theme.SkyPink
 
SkyRed - Class in com.jgoodies.looks.plastic.theme
A theme with low saturated red primary colors and a light gray window background.
SkyRed() - Constructor for class com.jgoodies.looks.plastic.theme.SkyRed
 
SkyYellow - Class in com.jgoodies.looks.plastic.theme
A theme with yellow primary colors and a light gray window background.
SkyYellow() - Constructor for class com.jgoodies.looks.plastic.theme.SkyYellow
 

T

TAB_ICONS_ENABLED_KEY - Static variable in class com.jgoodies.looks.Options
 
TAB_STYLE_DEFAULT_VALUE - Static variable in class com.jgoodies.looks.plastic.PlasticLookAndFeel
A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style.
TAB_STYLE_KEY - Static variable in class com.jgoodies.looks.plastic.PlasticLookAndFeel
A System property key for the rendering style of the Plastic TabbedPane.
TAB_STYLE_METAL_VALUE - Static variable in class com.jgoodies.looks.plastic.PlasticLookAndFeel
A System property value that indicates that Plastic shall render tabs in the Metal L&F style.
tabForCoordinate(JTabbedPane, int, int) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Returns the tab index which intersects the specified point in the JTabbedPane's coordinate space.
TAHOMA_11PT - Static variable in class com.jgoodies.looks.Fonts
This is the default font on western XP with 96dpi and normal fonts.
TAHOMA_13PT - Static variable in class com.jgoodies.looks.Fonts
Ascent=13, descent=3, height=16, dbuX=8, dbuY=13, 14dluY=22.75px.
TAHOMA_14PT - Static variable in class com.jgoodies.looks.Fonts
Ascent=14, descent=3, height=17, dbuX=8, dbuY=14, 14dluY=24.5px.
TAHOMA_NAME - Static variable in class com.jgoodies.looks.Fonts
The name of the default dialog font on western Windows XP.
toString() - Method in class com.jgoodies.looks.BorderStyle
 
toString() - Method in class com.jgoodies.looks.HeaderStyle
 
TREE_LINE_STYLE_ANGLED_VALUE - Static variable in class com.jgoodies.looks.Options
A JTree client property value that indicates that lines shall be drawn.
TREE_LINE_STYLE_KEY - Static variable in class com.jgoodies.looks.Options
A JTree client property key for a tree line style hint.
TREE_LINE_STYLE_NONE_VALUE - Static variable in class com.jgoodies.looks.Options
A JTree client property value that indicates that lines shall be hidden.

U

uninitialize() - Method in class com.jgoodies.looks.plastic.PlasticLookAndFeel
Invoked during UIManager#setLookAndFeel.
uninitialize() - Method in class com.jgoodies.looks.windows.WindowsLookAndFeel
Invoked during UIManager#setLookAndFeel.
uninstall() - Static method in class com.jgoodies.looks.common.ShadowPopupFactory
Uninstalls the ShadowPopupFactory and restores the original popup factory as the new shared popup factory.
uninstallComponents() - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Removes any installed subcomponents from the JTabbedPane.
uninstallDefaults() - Method in class com.jgoodies.looks.common.ExtBasicMenuItemUI
 
uninstallDefaults() - Method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
uninstallDefaults() - Method in class com.jgoodies.looks.windows.WindowsXPMenuUI
 
uninstallKeyboardActions() - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
uninstallListeners() - Method in class com.jgoodies.looks.common.ExtBasicMenuUI
 
uninstallListeners() - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
uninstallListeners() - Method in class com.jgoodies.looks.plastic.PlasticMenuBarUI
 
uninstallListeners() - Method in class com.jgoodies.looks.plastic.PlasticPopupMenuUI
 
uninstallListeners(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticScrollPaneUI
 
uninstallListeners() - Method in class com.jgoodies.looks.plastic.PlasticToolBarUI
 
uninstallListeners() - Method in class com.jgoodies.looks.windows.WindowsComboBoxUI
 
uninstallListeners() - Method in class com.jgoodies.looks.windows.WindowsMenuBarUI
 
uninstallListeners() - Method in class com.jgoodies.looks.windows.WindowsPopupMenuUI
 
uninstallListeners(JComponent) - Method in class com.jgoodies.looks.windows.WindowsScrollPaneUI
 
uninstallListeners() - Method in class com.jgoodies.looks.windows.WindowsToolBarUI
 
uninstallListeners() - Method in class com.jgoodies.looks.windows.WindowsXPToolBarUI
 
uninstallUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticInternalFrameUI
 
uninstallUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticTabbedPaneUI
Uninstalls the UI.
uninstallUI(JComponent) - Method in class com.jgoodies.looks.plastic.PlasticTreeUI
 
uninstallUI(JComponent) - Method in class com.jgoodies.looks.windows.WindowsTreeUI
 
uninstallUI(JComponent) - Method in class com.jgoodies.looks.windows.WindowsXPTableHeaderUI
 
update(Graphics, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticButtonUI
 
update(Graphics, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticComboBoxUI
 
update(Graphics, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticMenuBarUI
 
update(Graphics, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticToggleButtonUI
 
update(Graphics, JComponent) - Method in class com.jgoodies.looks.plastic.PlasticToolBarUI
 
USE_NARROW_BUTTONS_KEY - Static variable in class com.jgoodies.looks.Options
 
USE_SYSTEM_FONTS_APP_KEY - Static variable in class com.jgoodies.looks.Options
A convenience constant for the standard Swing UIDefaults key that configures the use of system fonts.
USE_SYSTEM_FONTS_KEY - Static variable in class com.jgoodies.looks.Options
A convenience constant for the standard Swing system property key that configures the use of system fonts.

W

WHITE - Static variable in class com.jgoodies.looks.plastic.PlasticTheme
 
WINDOWS_CONTROL_FONT_KEY - Static variable in class com.jgoodies.looks.Options
A key for setting the default control font in the Windows L&f.
WINDOWS_FONT_POLICY_KEY - Static variable in class com.jgoodies.looks.Options
A key for setting a custom FontPolicy for the Windows L&fs.
WINDOWS_MENU_FONT_KEY - Static variable in class com.jgoodies.looks.Options
A key for setting the default menu font in the Windows L&f.
WINDOWS_MICRO_LAYOUT_POLICY_KEY - Static variable in class com.jgoodies.looks.Options
A UIManager key for setting a custom MicroLayoutPolicy for the Windows L&f.
WINDOWS_VISTA_120DPI_NORMAL - Static variable in class com.jgoodies.looks.Fonts
The default icon font on western Windows Vista with 120dpi and the dialog font desktop setting "Normal".
WINDOWS_VISTA_96DPI_LARGE - Static variable in class com.jgoodies.looks.Fonts
The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Large".
WINDOWS_VISTA_96DPI_NORMAL - Static variable in class com.jgoodies.looks.Fonts
The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Normal".
WINDOWS_XP_120DPI_DEFAULT_GUI - Static variable in class com.jgoodies.looks.Fonts
The default GUI font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".
WINDOWS_XP_120DPI_NORMAL - Static variable in class com.jgoodies.looks.Fonts
The default icon font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".
WINDOWS_XP_96DPI_DEFAULT_GUI - Static variable in class com.jgoodies.looks.Fonts
The default GUI font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".
WINDOWS_XP_96DPI_LARGE - Static variable in class com.jgoodies.looks.Fonts
The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Large".
WINDOWS_XP_96DPI_NORMAL - Static variable in class com.jgoodies.looks.Fonts
The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".
WindowsButtonUI - Class in com.jgoodies.looks.windows
The JGoodies Windows look&feel implementation of ButtonUI.
WindowsButtonUI() - Constructor for class com.jgoodies.looks.windows.WindowsButtonUI
 
WindowsComboBoxUI - Class in com.jgoodies.looks.windows
The JGoodies Windows Look&Feel implementation of ComboBoxUI.
WindowsComboBoxUI() - Constructor for class com.jgoodies.looks.windows.WindowsComboBoxUI
 
WindowsFormattedTextFieldUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of FormattedTextFieldUI.
WindowsFormattedTextFieldUI() - Constructor for class com.jgoodies.looks.windows.WindowsFormattedTextFieldUI
 
WindowsLookAndFeel - Class in com.jgoodies.looks.windows
The main class of the JGoodies Windows Look&Feel.
WindowsLookAndFeel() - Constructor for class com.jgoodies.looks.windows.WindowsLookAndFeel
 
WindowsMenuBarUI - Class in com.jgoodies.looks.windows
The JGoodies Windows look and feel implemenation of MenuBarUI.
WindowsMenuBarUI() - Constructor for class com.jgoodies.looks.windows.WindowsMenuBarUI
 
WindowsMenuItemUI - Class in com.jgoodies.looks.windows
The JGoodies Windows look&feel implementation of MenuItemUI.
WindowsMenuItemUI() - Constructor for class com.jgoodies.looks.windows.WindowsMenuItemUI
 
WindowsOptionPaneUI - Class in com.jgoodies.looks.windows
The JGoodies Windows Look&Feel implementation of OptionPaneUI.
WindowsOptionPaneUI() - Constructor for class com.jgoodies.looks.windows.WindowsOptionPaneUI
 
WindowsPasswordFieldUI - Class in com.jgoodies.looks.windows
The JGoodies Windows Look&Feel implementation of a password field UI delegate.
WindowsPasswordFieldUI() - Constructor for class com.jgoodies.looks.windows.WindowsPasswordFieldUI
 
WindowsPopupMenuUI - Class in com.jgoodies.looks.windows
The JGoodies Windows look&feel implementation of PopMenuUI.
WindowsPopupMenuUI() - Constructor for class com.jgoodies.looks.windows.WindowsPopupMenuUI
 
WindowsScrollBarUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of* ScrollBarUI.
WindowsScrollBarUI() - Constructor for class com.jgoodies.looks.windows.WindowsScrollBarUI
 
WindowsScrollPaneUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of ScrollPaneUI.
WindowsScrollPaneUI() - Constructor for class com.jgoodies.looks.windows.WindowsScrollPaneUI
 
WindowsSeparatorUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of SeparatorUI.
WindowsSeparatorUI() - Constructor for class com.jgoodies.looks.windows.WindowsSeparatorUI
 
WindowsSpinnerUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of SpinnerUI.
WindowsSpinnerUI() - Constructor for class com.jgoodies.looks.windows.WindowsSpinnerUI
 
WindowsSplitPaneUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of SplitPaneUI.
WindowsSplitPaneUI() - Constructor for class com.jgoodies.looks.windows.WindowsSplitPaneUI
 
WindowsTabbedPaneUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of TabbedPaneUI.
WindowsTabbedPaneUI() - Constructor for class com.jgoodies.looks.windows.WindowsTabbedPaneUI
 
WindowsTextAreaUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of TextAreaUI.
WindowsTextAreaUI() - Constructor for class com.jgoodies.looks.windows.WindowsTextAreaUI
 
WindowsTextFieldUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of TextFieldUI.
WindowsTextFieldUI() - Constructor for class com.jgoodies.looks.windows.WindowsTextFieldUI
 
WindowsToolBarSeparatorUI - Class in com.jgoodies.looks.windows
A Windows tool bar separator that honors the tool bar's border.
WindowsToolBarSeparatorUI() - Constructor for class com.jgoodies.looks.windows.WindowsToolBarSeparatorUI
 
WindowsToolBarUI - Class in com.jgoodies.looks.windows
Corrects superclass behavior for rollover borders and adds behavior for handling different types of borders.
WindowsToolBarUI() - Constructor for class com.jgoodies.looks.windows.WindowsToolBarUI
 
WindowsTreeUI - Class in com.jgoodies.looks.windows
The JGoodies Windows Look&Feel implementation of TreeUI.
WindowsTreeUI() - Constructor for class com.jgoodies.looks.windows.WindowsTreeUI
 
WindowsXPMenuUI - Class in com.jgoodies.looks.windows
The JGoodies Windows XP look&feel implementation of MenuUI.
WindowsXPMenuUI() - Constructor for class com.jgoodies.looks.windows.WindowsXPMenuUI
 
WindowsXPTableHeaderUI - Class in com.jgoodies.looks.windows
The JGoodies Windows L&F implementation of TableHeaderUI.
WindowsXPTableHeaderUI() - Constructor for class com.jgoodies.looks.windows.WindowsXPTableHeaderUI
 
WindowsXPToolBarUI - Class in com.jgoodies.looks.windows
Adds behavior for handling different types of borders.
WindowsXPToolBarUI() - Constructor for class com.jgoodies.looks.windows.WindowsXPToolBarUI
 

A B C D E F G H I J L M N O P R S T U W

Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/constant-values.html0000644000175000017500000011066112003555446020742 0ustar tonytony Constant Field Values (JGoodies Looks 2.5 API)

Constant Field Values


Contents
com.jgoodies.*

com.jgoodies.looks.Fonts
public static final String SEGOE_UI_NAME "Segoe UI"
public static final String TAHOMA_NAME "Tahoma"

com.jgoodies.looks.Options
public static final String COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY "ComboBox.popupPrototypeDisplayValue"
public static final String COMBO_RENDERER_IS_BORDER_REMOVABLE "isBorderRemovable"
public static final String DEFAULT_ICON_SIZE_KEY "jgoodies.defaultIconSize"
public static final String DEFAULT_LOOK_NAME "com.jgoodies.looks.plastic.PlasticXPLookAndFeel"
public static final String EMBEDDED_TABS_KEY "jgoodies.embeddedTabs"
public static final String HEADER_STYLE_KEY "jgoodies.headerStyle"
public static final String HI_RES_DISABLED_ICON_CLIENT_KEY "generateHiResDisabledIcon"
public static final String HI_RES_GRAY_FILTER_ENABLED_KEY "HiResGrayFilterEnabled"
public static final String INVERT_SELECTION_CLIENT_KEY "JGoodies.invertSelection"
public static final String IS_ETCHED_KEY "jgoodies.isEtched"
public static final String JGOODIES_WINDOWS_NAME "com.jgoodies.looks.windows.WindowsLookAndFeel"
public static final String NO_CONTENT_BORDER_KEY "jgoodies.noContentBorder"
public static final String NO_ICONS_KEY "jgoodies.noIcons"
public static final String NO_MARGIN_KEY "JPopupMenu.noMargin"
public static final String NO_REPLACEMENT "none"
public static final String PLASTIC_CONTROL_FONT_KEY "Plastic.controlFont"
public static final String PLASTIC_FONT_POLICY_KEY "Plastic.fontPolicy"
public static final String PLASTIC_MENU_FONT_KEY "Plastic.menuFont"
public static final String PLASTIC_MICRO_LAYOUT_POLICY_KEY "Plastic.MicroLayoutPolicy"
public static final String PLASTIC_NAME "com.jgoodies.looks.plastic.PlasticLookAndFeel"
public static final String PLASTIC3D_NAME "com.jgoodies.looks.plastic.Plastic3DLookAndFeel"
public static final String PLASTICXP_NAME "com.jgoodies.looks.plastic.PlasticXPLookAndFeel"
public static final String POPUP_DROP_SHADOW_ENABLED_KEY "jgoodies.popupDropShadowEnabled"
public static final String SELECT_ON_FOCUS_GAIN_CLIENT_KEY "JGoodies.selectAllOnFocusGain"
public static final String SELECT_ON_FOCUS_GAIN_KEY "JGoodies.selectAllOnFocusGain"
public static final String SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY "JGoodies.setCaretToStartOnFocusLost"
public static final String TAB_ICONS_ENABLED_KEY "jgoodies.tabIconsEnabled"
public static final String TREE_LINE_STYLE_ANGLED_VALUE "Angled"
public static final String TREE_LINE_STYLE_KEY "JTree.lineStyle"
public static final String TREE_LINE_STYLE_NONE_VALUE "None"
public static final String USE_NARROW_BUTTONS_KEY "jgoodies.useNarrowButtons"
public static final String USE_SYSTEM_FONTS_APP_KEY "Application.useSystemFontSettings"
public static final String USE_SYSTEM_FONTS_KEY "swing.useSystemFontSettings"
public static final String WINDOWS_CONTROL_FONT_KEY "Windows.controlFont"
public static final String WINDOWS_FONT_POLICY_KEY "Windows.fontPolicy"
public static final String WINDOWS_MENU_FONT_KEY "Windows.menuFont"
public static final String WINDOWS_MICRO_LAYOUT_POLICY_KEY "Windows.MicroLayoutPolicy"

com.jgoodies.looks.common.MenuItemRenderer
protected static final String HTML_KEY "html"

com.jgoodies.looks.plastic.PlasticInternalFrameUI
public static final String IS_PALETTE "JInternalFrame.isPalette"

com.jgoodies.looks.plastic.PlasticLookAndFeel
public static final String BORDER_STYLE_KEY "Plastic.borderStyle"
public static final String DEFAULT_THEME_KEY "Plastic.defaultTheme"
public static final String HIGH_CONTRAST_FOCUS_ENABLED_KEY "Plastic.highContrastFocus"
public static final String IS_3D_KEY "Plastic.is3D"
public static final String TAB_STYLE_DEFAULT_VALUE "default"
protected static final String TAB_STYLE_KEY "Plastic.tabStyle"
public static final String TAB_STYLE_METAL_VALUE "metal"

com.jgoodies.looks.plastic.PlasticScrollBarUI
public static final String MAX_BUMPS_WIDTH_KEY "ScrollBar.maxBumpsWidth"

com.jgoodies.looks.plastic.PlasticToggleButtonUI
protected static final String HTML_KEY "html"

com.jgoodies.looks.windows.WindowsLookAndFeel
public static final String BORDER_STYLE_KEY "jgoodies.windows.borderStyle"



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/stylesheet.css0000644000175000017500000000261412003555450017622 0ustar tonytony/* Javadoc style sheet */ /* Define colors, fonts and other style attributes here to override the defaults */ /* Page background color */ body { background-color: #FFFFFF; color:#000000 } /* Headings */ h1 { font-size: 145% } /* Table colors */ .TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ .TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ .TableRowColor { background: #FFFFFF; color:#000000 } /* White */ /* Font used in left-hand frame lists */ .FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } .FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } .FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } /* Navigation bar fonts and colors */ .NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ .NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ .NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} .NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} .NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} .NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} jgoodies-looks-2.5.2/docs/api/allclasses-frame.html0000644000175000017500000004074212003555450021027 0ustar tonytony All Classes (JGoodies Looks 2.5 API) All Classes
AbstractSkyTheme
BorderStyle
BrownSugar
ComboBoxEditorTextField
DarkStar
DesertBlue
DesertBluer
DesertGreen
DesertRed
DesertYellow
ExperienceBlue
ExperienceGreen
ExperienceRoyale
ExtBasicCheckBoxMenuItemUI
ExtBasicMenuItemUI
ExtBasicMenuUI
ExtBasicPopupMenuSeparatorUI
ExtBasicRadioButtonMenuItemUI
ExtBasicSpinnerLayout
ExtButtonAreaLayout
FontPolicies
FontPolicy
Fonts
FontSet
FontSets
HeaderStyle
InvertedColorTheme
LightGray
LookUtils
MenuItemRenderer
MenuSelectionProcessor
MicroLayout
MicroLayoutPolicies
MicroLayoutPolicy
MicroLayouts
MinimumSizedCheckIcon
MinimumSizedIcon
Options
Plastic3DLookAndFeel
PlasticButtonUI
PlasticComboBoxUI
PlasticFileChooserUI
PlasticFormattedTextFieldUI
PlasticInternalFrameTitlePane
PlasticInternalFrameUI
PlasticLookAndFeel
PlasticMenuBarUI
PlasticMenuUI
PlasticOptionPaneUI
PlasticPasswordFieldUI
PlasticPopupMenuUI
PlasticScrollBarUI
PlasticScrollPaneUI
PlasticSeparatorUI
PlasticSpinnerUI
PlasticSplitPaneUI
PlasticTabbedPaneUI
PlasticTextAreaUI
PlasticTextFieldUI
PlasticTheme
PlasticToggleButtonUI
PlasticToolBarSeparatorUI
PlasticToolBarUI
PlasticTreeUI
PlasticUtils
PlasticXPCheckBoxUI
PlasticXPIconFactory
PlasticXPLookAndFeel
PlasticXPRadioButtonUI
PlasticXPSpinnerUI
PlasticXPToolBarUI
PlasticXPUtils
PopupMenuLayout
RGBGrayFilter
ShadowPopup
ShadowPopupFactory
Silver
SkyBlue
SkyBluer
SkyGreen
SkyKrupp
SkyPink
SkyRed
SkyYellow
WindowsButtonUI
WindowsComboBoxUI
WindowsFormattedTextFieldUI
WindowsLookAndFeel
WindowsMenuBarUI
WindowsMenuItemUI
WindowsOptionPaneUI
WindowsPasswordFieldUI
WindowsPopupMenuUI
WindowsScrollBarUI
WindowsScrollPaneUI
WindowsSeparatorUI
WindowsSpinnerUI
WindowsSplitPaneUI
WindowsTabbedPaneUI
WindowsTextAreaUI
WindowsTextFieldUI
WindowsToolBarSeparatorUI
WindowsToolBarUI
WindowsTreeUI
WindowsXPMenuUI
WindowsXPTableHeaderUI
WindowsXPToolBarUI
jgoodies-looks-2.5.2/docs/api/com/0000755000175000017500000000000012003555444015475 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/0000755000175000017500000000000012003555444017300 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/0000755000175000017500000000000012003555450020424 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/FontPolicies.html0000644000175000017500000005550412003555444023724 0ustar tonytony FontPolicies (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class FontPolicies

java.lang.Object
  extended by com.jgoodies.looks.FontPolicies

public final class FontPolicies
extends Object

Provides predefined FontPolicy implementations.

Note: The available policies work well on Windows. On other platforms the fonts specified by the runtime environment are chosen. I plan to provide more logic or options for other platforms, for example that a Linux system checks for a Tahoma or Segoe UI.

TODO: Add a check for a custom font policy set in the System properties.

TODO: Add policies that emulate different Windows setups: default XP on 96dpi with normal fonts ("XP-normal-96"), Vista on 120dpi with large fonts ("Vista-large-120"), etc.

Since:
2.0
Version:
$Revision: 1.14 $
Author:
Karsten Lentzsch
See Also:
FontPolicy, FontSet, FontSets, Fonts

Method Summary
static FontPolicy createFixedPolicy(FontSet fontSet)
          Returns a font policy that in turn always returns the specified FontSet.
static FontPolicy customSettingsPolicy(FontPolicy defaultPolicy)
          Returns a font policy that checks for a custom FontPolicy and a custom FontSet specified in the System settings or UIManager.
static FontPolicy getDefaultPlasticOnWindowsPolicy()
          Returns the default font policy for Plastic on the Windows platform.
static FontPolicy getDefaultPlasticPolicy()
          Returns the default Plastic FontPolicy that may vary with the platform and environment.
static FontPolicy getDefaultWindowsPolicy()
          Returns the default font policy for the Windows platform.
static FontPolicy getLogicalFontsPolicy()
          Returns a font policy that returns the logical fonts as specified by the Java runtime environment.
static FontPolicy getLooks1xPlasticPolicy()
          Returns a font policy for getting a Plastic appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x.
static FontPolicy getLooks1xWindowsPolicy()
          Returns a font policy for getting a Windows appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x.
static FontPolicy getTransitionalPlasticPolicy()
          Returns a font policy intended for API users that want to move Plastic code from the Looks 1.x to the Looks 2.0.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createFixedPolicy

public static FontPolicy createFixedPolicy(FontSet fontSet)
Returns a font policy that in turn always returns the specified FontSet. The FontSet will be fixed, but the FontSet itself may return different fonts in different environments.

Parameters:
fontSet - the FontSet to be return by this policy
Returns:
a font policy that returns the specified FontSet.

customSettingsPolicy

public static FontPolicy customSettingsPolicy(FontPolicy defaultPolicy)
Returns a font policy that checks for a custom FontPolicy and a custom FontSet specified in the System settings or UIManager. If no custom settings are available, the given default policy will be used to look up the FontSet.

Parameters:
defaultPolicy - the policy used if there are no custom settings
Returns:
a FontPolicy that checks for custom settings before the default policy is returned.

getDefaultPlasticOnWindowsPolicy

public static FontPolicy getDefaultPlasticOnWindowsPolicy()
Returns the default font policy for Plastic on the Windows platform. It differs from the default Windows policy in that it uses a bold font for TitledBorders, titles, and titled separators.

Returns:
the default font policy for Plastic on the Windows platform.

getDefaultPlasticPolicy

public static FontPolicy getDefaultPlasticPolicy()
Returns the default Plastic FontPolicy that may vary with the platform and environment. On Windows, the PlasticOnWindowsPolicy is returned that is much like the defualt WindowsPolicy but uses a bold title font. On other Platforms, the logical fonts policy is returned that uses the logical fonts as specified by the Java runtime environment.

Returns:
a Windows-like policy on Windows, a logical fonts policy on all other platforms

getDefaultWindowsPolicy

public static FontPolicy getDefaultWindowsPolicy()
Returns the default font policy for the Windows platform. It aims to return a FontSet that is close to the native guidelines and useful for the current Java environment.

The control font scales with the platform screen resolution (96dpi/101dpi/120dpi/144dpi/...) and honors the desktop font settings (normal/large/extra large).

Returns:
the default font policy for the Windows platform.

getLogicalFontsPolicy

public static FontPolicy getLogicalFontsPolicy()
Returns a font policy that returns the logical fonts as specified by the Java runtime environment.

Returns:
a font policy that returns logical fonts.

getLooks1xPlasticPolicy

public static FontPolicy getLooks1xPlasticPolicy()
Returns a font policy for getting a Plastic appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x. It uses a font choice similar to the choice implemented by the Plastic L&fs in the JGoodies Looks version 1.x.

Returns:
a font policy that aims to reproduce the Plastic font choice in the JGoodies Looks 1.x.

getLooks1xWindowsPolicy

public static FontPolicy getLooks1xWindowsPolicy()
Returns a font policy for getting a Windows appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x. It uses a font choice similar to the choice implemented by the Windows L&f in the JGoodies Looks version 1.x.

Returns:
a font policy that aims to reproduce the Windows font choice in the JGoodies Looks 1.x.

getTransitionalPlasticPolicy

public static FontPolicy getTransitionalPlasticPolicy()
Returns a font policy intended for API users that want to move Plastic code from the Looks 1.x to the Looks 2.0. On Windows, it uses the Looks 2.0 Plastic fonts, on other platforms it uses the Looks 1.x Plastic fonts.

Returns:
the recent Plastic font policy on Windows, the JGoodies Looks 1.x on other Platforms.


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/package-frame.html0000644000175000017500000000454512003555446024012 0ustar tonytony com.jgoodies.looks (JGoodies Looks 2.5 API) com.jgoodies.looks
Interfaces 
FontPolicy
FontSet
MicroLayoutPolicy
Classes 
BorderStyle
FontPolicies
Fonts
FontSets
HeaderStyle
LookUtils
MicroLayout
MicroLayoutPolicies
MicroLayouts
Options
jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/MicroLayoutPolicies.html0000644000175000017500000003207212003555444025260 0ustar tonytony MicroLayoutPolicies (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class MicroLayoutPolicies

java.lang.Object
  extended by com.jgoodies.looks.MicroLayoutPolicies

public final class MicroLayoutPolicies
extends Object

Provides predefined MicroLayoutPolicy implementations.

Since:
2.1
Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch
See Also:
MicroLayout, MicroLayouts, MicroLayoutPolicy

Method Summary
static MicroLayoutPolicy getDefaultPlasticPolicy()
          Returns the default MicroLayoutPolicy for the Plastic L&fs.
static MicroLayoutPolicy getDefaultWindowsPolicy()
          Returns the default MicroLayoutPolicy for the Windows L&f.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getDefaultPlasticPolicy

public static MicroLayoutPolicy getDefaultPlasticPolicy()
Returns the default MicroLayoutPolicy for the Plastic L&fs. Uses component insets that are similar to the Windows L&f micro layout, making it easier to

Returns:
a Windows-like micro layout policy for the Plastic L&fs

getDefaultWindowsPolicy

public static MicroLayoutPolicy getDefaultWindowsPolicy()
Returns the default MicroLayoutPolicy for the Windows L&f. It aims to describe component insets that follow the native guidelines.

Returns:
the default micro layout policy for the Windows platform.


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/FontSets.html0000644000175000017500000005472212003555444023074 0ustar tonytony FontSets (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class FontSets

java.lang.Object
  extended by com.jgoodies.looks.FontSets

public final class FontSets
extends Object

Provides predefined FontSet implementations.

Since:
2.0
Version:
$Revision: 1.16 $
Author:
Karsten Lentzsch
See Also:
FontSet, FontPolicy, FontPolicies

Method Summary
static FontSet createDefaultFontSet(Font controlFont)
          Creates and returns a FontSet that is based only on the given control font.
static FontSet createDefaultFontSet(Font controlFont, Font menuFont)
          Creates and returns a FontSet that is based on the given control font and menu font.
static FontSet createDefaultFontSet(Font controlFont, Font menuFont, Font titleFont)
          Creates and returns a FontSet that is based on the given control font and menu font.
static FontSet createDefaultFontSet(Font controlFont, Font menuFont, Font titleFont, Font messageFont, Font smallFont, Font windowTitleFont)
          Creates and returns a FontSet for the given fonts.
static FontSet getLogicalFontSet()
          Lazily creates and returns the FontSet that returns the logical fonts specified by the Java runtime environment.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createDefaultFontSet

public static FontSet createDefaultFontSet(Font controlFont)
Creates and returns a FontSet that is based only on the given control font. The small font will be derived from the control font; all other fonts returned are the control font.

Parameters:
controlFont - the font used for all controls
Returns:
a FontSet based on the given fonts
Throws:
NullPointerException - if the control font is null

createDefaultFontSet

public static FontSet createDefaultFontSet(Font controlFont,
                                           Font menuFont)
Creates and returns a FontSet that is based on the given control font and menu font. The small font will be derived from the control font; all other fonts return, except the menu font, are the control font.

Parameters:
controlFont - the font used for all controls
menuFont - the font used for the menu bar and menu items
Returns:
a FontSet based on the given fonts
Throws:
NullPointerException - if the control font is null

createDefaultFontSet

public static FontSet createDefaultFontSet(Font controlFont,
                                           Font menuFont,
                                           Font titleFont)
Creates and returns a FontSet that is based on the given control font and menu font. The small font will be derived from the control font; all other fonts return, except the menu font, are the control font.

Parameters:
controlFont - the font used for all controls
menuFont - the font used for the menu bar and menu items
titleFont - used for TitledBorder, titles and titled separators
Returns:
a FontSet based on the given fonts
Throws:
NullPointerException - if the control font is null

createDefaultFontSet

public static FontSet createDefaultFontSet(Font controlFont,
                                           Font menuFont,
                                           Font titleFont,
                                           Font messageFont,
                                           Font smallFont,
                                           Font windowTitleFont)
Creates and returns a FontSet for the given fonts. If a font is null, it uses the control font as fallback. If the small font is null it will be derived from the control font.

Parameters:
controlFont - used for all controls
menuFont - used for the menu bar and menu items
titleFont - used for TitledBorder, titles and titled separators
messageFont - used for OptionPanes
smallFont - used for tool tips and similar components
windowTitleFont - used for internal frame window titles
Returns:
a FontSet based on the given fonts
Throws:
NullPointerException - if the control font is null

getLogicalFontSet

public static FontSet getLogicalFontSet()
Lazily creates and returns the FontSet that returns the logical fonts specified by the Java runtime environment.

Returns:
a FontSets that uses the logical fonts specified by the Java environment


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/0000755000175000017500000000000012003555450022116 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsFormattedTextFieldUI.html0000644000175000017500000007310412003555446030365 0ustar tonytony WindowsFormattedTextFieldUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsFormattedTextFieldUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextFieldUI
                  extended by javax.swing.plaf.basic.BasicFormattedTextFieldUI
                      extended by com.jgoodies.looks.windows.WindowsFormattedTextFieldUI
All Implemented Interfaces:
ViewFactory

public final class WindowsFormattedTextFieldUI
extends BasicFormattedTextFieldUI

The JGoodies Windows L&F implementation of FormattedTextFieldUI. It uses a caret that selects all text if the field gains focus after a keyboard focus traversal.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
WindowsFormattedTextFieldUI()
           
 
Method Summary
protected  Caret createCaret()
          Creates the caret for a field.
static ComponentUI createUI(JComponent c)
          Creates a UI for a JFormattedTextField.
 
Methods inherited from class javax.swing.plaf.basic.BasicFormattedTextFieldUI
getPropertyPrefix
 
Methods inherited from class javax.swing.plaf.basic.BasicTextFieldUI
create, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getMinimumSize, getNextVisualPositionFrom, getPreferredSize, getRootView, getToolTipText, getVisibleEditorRect, installDefaults, installKeyboardActions, installListeners, installUI, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, propertyChange, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsFormattedTextFieldUI

public WindowsFormattedTextFieldUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JFormattedTextField.

Parameters:
c - the formatted text field
Returns:
the UI

createCaret

protected Caret createCaret()
Creates the caret for a field.

Overrides:
createCaret in class BasicTextUI
Returns:
the caret


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/package-frame.html0000644000175000017500000000732612003555446025504 0ustar tonytony com.jgoodies.looks.windows (JGoodies Looks 2.5 API) com.jgoodies.looks.windows
Classes 
WindowsButtonUI
WindowsComboBoxUI
WindowsFormattedTextFieldUI
WindowsLookAndFeel
WindowsMenuBarUI
WindowsMenuItemUI
WindowsOptionPaneUI
WindowsPasswordFieldUI
WindowsPopupMenuUI
WindowsScrollBarUI
WindowsScrollPaneUI
WindowsSeparatorUI
WindowsSpinnerUI
WindowsSplitPaneUI
WindowsTabbedPaneUI
WindowsTextAreaUI
WindowsTextFieldUI
WindowsToolBarSeparatorUI
WindowsToolBarUI
WindowsTreeUI
WindowsXPMenuUI
WindowsXPTableHeaderUI
WindowsXPToolBarUI
jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsButtonUI.html0000644000175000017500000005713112003555446026104 0ustar tonytony WindowsButtonUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsButtonUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.basic.BasicButtonUI
              extended by com.sun.java.swing.plaf.windows.WindowsButtonUI
                  extended by com.jgoodies.looks.windows.WindowsButtonUI

public final class WindowsButtonUI
extends com.sun.java.swing.plaf.windows.WindowsButtonUI

The JGoodies Windows look&feel implementation of ButtonUI.

Unlike its superclass it returns even and odd preferred heights.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.sun.java.swing.plaf.windows.WindowsButtonUI
dashedRectGapHeight, dashedRectGapWidth, dashedRectGapX, dashedRectGapY, focusColor
 
Fields inherited from class javax.swing.plaf.basic.BasicButtonUI
defaultTextIconGap, defaultTextShiftOffset
 
Constructor Summary
WindowsButtonUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
 Dimension getPreferredSize(JComponent c)
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsButtonUI
getFocusColor, installDefaults, paint, paintButtonPressed, paintFocus, paintText, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicButtonUI
clearTextShiftOffset, createButtonListener, getBaseline, getBaselineResizeBehavior, getDefaultTextIconGap, getMaximumSize, getMinimumSize, getPropertyPrefix, getTextShiftOffset, installKeyboardActions, installListeners, installUI, paintIcon, paintText, setTextShiftOffset, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsButtonUI

public WindowsButtonUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Overrides:
getPreferredSize in class com.sun.java.swing.plaf.windows.WindowsButtonUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsTextAreaUI.html0000644000175000017500000007421412003555446026347 0ustar tonytony WindowsTextAreaUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsTextAreaUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextAreaUI
                  extended by com.sun.java.swing.plaf.windows.WindowsTextAreaUI
                      extended by com.jgoodies.looks.windows.WindowsTextAreaUI
All Implemented Interfaces:
ViewFactory

public final class WindowsTextAreaUI
extends com.sun.java.swing.plaf.windows.WindowsTextAreaUI

The JGoodies Windows L&F implementation of TextAreaUI. In addition to its superclass WindowsTextAreaUI, it updates the background colors using behavior from BasicTextFieldUI.

Version:
$Revision: 1.11 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
WindowsTextAreaUI()
           
 
Method Summary
static ComponentUI createUI(JComponent c)
          Creates a UI for a JTextArea.
 void installUI(JComponent c)
           
protected  void propertyChange(PropertyChangeEvent evt)
          This method gets called when a bound property is changed on the associated JTextComponent.
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsTextAreaUI
createCaret
 
Methods inherited from class javax.swing.plaf.basic.BasicTextAreaUI
create, getBaseline, getBaselineResizeBehavior, getMinimumSize, getPreferredSize, getPropertyPrefix, installDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getNextVisualPositionFrom, getRootView, getToolTipText, getVisibleEditorRect, installKeyboardActions, installListeners, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsTextAreaUI

public WindowsTextAreaUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JTextArea.

Parameters:
c - the text area
Returns:
the UI

installUI

public void installUI(JComponent c)
Overrides:
installUI in class BasicTextUI

propertyChange

protected void propertyChange(PropertyChangeEvent evt)
This method gets called when a bound property is changed on the associated JTextComponent. In addition to the superclass behavior, this UI updates the background if the editable or enabled property changes.

Overrides:
propertyChange in class BasicTextAreaUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsPasswordFieldUI.html0000644000175000017500000007267112003555446027405 0ustar tonytony WindowsPasswordFieldUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsPasswordFieldUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextFieldUI
                  extended by javax.swing.plaf.basic.BasicPasswordFieldUI
                      extended by com.sun.java.swing.plaf.windows.WindowsPasswordFieldUI
                          extended by com.jgoodies.looks.windows.WindowsPasswordFieldUI
All Implemented Interfaces:
ViewFactory

public final class WindowsPasswordFieldUI
extends com.sun.java.swing.plaf.windows.WindowsPasswordFieldUI

The JGoodies Windows Look&Feel implementation of a password field UI delegate. It differs from its superclass in that it utilizes a custom caret.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
WindowsPasswordFieldUI()
           
 
Method Summary
protected  Caret createCaret()
          Creates the caret for a field.
static ComponentUI createUI(JComponent c)
          Creates a UI for a JPasswordField.
 
Methods inherited from class javax.swing.plaf.basic.BasicPasswordFieldUI
create, getPropertyPrefix, installDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicTextFieldUI
getBaseline, getBaselineResizeBehavior
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getMinimumSize, getNextVisualPositionFrom, getPreferredSize, getRootView, getToolTipText, getVisibleEditorRect, installKeyboardActions, installListeners, installUI, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, propertyChange, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsPasswordFieldUI

public WindowsPasswordFieldUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JPasswordField.

Parameters:
c - the password field component
Returns:
the UI

createCaret

protected Caret createCaret()
Creates the caret for a field.

Overrides:
createCaret in class com.sun.java.swing.plaf.windows.WindowsPasswordFieldUI
Returns:
the caret


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/package-tree.html0000644000175000017500000005617512003555446025357 0ustar tonytony com.jgoodies.looks.windows Class Hierarchy (JGoodies Looks 2.5 API)

Hierarchy For Package com.jgoodies.looks.windows

Package Hierarchies:
All Packages

Class Hierarchy



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsComboBoxUI.html0000644000175000017500000014126312003555446026341 0ustar tonytony WindowsComboBoxUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsComboBoxUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ComboBoxUI
          extended by javax.swing.plaf.basic.BasicComboBoxUI
              extended by com.sun.java.swing.plaf.windows.WindowsComboBoxUI
                  extended by com.jgoodies.looks.windows.WindowsComboBoxUI

public class WindowsComboBoxUI
extends com.sun.java.swing.plaf.windows.WindowsComboBoxUI

The JGoodies Windows Look&Feel implementation of ComboBoxUI. Corrects the editor insets for editable combo boxes as well as the render insets for non-editable combos. And it has the same height as text fields - unless you change the renderer.

Also, this class offers to use the combo's popup prototype display value to compute the popup menu width. This is an optional feature of the JGoodies Windows L&f implemented via a client property key.

Version:
$Revision: 1.26 $
Author:
Karsten Lentzsch
See Also:
Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY

Nested Class Summary
 
Nested classes/interfaces inherited from class com.sun.java.swing.plaf.windows.WindowsComboBoxUI
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.WindowsComboBoxEditor
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicComboBoxUI
BasicComboBoxUI.ComboBoxLayoutManager, BasicComboBoxUI.FocusHandler, BasicComboBoxUI.ItemHandler, BasicComboBoxUI.KeyHandler, BasicComboBoxUI.ListDataHandler, BasicComboBoxUI.PropertyChangeHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicComboBoxUI
arrowButton, cachedMinimumSize, comboBox, currentValuePane, editor, focusListener, hasFocus, isMinimumSizeDirty, itemListener, keyListener, listBox, listDataListener, popup, popupKeyListener, popupMouseListener, popupMouseMotionListener
 
Constructor Summary
WindowsComboBoxUI()
           
 
Method Summary
protected  void configureEditor()
           
protected  JButton createArrowButton()
          Creates the arrow button that is to be used in the combo box.
protected  ComboBoxEditor createEditor()
          Creates the editor that is to be used in editable combo boxes.
protected  LayoutManager createLayoutManager()
          Creates a layout manager for managing the components which make up the combo box.
protected  ComboPopup createPopup()
          Creates a ComboPopup that honors the optional combo popup display value that is used to compute the popup menu width.
protected  ListCellRenderer createRenderer()
          Creates the default renderer that will be used in a non-editiable combo box.
static ComponentUI createUI(JComponent b)
           
 Dimension getMinimumSize(JComponent c)
          The minumum size is the size of the display area plus insets plus the button.
 Dimension getPreferredSize(JComponent c)
          Delegates to #getMinimumSize(Component).
protected  void installListeners()
           
 void installUI(JComponent c)
           
protected  boolean isRendererBorderRemovable(JComponent rendererComponent)
          Checks and answer whether the border of the given renderer component can be removed temporarily, so the combo's selection background will be consistent with the default renderer and native appearance.
 void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
          Paints the currently selected item.
protected  Rectangle rectangleForCurrentValue()
          Returns the area that is reserved for drawing the currently selected item.
protected  void uninstallListeners()
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsComboBoxUI
installKeyboardActions, paint, paintCurrentValueBackground, unconfigureEditor, uninstallUI
 
Methods inherited from class javax.swing.plaf.basic.BasicComboBoxUI
addEditor, configureArrowButton, createFocusListener, createItemListener, createKeyListener, createListDataListener, createPropertyChangeListener, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getDefaultSize, getDisplaySize, getInsets, getMaximumSize, installComponents, installDefaults, isFocusTraversable, isNavigationKey, isPopupVisible, removeEditor, selectNextPossibleValue, selectPreviousPossibleValue, setPopupVisible, toggleOpenClose, unconfigureArrowButton, uninstallComponents, uninstallDefaults, uninstallKeyboardActions
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsComboBoxUI

public WindowsComboBoxUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installUI

public void installUI(JComponent c)
Overrides:
installUI in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

installListeners

protected void installListeners()
Overrides:
installListeners in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

createArrowButton

protected JButton createArrowButton()
Creates the arrow button that is to be used in the combo box.

Overridden to paint black triangles.

Overrides:
createArrowButton in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

createEditor

protected ComboBoxEditor createEditor()
Creates the editor that is to be used in editable combo boxes. This method only gets called if a custom editor has not already been installed in the JComboBox.

Overrides:
createEditor in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

createLayoutManager

protected LayoutManager createLayoutManager()
Creates a layout manager for managing the components which make up the combo box.

Overriden to use a layout that has a fixed width arrow button.

Overrides:
createLayoutManager in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI
Returns:
an instance of a layout manager

configureEditor

protected void configureEditor()
Overrides:
configureEditor in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

createPopup

protected ComboPopup createPopup()
Creates a ComboPopup that honors the optional combo popup display value that is used to compute the popup menu width.

Overrides:
createPopup in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

createRenderer

protected ListCellRenderer createRenderer()
Creates the default renderer that will be used in a non-editiable combo box. A default renderer will used only if a renderer has not been explicitly set with setRenderer.

This method differs from the superclass implementation in that it uses an empty border with the default left and right text insets, the same as used by a combo box editor.

Overrides:
createRenderer in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI
Returns:
a ListCellRender used for the combo box
See Also:
JComboBox.setRenderer(javax.swing.ListCellRenderer)

getMinimumSize

public Dimension getMinimumSize(JComponent c)
The minumum size is the size of the display area plus insets plus the button.

Overrides:
getMinimumSize in class BasicComboBoxUI

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Delegates to #getMinimumSize(Component). Overridden to return the same result in JDK 1.5 as in JDK 1.4.

Overrides:
getPreferredSize in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

paintCurrentValue

public void paintCurrentValue(Graphics g,
                              Rectangle bounds,
                              boolean hasFocus)
Paints the currently selected item.

Overrides:
paintCurrentValue in class com.sun.java.swing.plaf.windows.WindowsComboBoxUI

isRendererBorderRemovable

protected boolean isRendererBorderRemovable(JComponent rendererComponent)
Checks and answer whether the border of the given renderer component can be removed temporarily, so the combo's selection background will be consistent with the default renderer and native appearance. This test is invoked from #paintCurrentValue.

It is safe to remove an EmptyBorder if the component doesn't override #update, #paint and #paintBorder. Since we know the default renderer, we can remove its border.

Custom renderers may set a hint to make their border removable. To do so, set the client property "isBorderRemovable" to Boolean.TRUE. If this client property is set, its value will be returned. If it is not set, true is returned if and only if the component's border is an EmptyBorder.

Parameters:
rendererComponent - the renderer component to check
Returns:
true if the component's border can be removed, false if not
See Also:
paintCurrentValue(Graphics, Rectangle, boolean)

rectangleForCurrentValue

protected Rectangle rectangleForCurrentValue()
Returns the area that is reserved for drawing the currently selected item.

Overrides:
rectangleForCurrentValue in class BasicComboBoxUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/package-use.html0000644000175000017500000001325712003555450025201 0ustar tonytony Uses of Package com.jgoodies.looks.windows (JGoodies Looks 2.5 API)

Uses of Package
com.jgoodies.looks.windows

No usage of com.jgoodies.looks.windows



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsScrollBarUI.html0000644000175000017500000011476312003555446026521 0ustar tonytony WindowsScrollBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsScrollBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ScrollBarUI
          extended by javax.swing.plaf.basic.BasicScrollBarUI
              extended by com.sun.java.swing.plaf.windows.WindowsScrollBarUI
                  extended by com.jgoodies.looks.windows.WindowsScrollBarUI
All Implemented Interfaces:
LayoutManager, SwingConstants

public final class WindowsScrollBarUI
extends com.sun.java.swing.plaf.windows.WindowsScrollBarUI

The JGoodies Windows L&F implementation of* ScrollBarUI. It differs from Sun's Windows Look in that it paints black button triangles and that it honors the ScrollBar.width property to determine the preferred size.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicScrollBarUI
BasicScrollBarUI.ArrowButtonListener, BasicScrollBarUI.ModelListener, BasicScrollBarUI.PropertyChangeHandler, BasicScrollBarUI.ScrollListener, BasicScrollBarUI.TrackListener
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicScrollBarUI
buttonListener, decrButton, DECREASE_HIGHLIGHT, incrButton, INCREASE_HIGHLIGHT, isDragging, maximumThumbSize, minimumThumbSize, modelListener, NO_HIGHLIGHT, propertyChangeListener, scrollbar, scrollListener, scrollTimer, thumbColor, thumbDarkShadowColor, thumbHighlightColor, thumbLightShadowColor, thumbRect, trackColor, trackHighlight, trackHighlightColor, trackListener, trackRect
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
WindowsScrollBarUI()
           
 
Method Summary
protected  JButton createDecreaseButton(int orientation)
           
protected  JButton createIncreaseButton(int orientation)
           
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsScrollBarUI
configureScrollBarColors, createArrowButtonListener, installDefaults, paintDecreaseHighlight, paintIncreaseHighlight, paintThumb, paintTrack, setThumbRollover, uninstallUI
 
Methods inherited from class javax.swing.plaf.basic.BasicScrollBarUI
addLayoutComponent, createModelListener, createPropertyChangeListener, createScrollListener, createTrackListener, getMaximumSize, getMaximumThumbSize, getMinimumThumbSize, getPreferredSize, getSupportsAbsolutePositioning, getThumbBounds, getTrackBounds, installComponents, installKeyboardActions, installListeners, installUI, isThumbRollover, layoutContainer, layoutHScrollbar, layoutVScrollbar, minimumLayoutSize, paint, preferredLayoutSize, removeLayoutComponent, scrollByBlock, scrollByUnit, setThumbBounds, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMinimumSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsScrollBarUI

public WindowsScrollBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createDecreaseButton

protected JButton createDecreaseButton(int orientation)
Overrides:
createDecreaseButton in class com.sun.java.swing.plaf.windows.WindowsScrollBarUI

createIncreaseButton

protected JButton createIncreaseButton(int orientation)
Overrides:
createIncreaseButton in class com.sun.java.swing.plaf.windows.WindowsScrollBarUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsScrollPaneUI.html0000644000175000017500000010515612003555446026674 0ustar tonytony WindowsScrollPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsScrollPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ScrollPaneUI
          extended by javax.swing.plaf.basic.BasicScrollPaneUI
              extended by com.sun.java.swing.plaf.windows.WindowsScrollPaneUI
                  extended by com.jgoodies.looks.windows.WindowsScrollPaneUI
All Implemented Interfaces:
ScrollPaneConstants

public final class WindowsScrollPaneUI
extends com.sun.java.swing.plaf.windows.WindowsScrollPaneUI

The JGoodies Windows L&F implementation of ScrollPaneUI. Installs an etched border if the client property Options.IS_ETCHED_KEY is set.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
Options.IS_ETCHED_KEY

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicScrollPaneUI
BasicScrollPaneUI.HSBChangeListener, BasicScrollPaneUI.MouseWheelHandler, BasicScrollPaneUI.PropertyChangeHandler, BasicScrollPaneUI.ViewportChangeHandler, BasicScrollPaneUI.VSBChangeListener
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicScrollPaneUI
hsbChangeListener, scrollpane, spPropertyChangeListener, viewportChangeListener, vsbChangeListener
 
Fields inherited from interface javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
Constructor Summary
WindowsScrollPaneUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults(JScrollPane scrollPane)
           
 void installListeners(JScrollPane scrollPane)
           
protected  void uninstallListeners(JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicScrollPaneUI
createHSBChangeListener, createMouseWheelListener, createPropertyChangeListener, createViewportChangeListener, createVSBChangeListener, getBaseline, getBaselineResizeBehavior, getMaximumSize, installKeyboardActions, installUI, paint, syncScrollPaneWithViewport, uninstallDefaults, uninstallKeyboardActions, uninstallUI, updateColumnHeader, updateRowHeader, updateScrollBarDisplayPolicy, updateViewport
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMinimumSize, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsScrollPaneUI

public WindowsScrollPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults(JScrollPane scrollPane)
Overrides:
installDefaults in class BasicScrollPaneUI

installListeners

public void installListeners(JScrollPane scrollPane)
Overrides:
installListeners in class BasicScrollPaneUI

uninstallListeners

protected void uninstallListeners(JComponent c)
Overrides:
uninstallListeners in class BasicScrollPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/0000755000175000017500000000000012003555450024015 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsFormattedTextFieldUI.html0000644000175000017500000001427612003555450032264 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsFormattedTextFieldUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsFormattedTextFieldUI

No usage of com.jgoodies.looks.windows.WindowsFormattedTextFieldUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsButtonUI.html0000644000175000017500000001410612003555450027771 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsButtonUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsButtonUI

No usage of com.jgoodies.looks.windows.WindowsButtonUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsTextAreaUI.html0000644000175000017500000001413212003555450030232 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsTextAreaUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsTextAreaUI

No usage of com.jgoodies.looks.windows.WindowsTextAreaUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsPasswordFieldUI.html0000644000175000017500000001421412003555450031264 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsPasswordFieldUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsPasswordFieldUI

No usage of com.jgoodies.looks.windows.WindowsPasswordFieldUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsComboBoxUI.html0000644000175000017500000001413212003555450030225 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsComboBoxUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsComboBoxUI

No usage of com.jgoodies.looks.windows.WindowsComboBoxUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsScrollBarUI.html0000644000175000017500000001414412003555450030403 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsScrollBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsScrollBarUI

No usage of com.jgoodies.looks.windows.WindowsScrollBarUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsScrollPaneUI.html0000644000175000017500000001415612003555450030565 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsScrollPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsScrollPaneUI

No usage of com.jgoodies.looks.windows.WindowsScrollPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsSeparatorUI.html0000644000175000017500000001414412003555450030460 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsSeparatorUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsSeparatorUI

No usage of com.jgoodies.looks.windows.WindowsSeparatorUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsXPTableHeaderUI.html0000644000175000017500000001421412003555450031126 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsXPTableHeaderUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsXPTableHeaderUI

No usage of com.jgoodies.looks.windows.WindowsXPTableHeaderUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsOptionPaneUI.html0000644000175000017500000001415612003555450030577 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsOptionPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsOptionPaneUI

No usage of com.jgoodies.looks.windows.WindowsOptionPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsXPToolBarUI.html0000644000175000017500000001414412003555450030332 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsXPToolBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsXPToolBarUI

No usage of com.jgoodies.looks.windows.WindowsXPToolBarUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsMenuBarUI.html0000644000175000017500000001412012003555450030043 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsMenuBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsMenuBarUI

No usage of com.jgoodies.looks.windows.WindowsMenuBarUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsPopupMenuUI.html0000644000175000017500000001414412003555450030450 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsPopupMenuUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsPopupMenuUI

No usage of com.jgoodies.looks.windows.WindowsPopupMenuUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsSplitPaneUI.html0000644000175000017500000001414412003555450030417 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsSplitPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsSplitPaneUI

No usage of com.jgoodies.looks.windows.WindowsSplitPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsToolBarUI.html0000644000175000017500000001412012003555450030054 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsToolBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsToolBarUI

No usage of com.jgoodies.looks.windows.WindowsToolBarUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsTabbedPaneUI.html0000644000175000017500000001415612003555450030510 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsTabbedPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsTabbedPaneUI

No usage of com.jgoodies.looks.windows.WindowsTabbedPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsLookAndFeel.html0000644000175000017500000001414412003555450030405 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsLookAndFeel (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsLookAndFeel

No usage of com.jgoodies.looks.windows.WindowsLookAndFeel



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsTextFieldUI.html0000644000175000017500000001414412003555450030410 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsTextFieldUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsTextFieldUI

No usage of com.jgoodies.looks.windows.WindowsTextFieldUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsMenuItemUI.html0000644000175000017500000001413212003555450030240 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsMenuItemUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsMenuItemUI

No usage of com.jgoodies.looks.windows.WindowsMenuItemUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsXPMenuUI.html0000644000175000017500000001410612003555450027672 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsXPMenuUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsXPMenuUI

No usage of com.jgoodies.looks.windows.WindowsXPMenuUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsTreeUI.html0000644000175000017500000001406212003555450027416 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsTreeUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsTreeUI

No usage of com.jgoodies.looks.windows.WindowsTreeUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsSpinnerUI.html0000644000175000017500000001412012003555450030130 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsSpinnerUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsSpinnerUI

No usage of com.jgoodies.looks.windows.WindowsSpinnerUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/class-use/WindowsToolBarSeparatorUI.html0000644000175000017500000001425212003555450031743 0ustar tonytony Uses of Class com.jgoodies.looks.windows.WindowsToolBarSeparatorUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.windows.WindowsToolBarSeparatorUI

No usage of com.jgoodies.looks.windows.WindowsToolBarSeparatorUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsSeparatorUI.html0000644000175000017500000005023112003555446026563 0ustar tonytony WindowsSeparatorUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsSeparatorUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SeparatorUI
          extended by javax.swing.plaf.basic.BasicSeparatorUI
              extended by com.jgoodies.looks.windows.WindowsSeparatorUI

public final class WindowsSeparatorUI
extends BasicSeparatorUI

The JGoodies Windows L&F implementation of SeparatorUI. It differs from its superclass in that it uses a shared UI delegate.

Thanks to Andrej Golovnin for his feedback and suggestions.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSeparatorUI
highlight, shadow
 
Constructor Summary
WindowsSeparatorUI()
           
 
Method Summary
static ComponentUI createUI(JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicSeparatorUI
getMaximumSize, getMinimumSize, getPreferredSize, installDefaults, installListeners, installUI, paint, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsSeparatorUI

public WindowsSeparatorUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsXPTableHeaderUI.html0000644000175000017500000006455112003555446027245 0ustar tonytony WindowsXPTableHeaderUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsXPTableHeaderUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TableHeaderUI
          extended by javax.swing.plaf.basic.BasicTableHeaderUI
              extended by com.sun.java.swing.plaf.windows.WindowsTableHeaderUI
                  extended by com.jgoodies.looks.windows.WindowsXPTableHeaderUI

public final class WindowsXPTableHeaderUI
extends com.sun.java.swing.plaf.windows.WindowsTableHeaderUI

The JGoodies Windows L&F implementation of TableHeaderUI. A Windows table header that honors the XP header style even if the user uses custom non-opaque renderers. The renderers should be a subclass of JComponent because we need to replace the border by the one specified in the XP style.

Thanks to Andrej Golovnin for his feedback and suggestions.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTableHeaderUI
BasicTableHeaderUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicTableHeaderUI
header, mouseInputListener, rendererPane
 
Constructor Summary
WindowsXPTableHeaderUI()
           
 
Method Summary
static ComponentUI createUI(JComponent h)
           
 void installUI(JComponent c)
           
 void paint(Graphics g, JComponent c)
           
 void uninstallUI(JComponent c)
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsTableHeaderUI
rolloverColumnUpdated
 
Methods inherited from class javax.swing.plaf.basic.BasicTableHeaderUI
createMouseInputListener, getBaseline, getMaximumSize, getMinimumSize, getPreferredSize, getRolloverColumn, installDefaults, installKeyboardActions, installListeners, uninstallDefaults, uninstallKeyboardActions, uninstallListeners
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsXPTableHeaderUI

public WindowsXPTableHeaderUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent h)

installUI

public void installUI(JComponent c)
Overrides:
installUI in class com.sun.java.swing.plaf.windows.WindowsTableHeaderUI

uninstallUI

public void uninstallUI(JComponent c)
Overrides:
uninstallUI in class com.sun.java.swing.plaf.windows.WindowsTableHeaderUI

paint

public void paint(Graphics g,
                  JComponent c)
Overrides:
paint in class BasicTableHeaderUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/package-summary.html0000644000175000017500000003444312003555446026107 0ustar tonytony com.jgoodies.looks.windows (JGoodies Looks 2.5 API)

Package com.jgoodies.looks.windows

Contains the classes for the JGoodies Windows L&F

See:
          Description

Class Summary
WindowsButtonUI The JGoodies Windows look&feel implementation of ButtonUI.
WindowsComboBoxUI The JGoodies Windows Look&Feel implementation of ComboBoxUI.
WindowsFormattedTextFieldUI The JGoodies Windows L&F implementation of FormattedTextFieldUI.
WindowsLookAndFeel The main class of the JGoodies Windows Look&Feel.
WindowsMenuBarUI The JGoodies Windows look and feel implemenation of MenuBarUI.
WindowsMenuItemUI The JGoodies Windows look&feel implementation of MenuItemUI.
WindowsOptionPaneUI The JGoodies Windows Look&Feel implementation of OptionPaneUI.
WindowsPasswordFieldUI The JGoodies Windows Look&Feel implementation of a password field UI delegate.
WindowsPopupMenuUI The JGoodies Windows look&feel implementation of PopMenuUI.
WindowsScrollBarUI The JGoodies Windows L&F implementation of* ScrollBarUI.
WindowsScrollPaneUI The JGoodies Windows L&F implementation of ScrollPaneUI.
WindowsSeparatorUI The JGoodies Windows L&F implementation of SeparatorUI.
WindowsSpinnerUI The JGoodies Windows L&F implementation of SpinnerUI.
WindowsSplitPaneUI The JGoodies Windows L&F implementation of SplitPaneUI.
WindowsTabbedPaneUI The JGoodies Windows L&F implementation of TabbedPaneUI.
WindowsTextAreaUI The JGoodies Windows L&F implementation of TextAreaUI.
WindowsTextFieldUI The JGoodies Windows L&F implementation of TextFieldUI.
WindowsToolBarSeparatorUI A Windows tool bar separator that honors the tool bar's border.
WindowsToolBarUI Corrects superclass behavior for rollover borders and adds behavior for handling different types of borders.
WindowsTreeUI The JGoodies Windows Look&Feel implementation of TreeUI.
WindowsXPMenuUI The JGoodies Windows XP look&feel implementation of MenuUI.
WindowsXPTableHeaderUI The JGoodies Windows L&F implementation of TableHeaderUI.
WindowsXPToolBarUI Adds behavior for handling different types of borders.
 

Package com.jgoodies.looks.windows Description

Contains the classes for the JGoodies Windows L&F.

Related Documentation

For more information see:

See Also:
com.jgoodies.looks, com.jgoodies.looks.common, com.jgoodies.looks.plastic, com.jgoodies.looks.plastic.theme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsOptionPaneUI.html0000644000175000017500000007402712003555446026710 0ustar tonytony WindowsOptionPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsOptionPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.OptionPaneUI
          extended by javax.swing.plaf.basic.BasicOptionPaneUI
              extended by com.jgoodies.looks.windows.WindowsOptionPaneUI

public final class WindowsOptionPaneUI
extends BasicOptionPaneUI

The JGoodies Windows Look&Feel implementation of OptionPaneUI. Honors the screen resolution and uses a minimum button with that complies better with the Windows UI style guide.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicOptionPaneUI
BasicOptionPaneUI.ButtonActionListener, BasicOptionPaneUI.ButtonAreaLayout, BasicOptionPaneUI.PropertyChangeHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicOptionPaneUI
hasCustomComponents, initialFocusComponent, inputComponent, MinimumHeight, minimumSize, MinimumWidth, optionPane, propertyChangeListener
 
Constructor Summary
WindowsOptionPaneUI()
           
 
Method Summary
protected  Container createButtonArea()
          Creates and returns a Container containin the buttons.
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicOptionPaneUI
addButtonComponents, addIcon, addMessageComponents, burstStringInto, containsCustomComponents, createButtonActionListener, createLayoutManager, createMessageArea, createPropertyChangeListener, createSeparator, getButtons, getIcon, getIconForType, getInitialValueIndex, getMaxCharactersPerLineCount, getMessage, getMinimumOptionPaneSize, getPreferredSize, getSizeButtonsToSameWidth, installComponents, installDefaults, installKeyboardActions, installListeners, installUI, resetInputValue, selectInitialValue, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsOptionPaneUI

public WindowsOptionPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createButtonArea

protected Container createButtonArea()
Creates and returns a Container containin the buttons. The buttons are created by calling getButtons.

Overrides:
createButtonArea in class BasicOptionPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsXPToolBarUI.html0000644000175000017500000011752112003555446026443 0ustar tonytony WindowsXPToolBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsXPToolBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ToolBarUI
          extended by javax.swing.plaf.basic.BasicToolBarUI
              extended by com.sun.java.swing.plaf.windows.WindowsToolBarUI
                  extended by com.jgoodies.looks.windows.WindowsXPToolBarUI
All Implemented Interfaces:
SwingConstants

public final class WindowsXPToolBarUI
extends com.sun.java.swing.plaf.windows.WindowsToolBarUI

Adds behavior for handling different types of borders.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicToolBarUI
BasicToolBarUI.DockingListener, BasicToolBarUI.DragWindow, BasicToolBarUI.FrameListener, BasicToolBarUI.PropertyListener, BasicToolBarUI.ToolBarContListener, BasicToolBarUI.ToolBarFocusListener
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicToolBarUI
constraintBeforeFloating, dockingBorderColor, dockingColor, dockingListener, downKey, dragWindow, floatingBorderColor, floatingColor, focusedCompIndex, leftKey, propertyListener, rightKey, toolBar, toolBarContListener, toolBarFocusListener, upKey
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
WindowsXPToolBarUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults()
           
protected  void installListeners()
           
protected  void setBorderToRollover(Component c)
           
protected  void uninstallListeners()
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsToolBarUI
createNonRolloverBorder, createRolloverBorder, getRolloverBorder, paint
 
Methods inherited from class javax.swing.plaf.basic.BasicToolBarUI
canDock, createDockingListener, createDragWindow, createFloatingFrame, createFloatingWindow, createFrameListener, createPropertyListener, createToolBarContListener, createToolBarFocusListener, dragTo, floatAt, getDockingColor, getFloatingColor, getNonRolloverBorder, installComponents, installKeyboardActions, installNonRolloverBorders, installNormalBorders, installRolloverBorders, installUI, isFloating, isRolloverBorders, navigateFocusedComp, paintDragWindow, setBorderToNonRollover, setBorderToNormal, setDockingColor, setFloating, setFloatingColor, setFloatingLocation, setOrientation, setRolloverBorders, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsXPToolBarUI

public WindowsXPToolBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class com.sun.java.swing.plaf.windows.WindowsToolBarUI

installListeners

protected void installListeners()
Overrides:
installListeners in class BasicToolBarUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class BasicToolBarUI

setBorderToRollover

protected void setBorderToRollover(Component c)
Overrides:
setBorderToRollover in class BasicToolBarUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsMenuBarUI.html0000644000175000017500000005551112003555446026162 0ustar tonytony WindowsMenuBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsMenuBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.MenuBarUI
          extended by javax.swing.plaf.basic.BasicMenuBarUI
              extended by com.sun.java.swing.plaf.windows.WindowsMenuBarUI
                  extended by com.jgoodies.looks.windows.WindowsMenuBarUI

public final class WindowsMenuBarUI
extends com.sun.java.swing.plaf.windows.WindowsMenuBarUI

The JGoodies Windows look and feel implemenation of MenuBarUI.

Can handle optional Border types as specified by the BorderStyle or HeaderStyle client properties.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuBarUI
changeListener, containerListener, menuBar
 
Constructor Summary
WindowsMenuBarUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults()
           
protected  void installListeners()
           
protected  void uninstallListeners()
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsMenuBarUI
installKeyboardActions, paint
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuBarUI
createChangeListener, createContainerListener, getMaximumSize, getMinimumSize, installUI, uninstallDefaults, uninstallKeyboardActions, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsMenuBarUI

public WindowsMenuBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class BasicMenuBarUI

installListeners

protected void installListeners()
Overrides:
installListeners in class com.sun.java.swing.plaf.windows.WindowsMenuBarUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class com.sun.java.swing.plaf.windows.WindowsMenuBarUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsPopupMenuUI.html0000644000175000017500000005626712003555446026572 0ustar tonytony WindowsPopupMenuUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsPopupMenuUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.PopupMenuUI
          extended by javax.swing.plaf.basic.BasicPopupMenuUI
              extended by com.sun.java.swing.plaf.windows.WindowsPopupMenuUI
                  extended by com.jgoodies.looks.windows.WindowsPopupMenuUI

public final class WindowsPopupMenuUI
extends com.sun.java.swing.plaf.windows.WindowsPopupMenuUI

The JGoodies Windows look&feel implementation of PopMenuUI. It differs from the superclass in that it provides an option to get a narrow border. You can set a client property Options.NO_MARGIN_KEY to indicate that this popup menu has a border without margin. That is useful in the special case where the popup contains only a single component, for example a JScrollPane.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch
See Also:
Options.NO_MARGIN_KEY

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicPopupMenuUI
popupMenu
 
Constructor Summary
WindowsPopupMenuUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
 void installDefaults()
           
 void installListeners()
           
protected  void uninstallListeners()
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsPopupMenuUI
getPopup, paint
 
Methods inherited from class javax.swing.plaf.basic.BasicPopupMenuUI
installKeyboardActions, installUI, isPopupTrigger, uninstallDefaults, uninstallKeyboardActions, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsPopupMenuUI

public WindowsPopupMenuUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

public void installDefaults()
Overrides:
installDefaults in class BasicPopupMenuUI

installListeners

public void installListeners()
Overrides:
installListeners in class com.sun.java.swing.plaf.windows.WindowsPopupMenuUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class BasicPopupMenuUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsSplitPaneUI.html0000644000175000017500000011075612003555446026533 0ustar tonytony WindowsSplitPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsSplitPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SplitPaneUI
          extended by javax.swing.plaf.basic.BasicSplitPaneUI
              extended by com.sun.java.swing.plaf.windows.WindowsSplitPaneUI
                  extended by com.jgoodies.looks.windows.WindowsSplitPaneUI

public final class WindowsSplitPaneUI
extends com.sun.java.swing.plaf.windows.WindowsSplitPaneUI

The JGoodies Windows L&F implementation of SplitPaneUI. Uses a special divider that paints modified one-touch buttons.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
WindowsSplitPaneDivider

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicSplitPaneUI
BasicSplitPaneUI.BasicHorizontalLayoutManager, BasicSplitPaneUI.BasicVerticalLayoutManager, BasicSplitPaneUI.FocusHandler, BasicSplitPaneUI.KeyboardDownRightHandler, BasicSplitPaneUI.KeyboardEndHandler, BasicSplitPaneUI.KeyboardHomeHandler, BasicSplitPaneUI.KeyboardResizeToggleHandler, BasicSplitPaneUI.KeyboardUpLeftHandler, BasicSplitPaneUI.PropertyHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSplitPaneUI
beginDragDividerLocation, divider, dividerResizeToggleKey, dividerSize, downKey, draggingHW, endKey, focusListener, homeKey, KEYBOARD_DIVIDER_MOVE_OFFSET, keyboardDownRightListener, keyboardEndListener, keyboardHomeListener, keyboardResizeToggleListener, keyboardUpLeftListener, layoutManager, leftKey, NON_CONTINUOUS_DIVIDER, nonContinuousLayoutDivider, propertyChangeListener, rightKey, splitPane, upKey
 
Constructor Summary
WindowsSplitPaneUI()
           
 
Method Summary
 BasicSplitPaneDivider createDefaultDivider()
          Creates and returns the modified default divider.
static ComponentUI createUI(JComponent x)
          Creates and returns a WindowsSplitPaneUI instance.
 
Methods inherited from class javax.swing.plaf.basic.BasicSplitPaneUI
createDefaultNonContinuousLayoutDivider, createFocusListener, createKeyboardDownRightListener, createKeyboardEndListener, createKeyboardHomeListener, createKeyboardResizeToggleListener, createKeyboardUpLeftListener, createPropertyChangeListener, dragDividerTo, finishDraggingTo, finishedPaintingChildren, getDivider, getDividerBorderSize, getDividerLocation, getInsets, getLastDragLocation, getMaximumDividerLocation, getMaximumSize, getMinimumDividerLocation, getMinimumSize, getNonContinuousLayoutDivider, getOrientation, getPreferredSize, getSplitPane, installDefaults, installKeyboardActions, installListeners, installUI, isContinuousLayout, paint, resetLayoutManager, resetToPreferredSizes, setContinuousLayout, setDividerLocation, setLastDragLocation, setNonContinuousLayoutDivider, setNonContinuousLayoutDivider, setOrientation, startDragging, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsSplitPaneUI

public WindowsSplitPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent x)
Creates and returns a WindowsSplitPaneUI instance.


createDefaultDivider

public BasicSplitPaneDivider createDefaultDivider()
Creates and returns the modified default divider.

Overrides:
createDefaultDivider in class com.sun.java.swing.plaf.windows.WindowsSplitPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsToolBarUI.html0000644000175000017500000013622112003555446026171 0ustar tonytony WindowsToolBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsToolBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ToolBarUI
          extended by javax.swing.plaf.basic.BasicToolBarUI
              extended by javax.swing.plaf.metal.MetalToolBarUI
                  extended by com.jgoodies.looks.windows.WindowsToolBarUI
All Implemented Interfaces:
SwingConstants

public final class WindowsToolBarUI
extends MetalToolBarUI

Corrects superclass behavior for rollover borders and adds behavior for handling different types of borders.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.metal.MetalToolBarUI
MetalToolBarUI.MetalContainerListener, MetalToolBarUI.MetalDockingListener, MetalToolBarUI.MetalRolloverListener
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicToolBarUI
BasicToolBarUI.DockingListener, BasicToolBarUI.DragWindow, BasicToolBarUI.FrameListener, BasicToolBarUI.PropertyListener, BasicToolBarUI.ToolBarContListener, BasicToolBarUI.ToolBarFocusListener
 
Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalToolBarUI
contListener, rolloverListener
 
Fields inherited from class javax.swing.plaf.basic.BasicToolBarUI
constraintBeforeFloating, dockingBorderColor, dockingColor, dockingListener, downKey, dragWindow, floatingBorderColor, floatingColor, focusedCompIndex, leftKey, propertyListener, rightKey, toolBar, toolBarContListener, toolBarFocusListener, upKey
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
WindowsToolBarUI()
           
 
Method Summary
protected  MouseInputListener createDockingListener()
          Unlike the superclass MetalToolBarUI, this class uses the docking listener from the BasicToolBarUI.
protected  Border createRolloverBorder()
           
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults()
           
protected  void installListeners()
           
protected  void setBorderToRollover(Component c)
           
protected  void uninstallListeners()
           
 
Methods inherited from class javax.swing.plaf.metal.MetalToolBarUI
createContainerListener, createNonRolloverBorder, createRolloverListener, installUI, setBorderToNonRollover, setDragOffset, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.basic.BasicToolBarUI
canDock, createDragWindow, createFloatingFrame, createFloatingWindow, createFrameListener, createPropertyListener, createToolBarContListener, createToolBarFocusListener, dragTo, floatAt, getDockingColor, getFloatingColor, getNonRolloverBorder, getRolloverBorder, installComponents, installKeyboardActions, installNonRolloverBorders, installNormalBorders, installRolloverBorders, isFloating, isRolloverBorders, navigateFocusedComp, paintDragWindow, setBorderToNormal, setDockingColor, setFloating, setFloatingColor, setFloatingLocation, setOrientation, setRolloverBorders, uninstallComponents, uninstallDefaults, uninstallKeyboardActions
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, paint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsToolBarUI

public WindowsToolBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class BasicToolBarUI

installListeners

protected void installListeners()
Overrides:
installListeners in class MetalToolBarUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class MetalToolBarUI

createDockingListener

protected MouseInputListener createDockingListener()
Unlike the superclass MetalToolBarUI, this class uses the docking listener from the BasicToolBarUI.

Overrides:
createDockingListener in class MetalToolBarUI

createRolloverBorder

protected Border createRolloverBorder()
Overrides:
createRolloverBorder in class MetalToolBarUI

setBorderToRollover

protected void setBorderToRollover(Component c)
Overrides:
setBorderToRollover in class BasicToolBarUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsTabbedPaneUI.html0000644000175000017500000022376612003555446026627 0ustar tonytony WindowsTabbedPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsTabbedPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TabbedPaneUI
          extended by javax.swing.plaf.basic.BasicTabbedPaneUI
              extended by com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI
                  extended by com.jgoodies.looks.windows.WindowsTabbedPaneUI
All Implemented Interfaces:
SwingConstants

public final class WindowsTabbedPaneUI
extends com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI

The JGoodies Windows L&F implementation of TabbedPaneUI.

The flat appearance is work in progress; currently it works only for a single line of tabs and paints distored tabs for multiple lines.

Version:
$Revision: 1.11 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
BasicTabbedPaneUI.FocusHandler, BasicTabbedPaneUI.MouseHandler, BasicTabbedPaneUI.PropertyChangeHandler, BasicTabbedPaneUI.TabbedPaneLayout, BasicTabbedPaneUI.TabSelectionHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
calcRect, contentBorderInsets, darkShadow, downKey, focus, focusListener, highlight, leftKey, lightHighlight, maxTabHeight, maxTabWidth, mouseListener, propertyChangeListener, rects, rightKey, runCount, selectedRun, selectedTabPadInsets, shadow, tabAreaInsets, tabChangeListener, tabInsets, tabPane, tabRunOverlay, tabRuns, textIconGap, upKey
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
WindowsTabbedPaneUI()
           
 
Method Summary
protected  PropertyChangeListener createPropertyChangeListener()
          Creates and answer a handler that listens to property changes.
static ComponentUI createUI(JComponent x)
          Creates and answers the WindowsTabbedPaneUI.
protected  Insets getContentBorderInsets(int tabPlacement)
           
protected  Icon getIconForTab(int tabIndex)
          Answers the icon for the tab with the specified index.
protected  Insets getSelectedTabPadInsets(int tabPlacement)
           
protected  Insets getTabAreaInsets(int tabPlacement)
           
protected  int getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)
           
protected  int getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)
           
 void installUI(JComponent c)
          Installs the UI.
protected  void layoutLabel(int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected)
          Copied here from super(super)class to avoid labels being centered on vertical tab runs if they consist of icon and text.
protected  void paintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the bottom edge of the pane's content border.
protected  void paintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the left Edge of the pane's content border.
protected  void paintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the right Edge of the pane's content border.
protected  void paintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h)
          Paints the top edge of the pane's content border.
protected  void paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rectangles, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
           
protected  void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
          Paints the border for a single tab; it does not paint the tab's background.
protected  boolean shouldRotateTabRuns(int tabPlacement)
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI
installDefaults, paintContentBorder, paintTabBackground, setRolloverTab, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
assureRectsCreated, calculateMaxTabHeight, calculateMaxTabWidth, calculateTabAreaHeight, calculateTabAreaWidth, calculateTabHeight, calculateTabWidth, createChangeListener, createFocusListener, createLayoutManager, createMouseListener, createScrollButton, expandTabRunsArray, getBaseline, getBaseline, getBaselineOffset, getBaselineResizeBehavior, getFocusIndex, getFontMetrics, getMaximumSize, getMinimumSize, getNextTabIndex, getNextTabIndexInRun, getNextTabRun, getPreviousTabIndex, getPreviousTabIndexInRun, getPreviousTabRun, getRolloverTab, getRunForTab, getTabBounds, getTabBounds, getTabInsets, getTabRunCount, getTabRunIndent, getTabRunOffset, getTabRunOverlay, getTextViewForTab, getVisibleComponent, installComponents, installKeyboardActions, installListeners, lastTabInRun, navigateSelectedTab, paint, paintIcon, paintTab, paintTabArea, paintText, rotateInsets, selectAdjacentRunTab, selectNextTab, selectNextTabInRun, selectPreviousTab, selectPreviousTabInRun, setVisibleComponent, shouldPadTabRun, tabForCoordinate, uninstallComponents, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsTabbedPaneUI

public WindowsTabbedPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent x)
Creates and answers the WindowsTabbedPaneUI.

See Also:
ComponentUI.createUI(JComponent)

installUI

public void installUI(JComponent c)
Installs the UI.

Overrides:
installUI in class BasicTabbedPaneUI
See Also:
ComponentUI.installUI(JComponent)

createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
Creates and answer a handler that listens to property changes. Unlike the superclass BasicTabbedPane, the PlasticTabbedPaneUI uses an extended Handler.

Overrides:
createPropertyChangeListener in class BasicTabbedPaneUI

getIconForTab

protected Icon getIconForTab(int tabIndex)
Answers the icon for the tab with the specified index. In case, we have globally switched of the use tab icons, we answer null if and only if we have a title.

Overrides:
getIconForTab in class BasicTabbedPaneUI

getContentBorderInsets

protected Insets getContentBorderInsets(int tabPlacement)
Overrides:
getContentBorderInsets in class BasicTabbedPaneUI

getTabLabelShiftX

protected int getTabLabelShiftX(int tabPlacement,
                                int tabIndex,
                                boolean isSelected)
Overrides:
getTabLabelShiftX in class BasicTabbedPaneUI

getTabLabelShiftY

protected int getTabLabelShiftY(int tabPlacement,
                                int tabIndex,
                                boolean isSelected)
Overrides:
getTabLabelShiftY in class BasicTabbedPaneUI

getSelectedTabPadInsets

protected Insets getSelectedTabPadInsets(int tabPlacement)
Overrides:
getSelectedTabPadInsets in class BasicTabbedPaneUI

getTabAreaInsets

protected Insets getTabAreaInsets(int tabPlacement)
Overrides:
getTabAreaInsets in class BasicTabbedPaneUI

paintContentBorderTopEdge

protected void paintContentBorderTopEdge(Graphics g,
                                         int tabPlacement,
                                         int selectedIndex,
                                         int x,
                                         int y,
                                         int w,
                                         int h)
Paints the top edge of the pane's content border.

Overrides:
paintContentBorderTopEdge in class BasicTabbedPaneUI

paintContentBorderBottomEdge

protected void paintContentBorderBottomEdge(Graphics g,
                                            int tabPlacement,
                                            int selectedIndex,
                                            int x,
                                            int y,
                                            int w,
                                            int h)
Paints the bottom edge of the pane's content border.

Overrides:
paintContentBorderBottomEdge in class BasicTabbedPaneUI

paintContentBorderLeftEdge

protected void paintContentBorderLeftEdge(Graphics g,
                                          int tabPlacement,
                                          int selectedIndex,
                                          int x,
                                          int y,
                                          int w,
                                          int h)
Paints the left Edge of the pane's content border.

Overrides:
paintContentBorderLeftEdge in class BasicTabbedPaneUI

paintContentBorderRightEdge

protected void paintContentBorderRightEdge(Graphics g,
                                           int tabPlacement,
                                           int selectedIndex,
                                           int x,
                                           int y,
                                           int w,
                                           int h)
Paints the right Edge of the pane's content border.

Overrides:
paintContentBorderRightEdge in class BasicTabbedPaneUI

paintTabBorder

protected void paintTabBorder(Graphics g,
                              int tabPlacement,
                              int tabIndex,
                              int x,
                              int y,
                              int w,
                              int h,
                              boolean isSelected)
Paints the border for a single tab; it does not paint the tab's background.

Overrides:
paintTabBorder in class com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI

paintFocusIndicator

protected void paintFocusIndicator(Graphics g,
                                   int tabPlacement,
                                   Rectangle[] rectangles,
                                   int tabIndex,
                                   Rectangle iconRect,
                                   Rectangle textRect,
                                   boolean isSelected)
Overrides:
paintFocusIndicator in class BasicTabbedPaneUI

shouldRotateTabRuns

protected boolean shouldRotateTabRuns(int tabPlacement)
Overrides:
shouldRotateTabRuns in class BasicTabbedPaneUI

layoutLabel

protected void layoutLabel(int tabPlacement,
                           FontMetrics metrics,
                           int tabIndex,
                           String title,
                           Icon icon,
                           Rectangle tabRect,
                           Rectangle iconRect,
                           Rectangle textRect,
                           boolean isSelected)
Copied here from super(super)class to avoid labels being centered on vertical tab runs if they consist of icon and text.

Overrides:
layoutLabel in class BasicTabbedPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsLookAndFeel.html0000644000175000017500000011526112003555446026515 0ustar tonytony WindowsLookAndFeel (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsLookAndFeel

java.lang.Object
  extended by javax.swing.LookAndFeel
      extended by javax.swing.plaf.basic.BasicLookAndFeel
          extended by com.sun.java.swing.plaf.windows.WindowsLookAndFeel
              extended by com.jgoodies.looks.windows.WindowsLookAndFeel
All Implemented Interfaces:
Serializable

public class WindowsLookAndFeel
extends com.sun.java.swing.plaf.windows.WindowsLookAndFeel

The main class of the JGoodies Windows Look&Feel. This look provides several corrections and extensions to Sun's Windows L&F. In addition it tries to provide a unified look for the J2SE 1.4.0x, 1.4.1x, 1.4.2, and 1.5 environments.

Version:
$Revision: 1.48 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Field Summary
static String BORDER_STYLE_KEY
          An optional client property key for JMenu and JToolBar to set a border style - shadows the header style.
 
Constructor Summary
WindowsLookAndFeel()
           
 
Method Summary
static Border getButtonBorder()
           
static Icon getCheckBoxIcon()
           
 String getDescription()
           
 Icon getDisabledIcon(JComponent component, Icon icon)
          Returns an icon with a disabled appearance.
static FontPolicy getFontPolicy()
          Looks up and retrieves the FontPolicy used by the JGoodies Windows Look&Feel.
static MicroLayoutPolicy getMicroLayoutPolicy()
          Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Windows Look&Feel.
 String getName()
          Returns the String "JGoodies Windows".
static Icon getRadioButtonIcon()
           
protected  void initClassDefaults(UIDefaults table)
          Initializes the class defaults, that is, overrides some UI delegates with JGoodies Windows implementations.
protected  void initComponentDefaults(UIDefaults table)
          Initializes the component defaults.
 void initialize()
          Invoked during UIManager#setLookAndFeel.
static void setFontPolicy(FontPolicy fontPolicy)
          Sets the FontPolicy to be used with the JGoodies Windows L&F.
static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
          Sets the MicroLayoutPolicy to be used with the JGoodies Windows L&F.
 void uninitialize()
          Invoked during UIManager#setLookAndFeel.
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsLookAndFeel
createAudioAction, getID, getLayoutStyle, initSystemColorDefaults, isClassicWindows, isMnemonicHidden, isNativeLookAndFeel, isSupportedLookAndFeel, provideErrorFeedback, setMnemonicHidden
 
Methods inherited from class javax.swing.plaf.basic.BasicLookAndFeel
getAudioActionMap, getDefaults, loadSystemColors, playSound
 
Methods inherited from class javax.swing.LookAndFeel
getDesktopPropertyValue, getDisabledSelectedIcon, getSupportsWindowDecorations, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, toString, uninstallBorder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BORDER_STYLE_KEY

public static final String BORDER_STYLE_KEY
An optional client property key for JMenu and JToolBar to set a border style - shadows the header style.

See Also:
Constant Field Values
Constructor Detail

WindowsLookAndFeel

public WindowsLookAndFeel()
Method Detail

getName

public String getName()
Returns the String "JGoodies Windows". Note that this L&f's ID ("Windows") is inherited from the superclass, because we don't do any fundamental changes.

Overrides:
getName in class com.sun.java.swing.plaf.windows.WindowsLookAndFeel
See Also:
LookAndFeel.getID()

getDescription

public String getDescription()
Overrides:
getDescription in class com.sun.java.swing.plaf.windows.WindowsLookAndFeel

getFontPolicy

public static FontPolicy getFontPolicy()
Looks up and retrieves the FontPolicy used by the JGoodies Windows Look&Feel. If a FontPolicy has been set for this look, it'll be returned. Otherwise, this method checks if a FontPolicy or FontSet is defined in the system properties or UIDefaults. If so, it is returned. If no FontPolicy has been set for this look, in the system properties or UIDefaults, the default Windows font policy will be returned.

Returns:
the FontPolicy set for this Look&feel - if any, the FontPolicy specified in the system properties or UIDefaults - if any, or the default Windows font policy.
See Also:
setFontPolicy(com.jgoodies.looks.FontPolicy), Options.WINDOWS_FONT_POLICY_KEY, FontPolicies, FontPolicies.customSettingsPolicy(FontPolicy), FontPolicies.getDefaultWindowsPolicy()

setFontPolicy

public static void setFontPolicy(FontPolicy fontPolicy)
Sets the FontPolicy to be used with the JGoodies Windows L&F. If the specified policy is null, the default will be reset.

Parameters:
fontPolicy - the FontPolicy to be used with the JGoodies Windows L&F, or null to reset to the default
See Also:
getFontPolicy(), Options.WINDOWS_FONT_POLICY_KEY

getMicroLayoutPolicy

public static MicroLayoutPolicy getMicroLayoutPolicy()
Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Windows Look&Feel. If a MicroLayoutPolicy has been set for this look, it'll be returned. Otherwise, the default Windows micro layout policy will be returned.

Returns:
the MicroLayoutPolicy set for this Look&feel - if any, or the default Windows MicroLayoutPolicy.
See Also:
setMicroLayoutPolicy(com.jgoodies.looks.MicroLayout), Options.WINDOWS_MICRO_LAYOUT_POLICY_KEY, MicroLayoutPolicies, MicroLayoutPolicies.getDefaultWindowsPolicy()

setMicroLayoutPolicy

public static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
Sets the MicroLayoutPolicy to be used with the JGoodies Windows L&F. If the specified policy is null, the default will be reset.

Parameters:
microLayoutPolicy - the MicroLayoutPolicy to be used with the JGoodies Windows L&F, or null to reset to the default
See Also:
getMicroLayoutPolicy(), Options.WINDOWS_MICRO_LAYOUT_POLICY_KEY

initialize

public void initialize()
Invoked during UIManager#setLookAndFeel. In addition to the superclass behavior, we install the ShadowPopupFactory.

Overrides:
initialize in class com.sun.java.swing.plaf.windows.WindowsLookAndFeel
See Also:
uninitialize()

uninitialize

public void uninitialize()
Invoked during UIManager#setLookAndFeel. In addition to the superclass behavior, we uninstall the ShadowPopupFactory.

Overrides:
uninitialize in class com.sun.java.swing.plaf.windows.WindowsLookAndFeel
See Also:
initialize()

getDisabledIcon

public Icon getDisabledIcon(JComponent component,
                            Icon icon)
Returns an icon with a disabled appearance. This method is used to generate a disabled icon when one has not been specified.

This method will be used only on JDK 5.0 and later.

Overrides:
getDisabledIcon in class com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Parameters:
component - the component that will display the icon, may be null.
icon - the icon to generate disabled icon from.
Returns:
disabled icon, or null if a suitable icon can not be generated.

initClassDefaults

protected void initClassDefaults(UIDefaults table)
Initializes the class defaults, that is, overrides some UI delegates with JGoodies Windows implementations.

Overrides:
initClassDefaults in class com.sun.java.swing.plaf.windows.WindowsLookAndFeel

initComponentDefaults

protected void initComponentDefaults(UIDefaults table)
Initializes the component defaults.

Overrides:
initComponentDefaults in class com.sun.java.swing.plaf.windows.WindowsLookAndFeel

getButtonBorder

public static Border getButtonBorder()

getCheckBoxIcon

public static Icon getCheckBoxIcon()

getRadioButtonIcon

public static Icon getRadioButtonIcon()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsTextFieldUI.html0000644000175000017500000007367412003555446026533 0ustar tonytony WindowsTextFieldUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsTextFieldUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextFieldUI
                  extended by com.sun.java.swing.plaf.windows.WindowsTextFieldUI
                      extended by com.jgoodies.looks.windows.WindowsTextFieldUI
All Implemented Interfaces:
ViewFactory

public final class WindowsTextFieldUI
extends com.sun.java.swing.plaf.windows.WindowsTextFieldUI

The JGoodies Windows L&F implementation of TextFieldUI. In addition to its superclass WindowsTextFieldUI, it uses a caret that selects all text if the field gains focus after a keyboard focus traversal.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
WindowsTextFieldUI()
           
 
Method Summary
protected  Caret createCaret()
          Creates the caret for a field.
static ComponentUI createUI(JComponent c)
          Creates a UI for a JTextField.
 Dimension getPreferredSize(JComponent c)
          The WindowsFieldCaret requires an extra pixel width.
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsTextFieldUI
paintBackground
 
Methods inherited from class javax.swing.plaf.basic.BasicTextFieldUI
create, getBaseline, getBaselineResizeBehavior, getPropertyPrefix
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getMinimumSize, getNextVisualPositionFrom, getRootView, getToolTipText, getVisibleEditorRect, installDefaults, installKeyboardActions, installListeners, installUI, modelChanged, modelToView, modelToView, paint, paintSafely, propertyChange, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsTextFieldUI

public WindowsTextFieldUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JTextField.

Parameters:
c - the text field
Returns:
the UI

createCaret

protected Caret createCaret()
Creates the caret for a field.

Overrides:
createCaret in class com.sun.java.swing.plaf.windows.WindowsTextFieldUI
Returns:
the caret

getPreferredSize

public Dimension getPreferredSize(JComponent c)
The WindowsFieldCaret requires an extra pixel width.

Overrides:
getPreferredSize in class BasicTextUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsMenuItemUI.html0000644000175000017500000010061712003555446026352 0ustar tonytony WindowsMenuItemUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsMenuItemUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
                  extended by com.jgoodies.looks.common.ExtBasicMenuItemUI
                      extended by com.jgoodies.looks.windows.WindowsMenuItemUI

public final class WindowsMenuItemUI
extends ExtBasicMenuItemUI

The JGoodies Windows look&feel implementation of MenuItemUI.

It differs from the superclass in that it uses a Windows specific menu item renderer that checks if mnemonics shall be shown or hidden and may paint disabled text with a shadow.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicMenuItemUI
BasicMenuItemUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI
acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground
 
Constructor Summary
WindowsMenuItemUI()
           
 
Method Summary
protected  MenuItemRenderer createRenderer(JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground)
           
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class com.jgoodies.looks.common.ExtBasicMenuItemUI
getPreferredMenuItemSize, iconBorderEnabled, installDefaults, paintMenuItem, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI
createMenuDragMouseListener, createMenuKeyListener, createMouseInputListener, createPropertyChangeListener, doClick, getMaximumSize, getMinimumSize, getPath, getPreferredSize, getPropertyPrefix, installComponents, installKeyboardActions, installListeners, installUI, paint, paintBackground, paintText, uninstallComponents, uninstallKeyboardActions, uninstallListeners, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsMenuItemUI

public WindowsMenuItemUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createRenderer

protected MenuItemRenderer createRenderer(JMenuItem menuItem,
                                          boolean iconBorderEnabled,
                                          Font acceleratorFont,
                                          Color selectionForeground,
                                          Color disabledForeground,
                                          Color acceleratorForeground,
                                          Color acceleratorSelectionForeground)
Overrides:
createRenderer in class ExtBasicMenuItemUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsXPMenuUI.html0000644000175000017500000011632712003555446026010 0ustar tonytony WindowsXPMenuUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsXPMenuUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
                  extended by javax.swing.plaf.basic.BasicMenuUI
                      extended by com.sun.java.swing.plaf.windows.WindowsMenuUI
                          extended by com.jgoodies.looks.windows.WindowsXPMenuUI

public final class WindowsXPMenuUI
extends com.sun.java.swing.plaf.windows.WindowsMenuUI

The JGoodies Windows XP look&feel implementation of MenuUI.

It differs from the superclass in that it uses an overhauled menu rendering an aligmnent system. Furthermore, you can set a client property Options.NO_ICONS_KEY to indicate that this menu has no icons.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
Options

Nested Class Summary
 
Nested classes/interfaces inherited from class com.sun.java.swing.plaf.windows.WindowsMenuUI
com.sun.java.swing.plaf.windows.WindowsMenuUI.WindowsMouseInputHandler
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicMenuUI
BasicMenuUI.ChangeHandler, BasicMenuUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class com.sun.java.swing.plaf.windows.WindowsMenuUI
hotTrackingOn, menuBarHeight
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuUI
changeListener, menuListener
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI
acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground
 
Constructor Summary
WindowsXPMenuUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  Dimension getPreferredMenuItemSize(JComponent c, Icon aCheckIcon, Icon anArrowIcon, int textIconGap)
           
protected  String getPropertyPrefix()
           
protected  void installDefaults()
           
protected  void paintMenuItem(Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap)
           
protected  void uninstallDefaults()
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsMenuUI
createMouseInputListener, paintBackground, paintText
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuUI
createChangeListener, createMenuDragMouseListener, createMenuKeyListener, createMenuListener, createPropertyChangeListener, getMaximumSize, installKeyboardActions, installListeners, setupPostTimer, uninstallKeyboardActions, uninstallListeners
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI
doClick, getMinimumSize, getPath, getPreferredSize, installComponents, installUI, paint, uninstallComponents, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsXPMenuUI

public WindowsXPMenuUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class com.sun.java.swing.plaf.windows.WindowsMenuUI

uninstallDefaults

protected void uninstallDefaults()
Overrides:
uninstallDefaults in class BasicMenuUI

getPropertyPrefix

protected String getPropertyPrefix()
Overrides:
getPropertyPrefix in class BasicMenuUI

getPreferredMenuItemSize

protected Dimension getPreferredMenuItemSize(JComponent c,
                                             Icon aCheckIcon,
                                             Icon anArrowIcon,
                                             int textIconGap)
Overrides:
getPreferredMenuItemSize in class com.sun.java.swing.plaf.windows.WindowsMenuUI

paintMenuItem

protected void paintMenuItem(Graphics g,
                             JComponent c,
                             Icon aCheckIcon,
                             Icon anArrowIcon,
                             Color background,
                             Color foreground,
                             int textIconGap)
Overrides:
paintMenuItem in class BasicMenuItemUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsTreeUI.html0000644000175000017500000017501112003555446025526 0ustar tonytony WindowsTreeUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsTreeUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TreeUI
          extended by javax.swing.plaf.basic.BasicTreeUI
              extended by com.sun.java.swing.plaf.windows.WindowsTreeUI
                  extended by com.jgoodies.looks.windows.WindowsTreeUI

public final class WindowsTreeUI
extends com.sun.java.swing.plaf.windows.WindowsTreeUI

The JGoodies Windows Look&Feel implementation of TreeUI. Corrects the position of the tree button icon and provides two line styles: angled dashed lines, or no lines at all. By default, lines are drawn.

You can change the line style by setting a client property. The property key and values are a subset of the values used by the Metal L&F tree. To hide lines use one of the following:

 JTree tree1 = new JTree();
 tree1.putClientProperty("JTree.lineStyle", "None");

 JTree tree2 = new JTree();
 tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
                         Options.TREE_LINE_STYLE_NONE_VALUE);
 
Although lines are shown by default, you could code:
 JTree tree1 = new JTree();
 tree1.putClientProperty("JTree.lineStyle", "Angled");

 JTree tree2 = new JTree();
 tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
                         Options.TREE_LINE_STYLE_ANGLED_VALUE);
 

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class com.sun.java.swing.plaf.windows.WindowsTreeUI
com.sun.java.swing.plaf.windows.WindowsTreeUI.CollapsedIcon, com.sun.java.swing.plaf.windows.WindowsTreeUI.ExpandedIcon, com.sun.java.swing.plaf.windows.WindowsTreeUI.WindowsTreeCellRenderer
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTreeUI
BasicTreeUI.CellEditorHandler, BasicTreeUI.ComponentHandler, BasicTreeUI.FocusHandler, BasicTreeUI.KeyHandler, BasicTreeUI.MouseHandler, BasicTreeUI.MouseInputHandler, BasicTreeUI.NodeDimensionsHandler, BasicTreeUI.PropertyChangeHandler, BasicTreeUI.SelectionModelPropertyChangeHandler, BasicTreeUI.TreeCancelEditingAction, BasicTreeUI.TreeExpansionHandler, BasicTreeUI.TreeHomeAction, BasicTreeUI.TreeIncrementAction, BasicTreeUI.TreeModelHandler, BasicTreeUI.TreePageAction, BasicTreeUI.TreeSelectionHandler, BasicTreeUI.TreeToggleAction, BasicTreeUI.TreeTraverseAction
 
Field Summary
 
Fields inherited from class com.sun.java.swing.plaf.windows.WindowsTreeUI
HALF_SIZE, SIZE
 
Fields inherited from class javax.swing.plaf.basic.BasicTreeUI
cellEditor, collapsedIcon, createdCellEditor, createdRenderer, currentCellRenderer, depthOffset, drawingCache, editingComponent, editingPath, editingRow, editorHasDifferentSize, expandedIcon, largeModel, lastSelectedRow, leftChildIndent, nodeDimensions, preferredMinSize, preferredSize, rendererPane, rightChildIndent, stopEditingInCompleteEditing, totalChildIndent, tree, treeModel, treeSelectionModel, treeState, validCachedPreferredSize
 
Constructor Summary
WindowsTreeUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y)
           
 void installUI(JComponent c)
           
protected  void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right)
           
protected  void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom)
           
 void uninstallUI(JComponent c)
           
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsTreeUI
createDefaultCellRenderer, ensureRowsAreVisible
 
Methods inherited from class javax.swing.plaf.basic.BasicTreeUI
cancelEditing, checkForClickInExpandControl, completeEditing, completeEditing, completeUIInstall, completeUIUninstall, configureLayoutCache, createCellEditorListener, createCellRendererPane, createComponentListener, createDefaultCellEditor, createFocusListener, createKeyListener, createLayoutCache, createMouseListener, createNodeDimensions, createPropertyChangeListener, createSelectionModelPropertyChangeListener, createTreeExpansionListener, createTreeModelListener, createTreeSelectionListener, drawDashedHorizontalLine, drawDashedVerticalLine, getBaseline, getBaselineResizeBehavior, getCellEditor, getCellRenderer, getClosestPathForLocation, getCollapsedIcon, getEditingPath, getExpandedIcon, getHashColor, getHorizontalLegBuffer, getLastChildPath, getLeftChildIndent, getMaximumSize, getMinimumSize, getModel, getPathBounds, getPathForRow, getPreferredMinSize, getPreferredSize, getPreferredSize, getRightChildIndent, getRowCount, getRowForPath, getRowHeight, getRowX, getSelectionModel, getShowsRootHandles, getVerticalLegBuffer, handleExpandControlClick, installComponents, installDefaults, installKeyboardActions, installListeners, isEditable, isEditing, isLargeModel, isLeaf, isLocationInExpandControl, isMultiSelectEvent, isRootVisible, isToggleEvent, isToggleSelectionEvent, paint, paintExpandControl, paintHorizontalPartOfLeg, paintRow, paintVerticalPartOfLeg, pathWasCollapsed, pathWasExpanded, prepareForUIInstall, prepareForUIUninstall, selectPathForEvent, setCellEditor, setCellRenderer, setCollapsedIcon, setEditable, setExpandedIcon, setHashColor, setLargeModel, setLeftChildIndent, setModel, setPreferredMinSize, setRightChildIndent, setRootVisible, setRowHeight, setSelectionModel, setShowsRootHandles, shouldPaintExpandControl, startEditing, startEditingAtPath, stopEditing, toggleExpandState, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, updateCachedPreferredSize, updateCellEditor, updateDepthOffset, updateExpandedDescendants, updateLayoutCacheExpandedNodes, updateRenderer, updateSize
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsTreeUI

public WindowsTreeUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installUI

public void installUI(JComponent c)
Overrides:
installUI in class BasicTreeUI

uninstallUI

public void uninstallUI(JComponent c)
Overrides:
uninstallUI in class BasicTreeUI

paintVerticalLine

protected void paintVerticalLine(Graphics g,
                                 JComponent c,
                                 int x,
                                 int top,
                                 int bottom)
Overrides:
paintVerticalLine in class BasicTreeUI

paintHorizontalLine

protected void paintHorizontalLine(Graphics g,
                                   JComponent c,
                                   int y,
                                   int left,
                                   int right)
Overrides:
paintHorizontalLine in class BasicTreeUI

drawCentered

protected void drawCentered(Component c,
                            Graphics graphics,
                            Icon icon,
                            int x,
                            int y)
Overrides:
drawCentered in class BasicTreeUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsSpinnerUI.html0000644000175000017500000010166412003555446026250 0ustar tonytony WindowsSpinnerUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsSpinnerUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SpinnerUI
          extended by javax.swing.plaf.basic.BasicSpinnerUI
              extended by com.sun.java.swing.plaf.windows.WindowsSpinnerUI
                  extended by com.jgoodies.looks.windows.WindowsSpinnerUI

public final class WindowsSpinnerUI
extends com.sun.java.swing.plaf.windows.WindowsSpinnerUI

The JGoodies Windows L&F implementation of SpinnerUI. Configures the default editor to adjust font baselines and component bounds, by setting an empty border with the default text insets.

Version:
$Revision: 1.13 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSpinnerUI
spinner
 
Constructor Summary
WindowsSpinnerUI()
           
 
Method Summary
protected  JComponent createEditor()
          This method is called by installUI to get the editor component of the JSpinner.
protected  LayoutManager createLayout()
          Create a LayoutManager that manages the editor, nextButton, and previousButton children of the JSpinner.
protected  Component createNextButton()
          Create a component that will replace the spinner models value with the object returned by spinner.getNextValue.
protected  Component createPreviousButton()
          Create a component that will replace the spinner models value with the object returned by spinner.getPreviousValue.
static ComponentUI createUI(JComponent b)
           
protected  void replaceEditor(JComponent oldEditor, JComponent newEditor)
          Called by the PropertyChangeListener when the JSpinner editor property changes.
 
Methods inherited from class com.sun.java.swing.plaf.windows.WindowsSpinnerUI
paint
 
Methods inherited from class javax.swing.plaf.basic.BasicSpinnerUI
createPropertyChangeListener, getBaseline, getBaselineResizeBehavior, installDefaults, installKeyboardActions, installListeners, installNextButtonListeners, installPreviousButtonListeners, installUI, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsSpinnerUI

public WindowsSpinnerUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createPreviousButton

protected Component createPreviousButton()
Create a component that will replace the spinner models value with the object returned by spinner.getPreviousValue. By default the previousButton is a JButton who's ActionListener updates it's JSpinner ancestors model. If a previousButton isn't needed (in a subclass) then override this method to return null.

Overrides:
createPreviousButton in class com.sun.java.swing.plaf.windows.WindowsSpinnerUI
Returns:
a component that will replace the spinners model with the next value in the sequence, or null
See Also:
BasicSpinnerUI.installUI(javax.swing.JComponent), createNextButton()

createNextButton

protected Component createNextButton()
Create a component that will replace the spinner models value with the object returned by spinner.getNextValue. By default the nextButton is a JButton who's ActionListener updates it's JSpinner ancestors model. If a nextButton isn't needed (in a subclass) then override this method to return null.

Overrides:
createNextButton in class com.sun.java.swing.plaf.windows.WindowsSpinnerUI
Returns:
a component that will replace the spinners model with the next value in the sequence, or null
See Also:
BasicSpinnerUI.installUI(javax.swing.JComponent), createPreviousButton()

createEditor

protected JComponent createEditor()
This method is called by installUI to get the editor component of the JSpinner. By default it just returns JSpinner.getEditor(). Subclasses can override createEditor to return a component that contains the spinner's editor or null, if they're going to handle adding the editor to the JSpinner in an installUI override.

Typically this method would be overridden to wrap the editor with a container with a custom border, since one can't assume that the editors border can be set directly.

The replaceEditor method is called when the spinners editor is changed with JSpinner.setEditor. If you've overriden this method, then you'll probably want to override replaceEditor as well.

Overrides:
createEditor in class BasicSpinnerUI
Returns:
the JSpinners editor JComponent, spinner.getEditor() by default
See Also:
BasicSpinnerUI.installUI(javax.swing.JComponent), replaceEditor(javax.swing.JComponent, javax.swing.JComponent), JSpinner.getEditor()

createLayout

protected LayoutManager createLayout()
Create a LayoutManager that manages the editor, nextButton, and previousButton children of the JSpinner. These three children must be added with a constraint that identifies their role: "Editor", "Next", and "Previous". The default layout manager can handle the absence of any of these children.

Overrides:
createLayout in class BasicSpinnerUI
Returns:
a LayoutManager for the editor, next button, and previous button.
See Also:
createNextButton(), createPreviousButton(), createEditor()

replaceEditor

protected void replaceEditor(JComponent oldEditor,
                             JComponent newEditor)
Called by the PropertyChangeListener when the JSpinner editor property changes. It's the responsibility of this method to remove the old editor and add the new one. By default this operation is just:
  spinner.remove(oldEditor); spinner.add(newEditor, "Editor");
 
The implementation of replaceEditor should be coordinated with the createEditor method.

Overrides:
replaceEditor in class BasicSpinnerUI
See Also:
createEditor(), BasicSpinnerUI.createPropertyChangeListener()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/windows/WindowsToolBarSeparatorUI.html0000644000175000017500000005527212003555446030060 0ustar tonytony WindowsToolBarSeparatorUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.windows
Class WindowsToolBarSeparatorUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SeparatorUI
          extended by javax.swing.plaf.basic.BasicSeparatorUI
              extended by javax.swing.plaf.basic.BasicToolBarSeparatorUI
                  extended by com.jgoodies.looks.windows.WindowsToolBarSeparatorUI

public final class WindowsToolBarSeparatorUI
extends BasicToolBarSeparatorUI

A Windows tool bar separator that honors the tool bar's border. Used in in 1.4.0, 1.4.1 and 1.4.2 with XP turned off. In addition this class reuses a single UI instance.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSeparatorUI
highlight, shadow
 
Constructor Summary
WindowsToolBarSeparatorUI()
           
 
Method Summary
static ComponentUI createUI(JComponent c)
           
 void paint(Graphics g, JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicToolBarSeparatorUI
getPreferredSize, installDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicSeparatorUI
getMaximumSize, getMinimumSize, installListeners, installUI, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WindowsToolBarSeparatorUI

public WindowsToolBarSeparatorUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)

paint

public void paint(Graphics g,
                  JComponent c)
Overrides:
paint in class BasicToolBarSeparatorUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/package-tree.html0000644000175000017500000001774412003555446023664 0ustar tonytony com.jgoodies.looks Class Hierarchy (JGoodies Looks 2.5 API)

Hierarchy For Package com.jgoodies.looks

Package Hierarchies:
All Packages

Class Hierarchy

Interface Hierarchy



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/Options.html0000644000175000017500000027034412003555444022762 0ustar tonytony Options (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class Options

java.lang.Object
  extended by com.jgoodies.looks.Options

public final class Options
extends Object

Provides access to optional features of the JGoodies L&Fs via a key to the system properties, via a key for the UIDefaults table, via a method, or all of them.

API users can use this class' constants or their values to configure the JGoodies L&amP;f. Using the constants requires the Looks library classes in the class path of the using application/applet, where using the String values doesn't require having this class in the class path.

Version:
$Revision: 1.25 $
Author:
Karsten Lentzsch

Field Summary
static String COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY
          A JComboBox client property key for the combo's popup menu prototype display value.
static String COMBO_RENDERER_IS_BORDER_REMOVABLE
          A client property key for combo box renderer components.
static String DEFAULT_ICON_SIZE_KEY
           
static String DEFAULT_LOOK_NAME
          The class name of the default JGoodies L&f, PlasticXP.
static String EMBEDDED_TABS_KEY
          A JTabbedPane client property key that indicates that tabs are painted with a special embedded appearance.
static String HEADER_STYLE_KEY
          A client property key for JMenuBar and JToolBar style hints.
static String HI_RES_DISABLED_ICON_CLIENT_KEY
          A client property key for components with a disabled icon such as buttons, labels, and tabbed panes.
static String HI_RES_GRAY_FILTER_ENABLED_KEY
          A UIDefaults key for enabling/disabling the new high-resolution gray filter globally.
static String INVERT_SELECTION_CLIENT_KEY
          A JTextField client property key that specifies the direction how text shall be selected on focus gain - if at all: from start to end vs. end to start.
static String IS_ETCHED_KEY
          A JScrollPane client property key for a hint that the scroll pane border should be etched.
static String JGOODIES_WINDOWS_NAME
          The class name of the JGoodies Windows L&f.
static String NO_CONTENT_BORDER_KEY
          A JTabbedPane client property key that indicates that no content border shall be painted.
static String NO_ICONS_KEY
          A JMenu client property key for a hint that the menu items in the menu have no icons.
static String NO_MARGIN_KEY
          A JPopupMenu client property key for a hint that the border shall have no extra margin.
static String NO_REPLACEMENT
          A replacement used to replace a given L&f with nothing, that indicates that it should not be used.
static String PLASTIC_CONTROL_FONT_KEY
          A key for setting the default control font in Plastic L&fs.
static String PLASTIC_FONT_POLICY_KEY
          A key for setting a custom FontPolicy for the Plastic L&fs.
static String PLASTIC_MENU_FONT_KEY
          A key for setting the default menu font in Plastic L&fs.
static String PLASTIC_MICRO_LAYOUT_POLICY_KEY
          A UIManager key for setting a custom MicroLayoutPolicy for the Plastic L&fs.
static String PLASTIC_NAME
          The class name of the JGoodies Plastic L&f.
static String PLASTIC3D_NAME
          The class name of the JGoodies Plastic3D L&f.
static String PLASTICXP_NAME
          The class name of the JGoodies PlasticXP L&f.
static String POPUP_DROP_SHADOW_ENABLED_KEY
          A UIDefaults key for the popup drop shadow enablement.
static String SELECT_ON_FOCUS_GAIN_CLIENT_KEY
          A JTextField client property key that specifies whether all text shall be selected on focus gain.
static String SELECT_ON_FOCUS_GAIN_KEY
          A UIDefaults key for the global default whether text fields shall select all text on focus gain.
static String SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY
          A JTextField client property key that specifies whether the caret shall be positioned at the start on focus lost.
static String TAB_ICONS_ENABLED_KEY
           
static String TREE_LINE_STYLE_ANGLED_VALUE
          A JTree client property value that indicates that lines shall be drawn.
static String TREE_LINE_STYLE_KEY
          A JTree client property key for a tree line style hint.
static String TREE_LINE_STYLE_NONE_VALUE
          A JTree client property value that indicates that lines shall be hidden.
static String USE_NARROW_BUTTONS_KEY
           
static String USE_SYSTEM_FONTS_APP_KEY
          A convenience constant for the standard Swing UIDefaults key that configures the use of system fonts.
static String USE_SYSTEM_FONTS_KEY
          A convenience constant for the standard Swing system property key that configures the use of system fonts.
static String WINDOWS_CONTROL_FONT_KEY
          A key for setting the default control font in the Windows L&f.
static String WINDOWS_FONT_POLICY_KEY
          A key for setting a custom FontPolicy for the Windows L&fs.
static String WINDOWS_MENU_FONT_KEY
          A key for setting the default menu font in the Windows L&f.
static String WINDOWS_MICRO_LAYOUT_POLICY_KEY
          A UIManager key for setting a custom MicroLayoutPolicy for the Windows L&f.
 
Method Summary
static String getCrossPlatformLookAndFeelClassName()
          Returns the class name for a cross-platform LookAndFeel.
static Dimension getDefaultIconSize()
          Returns the default icon size that is used in menus, menu items and toolbars.
static String getReplacementClassNameFor(String className)
          Returns the class name that can be used to replace the specified LookAndFeel class name.
static Boolean getSelectOnFocusGainEnabled(JTextComponent c)
          Returns component's individual setting for the select on focus gain feature.
static String getSystemLookAndFeelClassName()
          Returns the class name for a system specific LookAndFeel.
static boolean getUseNarrowButtons()
          Checks and answers if we shall use narrow button margins of 4 pixels.
static boolean getUseSystemFonts()
          Returns whether native system fonts shall be used, true by default unless disabled in the system properties or UIManager.
static boolean isHiResGrayFilterEnabled()
          Checks and answers whether the new high-resolution gray filter is enabled or disabled.
static boolean isPopupDropShadowActive()
          Checks and answers whether popup drop shadows are active.
static boolean isPopupDropShadowEnabled()
          Checks and answers whether the optional drop shadows for PopupMenus are enabled or disabled.
static boolean isSelectOnFocusGainActive(JTextComponent c)
          Checks and answers whether the select all on focus gain feature is active for the given field.
static boolean isSelectOnFocusGainEnabled()
          Checks and answers whether the global default for text fields is to select all text on focus gain.
static boolean isTabIconsEnabled()
          Checks and answers if we shall use icons in JTabbedPanes.
static void putLookAndFeelReplacement(String original, String replacement)
          Puts a replacement name for a given LookAndFeel class name in the list of all look and feel replacements.
static void removeLookAndFeelReplacement(String original)
          Removes a replacement name for a given LookAndFeel class name from the list of all look and feel replacements.
static void setDefaultIconSize(Dimension defaultIconSize)
          Sets the default icon size.
static void setHiResGrayFilterEnabled(boolean b)
          Enables or disables the new high-resolution gray filter globally.
static void setPopupDropShadowEnabled(boolean b)
          Enables or disables drop shadows in PopupMenus.
static void setSelectOnFocusGainEnabled(boolean b)
          Enables or disables the select on focus gain feature globally.
static void setSelectOnFocusGainEnabled(JTextField field, Boolean b)
          Overrides the global default for the select all feature for the given text field.
static void setTabIconsEnabled(boolean b)
          Enables or disables the use of icons in JTabbedPanes.
static void setUseNarrowButtons(boolean b)
          Globally sets the use narrow or standard button margins.
static void setUseSystemFonts(boolean useSystemFonts)
          Sets a value in the UIManager to indicate, that a look&feel may use the native system fonts.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PLASTIC_NAME

public static final String PLASTIC_NAME
The class name of the JGoodies Plastic L&f.

See Also:
Constant Field Values

PLASTIC3D_NAME

public static final String PLASTIC3D_NAME
The class name of the JGoodies Plastic3D L&f.

See Also:
Constant Field Values

PLASTICXP_NAME

public static final String PLASTICXP_NAME
The class name of the JGoodies PlasticXP L&f.

See Also:
Constant Field Values

JGOODIES_WINDOWS_NAME

public static final String JGOODIES_WINDOWS_NAME
The class name of the JGoodies Windows L&f.

See Also:
Constant Field Values

DEFAULT_LOOK_NAME

public static final String DEFAULT_LOOK_NAME
The class name of the default JGoodies L&f, PlasticXP.

See Also:
Constant Field Values

PLASTIC_FONT_POLICY_KEY

public static final String PLASTIC_FONT_POLICY_KEY
A key for setting a custom FontPolicy for the Plastic L&fs. Used for both the system properties and the UIDefaults table.

See Also:
PlasticLookAndFeel.getFontPolicy(), PlasticLookAndFeel.setFontPolicy(FontPolicy), Constant Field Values

PLASTIC_CONTROL_FONT_KEY

public static final String PLASTIC_CONTROL_FONT_KEY
A key for setting the default control font in Plastic L&fs. Used for both the system properties and the UIDefaults table.

See Also:
FontPolicies.customSettingsPolicy(FontPolicy), Constant Field Values

PLASTIC_MENU_FONT_KEY

public static final String PLASTIC_MENU_FONT_KEY
A key for setting the default menu font in Plastic L&fs. Used for both the system properties and the UIDefaults table.

See Also:
FontPolicies.customSettingsPolicy(FontPolicy), Constant Field Values

WINDOWS_FONT_POLICY_KEY

public static final String WINDOWS_FONT_POLICY_KEY
A key for setting a custom FontPolicy for the Windows L&fs. Used for both the system properties and the UIDefaults table.

See Also:
WindowsLookAndFeel.getFontPolicy(), WindowsLookAndFeel.setFontPolicy(FontPolicy), Constant Field Values

WINDOWS_CONTROL_FONT_KEY

public static final String WINDOWS_CONTROL_FONT_KEY
A key for setting the default control font in the Windows L&f. Used for both the system properties and the UIDefaults table.

See Also:
FontPolicies.customSettingsPolicy(FontPolicy), Constant Field Values

WINDOWS_MENU_FONT_KEY

public static final String WINDOWS_MENU_FONT_KEY
A key for setting the default menu font in the Windows L&f. Used for both the system properties and the UIDefaults table.

See Also:
FontPolicies.customSettingsPolicy(FontPolicy), Constant Field Values

USE_SYSTEM_FONTS_KEY

public static final String USE_SYSTEM_FONTS_KEY
A convenience constant for the standard Swing system property key that configures the use of system fonts.

See Also:
getUseSystemFonts(), setUseSystemFonts(boolean), Constant Field Values

USE_SYSTEM_FONTS_APP_KEY

public static final String USE_SYSTEM_FONTS_APP_KEY
A convenience constant for the standard Swing UIDefaults key that configures the use of system fonts.

See Also:
getUseSystemFonts(), setUseSystemFonts(boolean), Constant Field Values

PLASTIC_MICRO_LAYOUT_POLICY_KEY

public static final String PLASTIC_MICRO_LAYOUT_POLICY_KEY
A UIManager key for setting a custom MicroLayoutPolicy for the Plastic L&fs.

See Also:
PlasticLookAndFeel.getMicroLayoutPolicy(), PlasticLookAndFeel.setMicroLayoutPolicy(MicroLayout), Constant Field Values

WINDOWS_MICRO_LAYOUT_POLICY_KEY

public static final String WINDOWS_MICRO_LAYOUT_POLICY_KEY
A UIManager key for setting a custom MicroLayoutPolicy for the Windows L&f.

See Also:
WindowsLookAndFeel.getMicroLayoutPolicy(), WindowsLookAndFeel.setMicroLayoutPolicy(MicroLayout), Constant Field Values

DEFAULT_ICON_SIZE_KEY

public static final String DEFAULT_ICON_SIZE_KEY
See Also:
Constant Field Values

USE_NARROW_BUTTONS_KEY

public static final String USE_NARROW_BUTTONS_KEY
See Also:
Constant Field Values

TAB_ICONS_ENABLED_KEY

public static final String TAB_ICONS_ENABLED_KEY
See Also:
Constant Field Values

POPUP_DROP_SHADOW_ENABLED_KEY

public static final String POPUP_DROP_SHADOW_ENABLED_KEY
A UIDefaults key for the popup drop shadow enablement.

See Also:
isPopupDropShadowEnabled(), setPopupDropShadowEnabled(boolean), Constant Field Values

HI_RES_GRAY_FILTER_ENABLED_KEY

public static final String HI_RES_GRAY_FILTER_ENABLED_KEY
A UIDefaults key for enabling/disabling the new high-resolution gray filter globally. This setting can be overridden per component.

Since:
2.1
See Also:
setHiResGrayFilterEnabled(boolean), HI_RES_DISABLED_ICON_CLIENT_KEY, Constant Field Values

SELECT_ON_FOCUS_GAIN_KEY

public static final String SELECT_ON_FOCUS_GAIN_KEY
A UIDefaults key for the global default whether text fields shall select all text on focus gain. This can be overridden per field.

Since:
2.2
See Also:
setSelectOnFocusGainEnabled(boolean), Constant Field Values

IS_ETCHED_KEY

public static final String IS_ETCHED_KEY
A JScrollPane client property key for a hint that the scroll pane border should be etched.

See Also:
Constant Field Values

HEADER_STYLE_KEY

public static final String HEADER_STYLE_KEY
A client property key for JMenuBar and JToolBar style hints. Available styles are: HeaderStyle.Single and HeaderStyle.Both.

See Also:
HeaderStyle, BorderStyle, Constant Field Values

NO_ICONS_KEY

public static final String NO_ICONS_KEY
A JMenu client property key for a hint that the menu items in the menu have no icons.

See Also:
Constant Field Values

NO_MARGIN_KEY

public static final String NO_MARGIN_KEY
A JPopupMenu client property key for a hint that the border shall have no extra margin. This is useful if the popup menu contains only a single component, for example a scrollpane.

See Also:
Constant Field Values

TREE_LINE_STYLE_KEY

public static final String TREE_LINE_STYLE_KEY
A JTree client property key for a tree line style hint.

See Also:
TREE_LINE_STYLE_ANGLED_VALUE, TREE_LINE_STYLE_NONE_VALUE, Constant Field Values

TREE_LINE_STYLE_ANGLED_VALUE

public static final String TREE_LINE_STYLE_ANGLED_VALUE
A JTree client property value that indicates that lines shall be drawn.

See Also:
TREE_LINE_STYLE_KEY, Constant Field Values

TREE_LINE_STYLE_NONE_VALUE

public static final String TREE_LINE_STYLE_NONE_VALUE
A JTree client property value that indicates that lines shall be hidden.

See Also:
TREE_LINE_STYLE_KEY, Constant Field Values

NO_CONTENT_BORDER_KEY

public static final String NO_CONTENT_BORDER_KEY
A JTabbedPane client property key that indicates that no content border shall be painted. Supported by the JGoodies Windows L&f and the JGoodies Plastic look&feel family. This effect will be achieved also if the EMBEDDED property is true.

See Also:
Constant Field Values

EMBEDDED_TABS_KEY

public static final String EMBEDDED_TABS_KEY
A JTabbedPane client property key that indicates that tabs are painted with a special embedded appearance. Supported by the JGoodies Windows L&f and the JGoodies Plastic look&feel family. As a side effect of the embedded appearance, supporting L&fs won't paint the content border.

See Also:
Constant Field Values

COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY

public static final String COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY
A JComboBox client property key for the combo's popup menu prototype display value. If this key is set, the value will be used to compute the combo popup width. This optional feature is supported by the JGoodies Windows L&f as well as the JGoodies Plastic L&fs.

See Also:
Constant Field Values

COMBO_RENDERER_IS_BORDER_REMOVABLE

public static final String COMBO_RENDERER_IS_BORDER_REMOVABLE
A client property key for combo box renderer components. The Boolean value indicates whether the component's border can be temporarily removed when painting the current value or not.

This is useful for custom renderers used with Windows combo boxes as described by WindowsComboBoxUI#paintCurrentValue}.

Since:
2.1
See Also:
Constant Field Values

HI_RES_DISABLED_ICON_CLIENT_KEY

public static final String HI_RES_DISABLED_ICON_CLIENT_KEY
A client property key for components with a disabled icon such as buttons, labels, and tabbed panes. Specifies whether the new high resolution gray filter shall be used to compute a disabled icon - if none is available.

Since:
2.1
See Also:
isHiResGrayFilterEnabled(), setHiResGrayFilterEnabled(boolean), HI_RES_GRAY_FILTER_ENABLED_KEY, Constant Field Values

SELECT_ON_FOCUS_GAIN_CLIENT_KEY

public static final String SELECT_ON_FOCUS_GAIN_CLIENT_KEY
A JTextField client property key that specifies whether all text shall be selected on focus gain. Overrides the global default.

This feature can be set using setSelectOnFocusGainEnabled(JTextField, Boolean). If you want to avoid to link application code to the JGoodies Looks library, you can set the client property directly using:

 aTextField.putClientProperty("JGoodies.selectAllOnFocusGain", Boolean.TRUE);
 

Since:
2.2
See Also:
setSelectOnFocusGainEnabled(boolean), Constant Field Values

INVERT_SELECTION_CLIENT_KEY

public static final String INVERT_SELECTION_CLIENT_KEY
A JTextField client property key that specifies the direction how text shall be selected on focus gain - if at all: from start to end vs. end to start. If the value is set to Boolean.TRUE, the text is selected from end to start, otherwise it is selected from start to end.

You can set the client property using:

 aTextField.putClientProperty("JGoodies.invertSelection", Boolean.TRUE);
 

Since:
2.2
See Also:
Constant Field Values

SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY

public static final String SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY
A JTextField client property key that specifies whether the caret shall be positioned at the start on focus lost. If the value is set to Boolean.TRUE, the caret is set to position 0 on focus lost, otherwise the caret remains unchanged.

You can set the client property using:

 aTextField.putClientProperty("JGoodies.setCaretToStartOnFocusLost", Boolean.TRUE);
 

Since:
2.2
See Also:
Constant Field Values

NO_REPLACEMENT

public static final String NO_REPLACEMENT
A replacement used to replace a given L&f with nothing, that indicates that it should not be used. For example, by default we mark the WindowsClass L&f this way, to remove it from L&f lists that replace the Sun Windows L&f with the JGoodies Windows L&f.

Since:
2.1.3
See Also:
Constant Field Values
Method Detail

getUseSystemFonts

public static boolean getUseSystemFonts()
Returns whether native system fonts shall be used, true by default unless disabled in the system properties or UIManager.

Returns:
true unless disabled in the system properties or UIManager
See Also:
setUseSystemFonts(boolean), USE_SYSTEM_FONTS_KEY, USE_SYSTEM_FONTS_APP_KEY

setUseSystemFonts

public static void setUseSystemFonts(boolean useSystemFonts)
Sets a value in the UIManager to indicate, that a look&feel may use the native system fonts.

Parameters:
useSystemFonts - true to enable system fonts in the UIManager
See Also:
getUseSystemFonts(), USE_SYSTEM_FONTS_KEY, USE_SYSTEM_FONTS_APP_KEY

getDefaultIconSize

public static Dimension getDefaultIconSize()
Returns the default icon size that is used in menus, menu items and toolbars. Menu items that have no icon set are aligned using the default icon dimensions.

Returns:
the dimension of the default icon
See Also:
setDefaultIconSize(Dimension)

setDefaultIconSize

public static void setDefaultIconSize(Dimension defaultIconSize)
Sets the default icon size.

Parameters:
defaultIconSize - the default icon size to set
See Also:
getDefaultIconSize()

getUseNarrowButtons

public static boolean getUseNarrowButtons()
Checks and answers if we shall use narrow button margins of 4 pixels. As of the Looks version 1.4 the default value is true (narrow) for the JGoodies Windows L&F and the JGoodies Plastic L&F family. The native Windows L&F uses narrow margins too. The default can be disabled in the system properties or UIManager.

Note: Using narrow button margins can potentially cause compatibility issues, if you don't take care that command buttons with short labels (OK) get a reasonable minimum width. Therefore you can get back to wide button margins using #setUseNarrowButtons. Sun's L&F implementations use a wider button margin of 14 pixels.

Narrow button margins make it easier to give buttons in a button bar the same width, even if some button labels are long. And narrow margins are useful for embedded command buttons that just have an icon, or an ellipsis (…). Many style guides recommend to use a minimum button width in command button bars, for example 50 dialog units on Windows. Such a minimum width makes it easier to click a button, just because the button area has a reasonable minimum size. To ensure a reasonable button minimum width, you may configure a LayoutManager, use a special panel for command button bars, or a factory that vends command button bars.

The JGoodies FormLayout can layout button bars that comply with both the MS Windows Layout Guidelines and the Mac Aqua Human Interface Guidelines. The JGoodies Forms contains a ButtonBarBuilder to build command button bars, and a ButtonBarFactory that vends frequently used button bars.

Returns:
true (default) if all buttons shall use narrow margins, false for wider margins
See Also:
setUseNarrowButtons(boolean), USE_NARROW_BUTTONS_KEY

setUseNarrowButtons

public static void setUseNarrowButtons(boolean b)
Globally sets the use narrow or standard button margins.

In previous versions of the JGoodies Looks this setting was supported also for individual buttons - primarily to offer visual backward compatibility with Sun L&Fs.

Parameters:
b - true to use narrow button margins globally
See Also:
getUseNarrowButtons(), USE_NARROW_BUTTONS_KEY

isTabIconsEnabled

public static boolean isTabIconsEnabled()
Checks and answers if we shall use icons in JTabbedPanes. By default, tab icons are enabled. If the user has set a system property, we log a message about the choosen style.

Returns:
true if icons in tabbed panes are enabled, false if disabled
See Also:
setTabIconsEnabled(boolean)

setTabIconsEnabled

public static void setTabIconsEnabled(boolean b)
Enables or disables the use of icons in JTabbedPanes.

Parameters:
b - true to enable icons in tabbed panes, false to disable them
See Also:
isTabIconsEnabled()

isPopupDropShadowActive

public static boolean isPopupDropShadowActive()
Checks and answers whether popup drop shadows are active. This feature shall be inactive with toolkits that use native drop shadows, such as Aqua on the Mac OS X. It is also inactive if the ShadowPopup cannot snapshot the desktop background (due to security and AWT exceptions). Otherwise the feature's enablement state is returned.

Currently only the Mac OS X is detected as platform where the toolkit uses native drop shadows.

Returns:
true if drop shadows are active, false if inactive
See Also:
isPopupDropShadowEnabled(), setPopupDropShadowEnabled(boolean)

isPopupDropShadowEnabled

public static boolean isPopupDropShadowEnabled()
Checks and answers whether the optional drop shadows for PopupMenus are enabled or disabled.

Returns:
true if drop shadows are enabled, false if disabled
See Also:
isPopupDropShadowActive(), setPopupDropShadowEnabled(boolean), POPUP_DROP_SHADOW_ENABLED_KEY

setPopupDropShadowEnabled

public static void setPopupDropShadowEnabled(boolean b)
Enables or disables drop shadows in PopupMenus. Note that drop shadows are always inactive on platforms that provide native drop shadows such as the Mac OS X.

It is recommended to enable this feature only on platforms that accelerate translucency and snapshots with the hardware.

Parameters:
b - true to enable drop shadows, false to disable them
See Also:
isPopupDropShadowActive(), isPopupDropShadowEnabled()

isHiResGrayFilterEnabled

public static boolean isHiResGrayFilterEnabled()
Checks and answers whether the new high-resolution gray filter is enabled or disabled. It is enabled by default.

Returns:
true if the high-resolution gray filter is enabled, false if disabled
Since:
2.1
See Also:
setHiResGrayFilterEnabled(boolean), HI_RES_GRAY_FILTER_ENABLED_KEY, HI_RES_DISABLED_ICON_CLIENT_KEY

setHiResGrayFilterEnabled

public static void setHiResGrayFilterEnabled(boolean b)
Enables or disables the new high-resolution gray filter globally. This gray filter can be disabled for individual components using the client property key HI_RES_DISABLED_ICON_CLIENT_KEY.

Parameters:
b - true to enable the high-resolution gray filter, false to disable them
Since:
2.1
See Also:
isHiResGrayFilterEnabled()

isSelectOnFocusGainEnabled

public static boolean isSelectOnFocusGainEnabled()
Checks and answers whether the global default for text fields is to select all text on focus gain. The global default can be overridden per component. This feature is turned on by default.

For all full description and background see setSelectOnFocusGainEnabled(boolean).

Returns:
true if the select all feature is enabled globally, false if disabled
Since:
2.2
See Also:
SELECT_ON_FOCUS_GAIN_KEY, SELECT_ON_FOCUS_GAIN_CLIENT_KEY

setSelectOnFocusGainEnabled

public static void setSelectOnFocusGainEnabled(boolean b)
Enables or disables the select on focus gain feature globally. This feature can be disabled for individual components using the client property key SELECT_ALL_ON_FOCUS_GAIN_CLIENT_KEY. It is enabled by default.

Background: If users are more likely going to reenter the entire value in a text field, all text shall be selected on focus gain. If users are more likely to edit a text, the caret shall be placed at the end of the text.

Parameters:
b - true to enable the select all on focus gain, false to disable this feature globally
Since:
2.2
See Also:
isSelectOnFocusGainEnabled()

isSelectOnFocusGainActive

public static boolean isSelectOnFocusGainActive(JTextComponent c)
Checks and answers whether the select all on focus gain feature is active for the given field. Involves both the indiviual setting and the global default.

Parameters:
c - the component to check
Returns:
true if the feature is enabled for c or globally, false if the feature is disabled for c or globally disabled.
Since:
2.2

getSelectOnFocusGainEnabled

public static Boolean getSelectOnFocusGainEnabled(JTextComponent c)
Returns component's individual setting for the select on focus gain feature.

Parameters:
c - the component to check
Returns:
Boolean.TRUE if enabled, Boolean.FALSE if disabled, null if the global default is used
Since:
2.2
See Also:
isSelectOnFocusGainActive(JTextComponent)

setSelectOnFocusGainEnabled

public static void setSelectOnFocusGainEnabled(JTextField field,
                                               Boolean b)
Overrides the global default for the select all feature for the given text field.

Parameters:
field - the field to set this feature
b - Boolean.TRUE to enable, Boolean.FALSE to disable, null to use the global default
Since:
2.2

putLookAndFeelReplacement

public static void putLookAndFeelReplacement(String original,
                                             String replacement)
Puts a replacement name for a given LookAndFeel class name in the list of all look and feel replacements.

Parameters:
original - the name of the look-and-feel to replace
replacement - the name of the replacement look-and-feel
See Also:
removeLookAndFeelReplacement(String), getReplacementClassNameFor(String)

removeLookAndFeelReplacement

public static void removeLookAndFeelReplacement(String original)
Removes a replacement name for a given LookAndFeel class name from the list of all look and feel replacements.

Parameters:
original - the name of the look-and-feel that has been replaced
See Also:
putLookAndFeelReplacement(String, String), getReplacementClassNameFor(String)

getReplacementClassNameFor

public static String getReplacementClassNameFor(String className)
Returns the class name that can be used to replace the specified LookAndFeel class name.

Parameters:
className - the name of the look-and-feel class
Returns:
the name of the suggested replacement class
See Also:
putLookAndFeelReplacement(String, String), removeLookAndFeelReplacement(String)

getCrossPlatformLookAndFeelClassName

public static String getCrossPlatformLookAndFeelClassName()
Returns the class name for a cross-platform LookAndFeel.

Returns:
the name of a cross platform look-and-feel class
See Also:
getSystemLookAndFeelClassName()

getSystemLookAndFeelClassName

public static String getSystemLookAndFeelClassName()
Returns the class name for a system specific LookAndFeel.

Returns:
the name of the system look-and-feel class
See Also:
getCrossPlatformLookAndFeelClassName()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/LookUtils.html0000644000175000017500000007761012003555444023255 0ustar tonytony LookUtils (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class LookUtils

java.lang.Object
  extended by com.jgoodies.common.base.SystemUtils
      extended by com.jgoodies.looks.LookUtils

public final class LookUtils
extends com.jgoodies.common.base.SystemUtils

Provides convenience behavior used by the JGoodies Looks.

Version:
$Revision: 1.18 $
Author:
Karsten Lentzsch

Field Summary
static boolean IS_OS_WINDOWS_95
          True if this is Windows 95.
static boolean IS_OS_WINDOWS_MODERN
          True if this is Windows 98/ME/2000/Server 2003/XP/VISTA/Server 2008.
static boolean IS_OS_WINDOWS_NT
          True if this is Windows NT.
 
Fields inherited from class com.jgoodies.common.base.SystemUtils
HAS_MODERN_RASTERIZER, IS_JAVA_6, IS_JAVA_7, IS_JAVA_7_OR_LATER, IS_LAF_WINDOWS_XP_ENABLED, IS_LOW_RESOLUTION, IS_OS_LINUX, IS_OS_MAC, IS_OS_SOLARIS, IS_OS_WINDOWS, IS_OS_WINDOWS_2000, IS_OS_WINDOWS_6_OR_LATER, IS_OS_WINDOWS_7, IS_OS_WINDOWS_8, IS_OS_WINDOWS_98, IS_OS_WINDOWS_ME, IS_OS_WINDOWS_VISTA, IS_OS_WINDOWS_XP, JAVA_VERSION, OS_NAME, OS_VERSION
 
Method Summary
static Boolean getBooleanSystemProperty(String key, String logMessage)
          Checks if a boolean system property has been set for the given key, and returns the associated Boolean, or null if no value has been set.
static Object getDefaultTheme(LookAndFeel laf)
           
static List getInstalledThemes(LookAndFeel laf)
           
static Color getSlightlyBrighter(Color color)
          Computes and returns a Color that is slightly brighter than the specified Color.
static Color getSlightlyBrighter(Color color, float factor)
          Computes and returns a Color that is slightly brighter than the specified Color.
static String getSystemProperty(String key)
          Tries to look up the System property for the given key.
static String getSystemProperty(String key, String defaultValue)
          Tries to look up the System property for the given key.
static boolean getToolkitUsesNativeDropShadows()
          Checks and answers whether this toolkit provides native drop shadows for popups such as the Mac OS X.
static boolean isTrueColor(Component c)
          Checks and answers whether we have a true color system.
static void log()
          Prints a new line to the console if logging is enabled.
static void log(String message)
          Prints the given message to the console if logging is enabled.
static void setLoggingEnabled(boolean enabled)
          Enables or disables the Looks logging.
static void setLookAndTheme(LookAndFeel laf, Object theme)
           
 
Methods inherited from class com.jgoodies.common.base.SystemUtils
startsWith
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IS_OS_WINDOWS_MODERN

public static final boolean IS_OS_WINDOWS_MODERN
True if this is Windows 98/ME/2000/Server 2003/XP/VISTA/Server 2008.


IS_OS_WINDOWS_95

public static final boolean IS_OS_WINDOWS_95
True if this is Windows 95.

Since:
2.0

IS_OS_WINDOWS_NT

public static final boolean IS_OS_WINDOWS_NT
True if this is Windows NT.

Since:
2.0
Method Detail

getSystemProperty

public static String getSystemProperty(String key)
Tries to look up the System property for the given key. In untrusted environments this may throw a SecurityException. In this case we catch the exception and answer null.

Parameters:
key - the name of the system property
Returns:
the system property's String value, or null if there's no such value, or a SecurityException has been caught

getSystemProperty

public static String getSystemProperty(String key,
                                       String defaultValue)
Tries to look up the System property for the given key. In untrusted environments this may throw a SecurityException. In this case, we catch the exception and answer the default value.

Parameters:
key - the name of the system property
defaultValue - the default value if no property exists.
Returns:
the system property's String value, or the defaultValue if there's no such value, or a SecurityException has been caught

getBooleanSystemProperty

public static Boolean getBooleanSystemProperty(String key,
                                               String logMessage)
Checks if a boolean system property has been set for the given key, and returns the associated Boolean, or null if no value has been set. The test for the property ignores case. If a Boolean value has been set, a message is logged with the given prefix.

Parameters:
key - the key used to lookup the system property value
logMessage - a prefix used when a message is logged
Returns:
Boolean.TRUE if the system property has been set to "true" (case ignored), Boolean.FALSE if it has been set to "false", null otherwise

isTrueColor

public static boolean isTrueColor(Component c)
Checks and answers whether we have a true color system.

Parameters:
c - the component used to determine the toolkit
Returns:
true if the component's toolkit has a pixel size >= 24

getToolkitUsesNativeDropShadows

public static boolean getToolkitUsesNativeDropShadows()
Checks and answers whether this toolkit provides native drop shadows for popups such as the Mac OS X. Currently this is used to determine if the Looks' popup drop shadow feature is active or not - even if it's enabled.

Returns:
true if the toolkit provides native drop shadows
See Also:
Options.isPopupDropShadowActive()

getSlightlyBrighter

public static Color getSlightlyBrighter(Color color)
Computes and returns a Color that is slightly brighter than the specified Color.

Parameters:
color - the color used as basis for the brightened color
Returns:
a slightly brighter color

getSlightlyBrighter

public static Color getSlightlyBrighter(Color color,
                                        float factor)
Computes and returns a Color that is slightly brighter than the specified Color.

Parameters:
color - the color used as basis for the brightened color
factor - the factor used to compute the brightness
Returns:
a slightly brighter color

setLookAndTheme

public static void setLookAndTheme(LookAndFeel laf,
                                   Object theme)
                            throws UnsupportedLookAndFeelException
Throws:
UnsupportedLookAndFeelException

getDefaultTheme

public static Object getDefaultTheme(LookAndFeel laf)

getInstalledThemes

public static List getInstalledThemes(LookAndFeel laf)

setLoggingEnabled

public static void setLoggingEnabled(boolean enabled)
Enables or disables the Looks logging.

Parameters:
enabled - true to enable logging, false to disable it

log

public static void log()
Prints a new line to the console if logging is enabled.


log

public static void log(String message)
Prints the given message to the console if logging is enabled.

Parameters:
message - the message to print


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/MicroLayoutPolicy.html0000644000175000017500000002467012003555444024755 0ustar tonytony MicroLayoutPolicy (JGoodies Looks 2.5 API)

com.jgoodies.looks
Interface MicroLayoutPolicy


public interface MicroLayoutPolicy

Looks up and returns a MicroLayout.

Since:
2.1
Version:
$Revision: 1.6 $
Author:
Karsten Lentzsch
See Also:
MicroLayout, MicroLayoutPolicies

Method Summary
 MicroLayout getMicroLayout(String lafName, UIDefaults table)
          Looks up and returns insets, margins, and gaps that will be used by a Look&Feel to set the component insets, margins and gaps.
 

Method Detail

getMicroLayout

MicroLayout getMicroLayout(String lafName,
                           UIDefaults table)
Looks up and returns insets, margins, and gaps that will be used by a Look&Feel to set the component insets, margins and gaps.

This method is invoked during the L&F component initialization. And the invoker hands over the UIDefaults object used to define the component settings. Hence, the UIDefaults object may be used to look up values as initialized by a super Look&Feel. For example the JGoodies Windows L&F could use the defaults set by the super L&F, the Sun Windows L&F.

Parameters:
lafName - the name of the Look&Feel that requests the fonts
table - the UIDefaults table that can be used to look up fonts of a super L&F
Returns:
a micro layout used as default for the components.


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/HeaderStyle.html0000644000175000017500000004032312003555444023530 0ustar tonytony HeaderStyle (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class HeaderStyle

java.lang.Object
  extended by com.jgoodies.looks.HeaderStyle

public final class HeaderStyle
extends Object

Describes the header styles for JMenuBar and JToolBar. Header styles are look-independent and can be shadowed by a look-dependent BorderStyle.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
BorderStyle

Field Summary
static HeaderStyle BOTH
           
static HeaderStyle SINGLE
           
 
Method Summary
static HeaderStyle from(JMenuBar menuBar)
          Looks up the client property for the HeaderStyle from the JToolBar.
static HeaderStyle from(JToolBar toolBar)
          Looks up the client property for the HeaderStyle from the JToolBar.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SINGLE

public static final HeaderStyle SINGLE

BOTH

public static final HeaderStyle BOTH
Method Detail

from

public static HeaderStyle from(JMenuBar menuBar)
Looks up the client property for the HeaderStyle from the JToolBar.

Parameters:
menuBar - the menu bar to inspect
Returns:
the menu bar's header style

from

public static HeaderStyle from(JToolBar toolBar)
Looks up the client property for the HeaderStyle from the JToolBar.

Parameters:
toolBar - the tool bar to inspect
Returns:
the tool bar's header style

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/0000755000175000017500000000000012003555450021714 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ShadowPopupFactory.html0000644000175000017500000004707512003555446026425 0ustar tonytony ShadowPopupFactory (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ShadowPopupFactory

java.lang.Object
  extended by javax.swing.PopupFactory
      extended by com.jgoodies.looks.common.ShadowPopupFactory

public final class ShadowPopupFactory
extends PopupFactory

The JGoodies Looks implementation of PopupFactory. Adds a drop shadow border to all popups except ComboBox popups. It is installed by the JGoodies Plastic L&F, as well as by the JGoodies Windows L&F during the Look&Feel initialization, see PlasticLookAndFeel.initialize() and WindowsLookAndFeel.initialize().

This factory shall not be used on platforms that provide native drop shadows, such as the Mac OS X. Therefore the invocation of the install() method will have no effect on such platforms.

Note: To be used in a sandbox environment, this PopupFactory requires two AWT permissions: createRobot and readDisplayPixels. The reason for it is, that in the case of the heavy weight popups this PopupFactory uses a Robot to snapshot the screen background to simulate the drop shadow effect.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch
See Also:
AWTPermission, Robot, Popup, LookAndFeel.initialize(), LookAndFeel.uninitialize()

Method Summary
 Popup getPopup(Component owner, Component contents, int x, int y)
          Creates a Popup for the Component owner containing the Component contents.
static void install()
          Installs the ShadowPopupFactory as the shared popup factory on non-Mac platforms.
static void uninstall()
          Uninstalls the ShadowPopupFactory and restores the original popup factory as the new shared popup factory.
 
Methods inherited from class javax.swing.PopupFactory
getSharedInstance, setSharedInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

install

public static void install()
Installs the ShadowPopupFactory as the shared popup factory on non-Mac platforms. Also stores the previously set factory, so that it can be restored in #uninstall.

In some Mac Java environments the popup factory throws a NullPointerException when we call #getPopup.

TODO: The Mac case shows that we may have problems replacing non PopupFactory instances. Therefore we should consider replacing only instances of PopupFactory.

See Also:
uninstall()

uninstall

public static void uninstall()
Uninstalls the ShadowPopupFactory and restores the original popup factory as the new shared popup factory.

See Also:
install()

getPopup

public Popup getPopup(Component owner,
                      Component contents,
                      int x,
                      int y)
               throws IllegalArgumentException
Creates a Popup for the Component owner containing the Component contents. In addition to the superclass behavior, we try to return a Popup that has a drop shadow, if popup drop shadows are active - as returned by Options#isPopupDropShadowActive.

owner is used to determine which Window the new Popup will parent the Component the Popup creates to. A null owner implies there is no valid parent. x and y specify the preferred initial location to place the Popup at. Based on screen size, or other paramaters, the Popup may not display at x and y.

We invoke the super #getPopup, not the one in the stored factory, because the popup type is set in this instance, not in the stored one.

Overrides:
getPopup in class PopupFactory
Parameters:
owner - Component mouse coordinates are relative to, may be null
contents - Contents of the Popup
x - Initial x screen coordinate
y - Initial y screen coordinate
Returns:
Popup containing Contents
Throws:
IllegalArgumentException - if contents is null
See Also:
Options.isPopupDropShadowActive()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/package-frame.html0000644000175000017500000000554112003555446025277 0ustar tonytony com.jgoodies.looks.common (JGoodies Looks 2.5 API) com.jgoodies.looks.common
Classes 
ComboBoxEditorTextField
ExtBasicCheckBoxMenuItemUI
ExtBasicMenuItemUI
ExtBasicMenuUI
ExtBasicPopupMenuSeparatorUI
ExtBasicRadioButtonMenuItemUI
ExtBasicSpinnerLayout
ExtButtonAreaLayout
MenuItemRenderer
MenuSelectionProcessor
MinimumSizedCheckIcon
MinimumSizedIcon
PopupMenuLayout
RGBGrayFilter
ShadowPopup
ShadowPopupFactory
jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ExtBasicCheckBoxMenuItemUI.html0000644000175000017500000007542312003555446027635 0ustar tonytony ExtBasicCheckBoxMenuItemUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ExtBasicCheckBoxMenuItemUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
                  extended by com.jgoodies.looks.common.ExtBasicMenuItemUI
                      extended by com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
                          extended by com.jgoodies.looks.common.ExtBasicCheckBoxMenuItemUI

public final class ExtBasicCheckBoxMenuItemUI
extends ExtBasicRadioButtonMenuItemUI

Renders aligned JCheckBoxMenuItems.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicMenuItemUI
BasicMenuItemUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI
acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground
 
Constructor Summary
ExtBasicCheckBoxMenuItemUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  String getPropertyPrefix()
           
 
Methods inherited from class com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
iconBorderEnabled, processMouseEvent
 
Methods inherited from class com.jgoodies.looks.common.ExtBasicMenuItemUI
createRenderer, getPreferredMenuItemSize, installDefaults, paintMenuItem, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI
createMenuDragMouseListener, createMenuKeyListener, createMouseInputListener, createPropertyChangeListener, doClick, getMaximumSize, getMinimumSize, getPath, getPreferredSize, installComponents, installKeyboardActions, installListeners, installUI, paint, paintBackground, paintText, uninstallComponents, uninstallKeyboardActions, uninstallListeners, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtBasicCheckBoxMenuItemUI

public ExtBasicCheckBoxMenuItemUI()
Method Detail

getPropertyPrefix

protected String getPropertyPrefix()
Overrides:
getPropertyPrefix in class ExtBasicRadioButtonMenuItemUI

createUI

public static ComponentUI createUI(JComponent b)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ComboBoxEditorTextField.html0000644000175000017500000035113612003555446027310 0ustar tonytony ComboBoxEditorTextField (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ComboBoxEditorTextField

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JTextField
                      extended by com.jgoodies.looks.common.ComboBoxEditorTextField
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, SwingConstants

public final class ComboBoxEditorTextField
extends JTextField

A text field designed to be used as combo box editor. It doesn't set a text if the text equals the content; this works around the Java issue #4530952.

Version:
$Revision: 1.7 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTextField
JTextField.AccessibleJTextField
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JTextField
notifyAction
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ComboBoxEditorTextField(boolean isTableCellEditor)
           
 
Method Summary
 void setText(String s)
           
 
Methods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ComboBoxEditorTextField

public ComboBoxEditorTextField(boolean isTableCellEditor)
Method Detail

setText

public void setText(String s)
Overrides:
setText in class JTextComponent


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ShadowPopup.html0000644000175000017500000003630012003555446025062 0ustar tonytony ShadowPopup (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ShadowPopup

java.lang.Object
  extended by javax.swing.Popup
      extended by com.jgoodies.looks.common.ShadowPopup

public final class ShadowPopup
extends Popup

Does all the magic for getting popups with drop shadows. It adds the drop shadow border to the Popup, in #show it snapshots the screen background as needed, and in #hide it cleans up all changes made before.

Version:
$Revision: 1.12 $
Author:
Karsten Lentzsch
See Also:
ShadowPopupBorder, ShadowPopupFactory

Constructor Summary
ShadowPopup()
           
 
Method Summary
static boolean canSnapshot()
           
 void hide()
          Hides and disposes of the Popup.
 void show()
          Makes the Popup visible.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ShadowPopup

public ShadowPopup()
Method Detail

canSnapshot

public static boolean canSnapshot()

hide

public void hide()
Hides and disposes of the Popup. Once a Popup has been disposed you should no longer invoke methods on it. A disposed Popup may be reclaimed and later used based on the PopupFactory. As such, if you invoke methods on a disposed Popup, indeterminate behavior will result.

In addition to the superclass behavior, we reset the stored horizontal and vertical drop shadows - if any.

Overrides:
hide in class Popup

show

public void show()
Makes the Popup visible. If the popup has a heavy-weight container, we try to snapshot the background. If the Popup is currently visible, it remains visible.

Overrides:
show in class Popup


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/package-tree.html0000644000175000017500000004053212003555446025143 0ustar tonytony com.jgoodies.looks.common Class Hierarchy (JGoodies Looks 2.5 API)

Hierarchy For Package com.jgoodies.looks.common

Package Hierarchies:
All Packages

Class Hierarchy



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/MinimumSizedIcon.html0000644000175000017500000004131112003555446026032 0ustar tonytony MinimumSizedIcon (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class MinimumSizedIcon

java.lang.Object
  extended by com.jgoodies.looks.common.MinimumSizedIcon
All Implemented Interfaces:
Icon
Direct Known Subclasses:
MinimumSizedCheckIcon

public class MinimumSizedIcon
extends Object
implements Icon

An Icon with a minimum size that is read from the UIManager defaultIconSize key.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Constructor Summary
MinimumSizedIcon()
           
MinimumSizedIcon(Icon icon)
           
 
Method Summary
 int getIconHeight()
           
 int getIconWidth()
           
 void paintIcon(Component c, Graphics g, int x, int y)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MinimumSizedIcon

public MinimumSizedIcon()

MinimumSizedIcon

public MinimumSizedIcon(Icon icon)
Method Detail

getIconHeight

public int getIconHeight()
Specified by:
getIconHeight in interface Icon

getIconWidth

public int getIconWidth()
Specified by:
getIconWidth in interface Icon

paintIcon

public void paintIcon(Component c,
                      Graphics g,
                      int x,
                      int y)
Specified by:
paintIcon in interface Icon


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/package-use.html0000644000175000017500000002457612003555450025005 0ustar tonytony Uses of Package com.jgoodies.looks.common (JGoodies Looks 2.5 API)

Uses of Package
com.jgoodies.looks.common

Packages that use com.jgoodies.looks.common
com.jgoodies.looks.common Contains classes shared by all JGoodies Looks implementations 
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F 
 

Classes in com.jgoodies.looks.common used by com.jgoodies.looks.common
ExtBasicMenuItemUI
          An implementation of MenuItemUI used by the JGoodies Windows and Plastic looks.
ExtBasicRadioButtonMenuItemUI
          Renders aligned JRadioButtonMenuItems.
MenuItemRenderer
          Renders and lays out menu items.
MinimumSizedIcon
          An Icon with a minimum size that is read from the UIManager defaultIconSize key.
 

Classes in com.jgoodies.looks.common used by com.jgoodies.looks.plastic
ExtBasicMenuUI
          An implementation of MenuUI used by the JGoodies Windows and Plastic looks.
 

Classes in com.jgoodies.looks.common used by com.jgoodies.looks.windows
ExtBasicMenuItemUI
          An implementation of MenuItemUI used by the JGoodies Windows and Plastic looks.
MenuItemRenderer
          Renders and lays out menu items.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/0000755000175000017500000000000012003555450023613 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ShadowPopupFactory.html0000644000175000017500000001413212003555446030310 0ustar tonytony Uses of Class com.jgoodies.looks.common.ShadowPopupFactory (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ShadowPopupFactory

No usage of com.jgoodies.looks.common.ShadowPopupFactory



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ExtBasicCheckBoxMenuItemUI.html0000644000175000017500000001425212003555450031520 0ustar tonytony Uses of Class com.jgoodies.looks.common.ExtBasicCheckBoxMenuItemUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ExtBasicCheckBoxMenuItemUI

No usage of com.jgoodies.looks.common.ExtBasicCheckBoxMenuItemUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ComboBoxEditorTextField.html0000644000175000017500000001421412003555450031173 0ustar tonytony Uses of Class com.jgoodies.looks.common.ComboBoxEditorTextField (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ComboBoxEditorTextField

No usage of com.jgoodies.looks.common.ComboBoxEditorTextField



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ShadowPopup.html0000644000175000017500000001402412003555446026760 0ustar tonytony Uses of Class com.jgoodies.looks.common.ShadowPopup (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ShadowPopup

No usage of com.jgoodies.looks.common.ShadowPopup



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/MinimumSizedIcon.html0000644000175000017500000002001612003555446027730 0ustar tonytony Uses of Class com.jgoodies.looks.common.MinimumSizedIcon (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.MinimumSizedIcon

Packages that use MinimumSizedIcon
com.jgoodies.looks.common Contains classes shared by all JGoodies Looks implementations 
 

Uses of MinimumSizedIcon in com.jgoodies.looks.common
 

Subclasses of MinimumSizedIcon in com.jgoodies.looks.common
 class MinimumSizedCheckIcon
          An implementation of the Icon interface that has a minimum size and active border.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ExtBasicRadioButtonMenuItemUI.html0000644000175000017500000002023612003555446032270 0ustar tonytony Uses of Class com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI

Packages that use ExtBasicRadioButtonMenuItemUI
com.jgoodies.looks.common Contains classes shared by all JGoodies Looks implementations 
 

Uses of ExtBasicRadioButtonMenuItemUI in com.jgoodies.looks.common
 

Subclasses of ExtBasicRadioButtonMenuItemUI in com.jgoodies.looks.common
 class ExtBasicCheckBoxMenuItemUI
          Renders aligned JCheckBoxMenuItems.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/MenuItemRenderer.html0000644000175000017500000003035212003555446027723 0ustar tonytony Uses of Class com.jgoodies.looks.common.MenuItemRenderer (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.MenuItemRenderer

Packages that use MenuItemRenderer
com.jgoodies.looks.common Contains classes shared by all JGoodies Looks implementations 
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F 
 

Uses of MenuItemRenderer in com.jgoodies.looks.common
 

Methods in com.jgoodies.looks.common that return MenuItemRenderer
protected  MenuItemRenderer ExtBasicMenuItemUI.createRenderer(JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground)
           
 

Uses of MenuItemRenderer in com.jgoodies.looks.windows
 

Methods in com.jgoodies.looks.windows that return MenuItemRenderer
protected  MenuItemRenderer WindowsMenuItemUI.createRenderer(JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground)
           
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ExtBasicMenuUI.html0000644000175000017500000001771312003555450027277 0ustar tonytony Uses of Class com.jgoodies.looks.common.ExtBasicMenuUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ExtBasicMenuUI

Packages that use ExtBasicMenuUI
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
 

Uses of ExtBasicMenuUI in com.jgoodies.looks.plastic
 

Subclasses of ExtBasicMenuUI in com.jgoodies.looks.plastic
 class PlasticMenuUI
          The JGoodies Plastic look&feel implementation of MenuUI.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/PopupMenuLayout.html0000644000175000017500000001407412003555446027642 0ustar tonytony Uses of Class com.jgoodies.looks.common.PopupMenuLayout (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.PopupMenuLayout

No usage of com.jgoodies.looks.common.PopupMenuLayout



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/RGBGrayFilter.html0000644000175000017500000001405012003555446027111 0ustar tonytony Uses of Class com.jgoodies.looks.common.RGBGrayFilter (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.RGBGrayFilter

No usage of com.jgoodies.looks.common.RGBGrayFilter



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ExtButtonAreaLayout.html0000644000175000017500000001414412003555446030435 0ustar tonytony Uses of Class com.jgoodies.looks.common.ExtButtonAreaLayout (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ExtButtonAreaLayout

No usage of com.jgoodies.looks.common.ExtButtonAreaLayout



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ExtBasicPopupMenuSeparatorUI.html0000644000175000017500000001427612003555446032212 0ustar tonytony Uses of Class com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI

No usage of com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/MenuSelectionProcessor.html0000644000175000017500000001420212003555446031157 0ustar tonytony Uses of Class com.jgoodies.looks.common.MenuSelectionProcessor (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.MenuSelectionProcessor

No usage of com.jgoodies.looks.common.MenuSelectionProcessor



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ExtBasicSpinnerLayout.html0000644000175000017500000001417012003555446030750 0ustar tonytony Uses of Class com.jgoodies.looks.common.ExtBasicSpinnerLayout (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ExtBasicSpinnerLayout

No usage of com.jgoodies.looks.common.ExtBasicSpinnerLayout



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/ExtBasicMenuItemUI.html0000644000175000017500000002410612003555450030110 0ustar tonytony Uses of Class com.jgoodies.looks.common.ExtBasicMenuItemUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.ExtBasicMenuItemUI

Packages that use ExtBasicMenuItemUI
com.jgoodies.looks.common Contains classes shared by all JGoodies Looks implementations 
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F 
 

Uses of ExtBasicMenuItemUI in com.jgoodies.looks.common
 

Subclasses of ExtBasicMenuItemUI in com.jgoodies.looks.common
 class ExtBasicCheckBoxMenuItemUI
          Renders aligned JCheckBoxMenuItems.
 class ExtBasicRadioButtonMenuItemUI
          Renders aligned JRadioButtonMenuItems.
 

Uses of ExtBasicMenuItemUI in com.jgoodies.looks.windows
 

Subclasses of ExtBasicMenuItemUI in com.jgoodies.looks.windows
 class WindowsMenuItemUI
          The JGoodies Windows look&feel implementation of MenuItemUI.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/class-use/MinimumSizedCheckIcon.html0000644000175000017500000001417012003555446030672 0ustar tonytony Uses of Class com.jgoodies.looks.common.MinimumSizedCheckIcon (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.common.MinimumSizedCheckIcon

No usage of com.jgoodies.looks.common.MinimumSizedCheckIcon



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ExtBasicRadioButtonMenuItemUI.html0000644000175000017500000010222312003555446030366 0ustar tonytony ExtBasicRadioButtonMenuItemUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ExtBasicRadioButtonMenuItemUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
                  extended by com.jgoodies.looks.common.ExtBasicMenuItemUI
                      extended by com.jgoodies.looks.common.ExtBasicRadioButtonMenuItemUI
Direct Known Subclasses:
ExtBasicCheckBoxMenuItemUI

public class ExtBasicRadioButtonMenuItemUI
extends ExtBasicMenuItemUI

Renders aligned JRadioButtonMenuItems.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicMenuItemUI
BasicMenuItemUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI
acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground
 
Constructor Summary
ExtBasicRadioButtonMenuItemUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  String getPropertyPrefix()
           
protected  boolean iconBorderEnabled()
           
 void processMouseEvent(JMenuItem item, MouseEvent e, MenuElement[] path, MenuSelectionManager manager)
           
 
Methods inherited from class com.jgoodies.looks.common.ExtBasicMenuItemUI
createRenderer, getPreferredMenuItemSize, installDefaults, paintMenuItem, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI
createMenuDragMouseListener, createMenuKeyListener, createMouseInputListener, createPropertyChangeListener, doClick, getMaximumSize, getMinimumSize, getPath, getPreferredSize, installComponents, installKeyboardActions, installListeners, installUI, paint, paintBackground, paintText, uninstallComponents, uninstallKeyboardActions, uninstallListeners, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtBasicRadioButtonMenuItemUI

public ExtBasicRadioButtonMenuItemUI()
Method Detail

getPropertyPrefix

protected String getPropertyPrefix()
Overrides:
getPropertyPrefix in class BasicMenuItemUI

createUI

public static ComponentUI createUI(JComponent b)

iconBorderEnabled

protected boolean iconBorderEnabled()
Overrides:
iconBorderEnabled in class ExtBasicMenuItemUI

processMouseEvent

public void processMouseEvent(JMenuItem item,
                              MouseEvent e,
                              MenuElement[] path,
                              MenuSelectionManager manager)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/MenuItemRenderer.html0000644000175000017500000005446312003555446026035 0ustar tonytony MenuItemRenderer (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class MenuItemRenderer

java.lang.Object
  extended by com.jgoodies.looks.common.MenuItemRenderer

public class MenuItemRenderer
extends Object

Renders and lays out menu items.

Version:
$Revision: 1.14 $
Author:
Karsten Lentzsch

Field Summary
protected static String HTML_KEY
           
 
Constructor Summary
MenuItemRenderer(JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground)
          Constructs a MenuItemRenderer for the specified menu item and settings.
 
Method Summary
protected  boolean disabledTextHasShadow()
           
 Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
           
protected  boolean isMnemonicHidden()
           
 void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HTML_KEY

protected static final String HTML_KEY
See Also:
Constant Field Values
Constructor Detail

MenuItemRenderer

public MenuItemRenderer(JMenuItem menuItem,
                        boolean iconBorderEnabled,
                        Font acceleratorFont,
                        Color selectionForeground,
                        Color disabledForeground,
                        Color acceleratorForeground,
                        Color acceleratorSelectionForeground)
Constructs a MenuItemRenderer for the specified menu item and settings.

Method Detail

getPreferredMenuItemSize

public Dimension getPreferredMenuItemSize(JComponent c,
                                          Icon checkIcon,
                                          Icon arrowIcon,
                                          int defaultTextIconGap)

paintMenuItem

public void paintMenuItem(Graphics g,
                          JComponent c,
                          Icon checkIcon,
                          Icon arrowIcon,
                          Color background,
                          Color foreground,
                          int defaultTextIconGap)

isMnemonicHidden

protected boolean isMnemonicHidden()

disabledTextHasShadow

protected boolean disabledTextHasShadow()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/package-summary.html0000644000175000017500000003016512003555446025702 0ustar tonytony com.jgoodies.looks.common (JGoodies Looks 2.5 API)

Package com.jgoodies.looks.common

Contains classes shared by all JGoodies Looks implementations

See:
          Description

Class Summary
ComboBoxEditorTextField A text field designed to be used as combo box editor.
ExtBasicCheckBoxMenuItemUI Renders aligned JCheckBoxMenuItems.
ExtBasicMenuItemUI An implementation of MenuItemUI used by the JGoodies Windows and Plastic looks.
ExtBasicMenuUI An implementation of MenuUI used by the JGoodies Windows and Plastic looks.
ExtBasicPopupMenuSeparatorUI Renders the separator in popup and pull-down menus.
ExtBasicRadioButtonMenuItemUI Renders aligned JRadioButtonMenuItems.
ExtBasicSpinnerLayout A simple layout manager for the editor and the next/previous buttons.
ExtButtonAreaLayout Unlike its superclass, this layout uses a minimum button width that complies with Mac and Windows UI style guides.
MenuItemRenderer Renders and lays out menu items.
MenuSelectionProcessor Handles the Alt key to select the first menu in the menu bar - if any.
MinimumSizedCheckIcon An implementation of the Icon interface that has a minimum size and active border.
MinimumSizedIcon An Icon with a minimum size that is read from the UIManager defaultIconSize key.
PopupMenuLayout The JGoodies implementation of a layout manager for Popup menus.
RGBGrayFilter An image filter that turns an icon into a grayscale icon.
ShadowPopup Does all the magic for getting popups with drop shadows.
ShadowPopupFactory The JGoodies Looks implementation of PopupFactory.
 

Package com.jgoodies.looks.common Description

Contains classes shared by all JGoodies Looks implementations.

Related Documentation

For more information see:

See Also:
com.jgoodies.looks, com.jgoodies.looks.plastic, com.jgoodies.looks.plastic.theme, com.jgoodies.looks.windows


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ExtBasicMenuUI.html0000644000175000017500000012132112003555446025374 0ustar tonytony ExtBasicMenuUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ExtBasicMenuUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
                  extended by javax.swing.plaf.basic.BasicMenuUI
                      extended by com.jgoodies.looks.common.ExtBasicMenuUI
Direct Known Subclasses:
PlasticMenuUI

public class ExtBasicMenuUI
extends BasicMenuUI

An implementation of MenuUI used by the JGoodies Windows and Plastic looks. Unlike it's superclass, it aligns submenu items.

Version:
$Revision: 1.12 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicMenuUI
BasicMenuUI.ChangeHandler, BasicMenuUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuUI
changeListener, menuListener
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI
acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground
 
Constructor Summary
ExtBasicMenuUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  Dimension getPreferredMenuItemSize(JComponent c, Icon aCheckIcon, Icon anArrowIcon, int textIconGap)
           
protected  String getPropertyPrefix()
           
protected  void installDefaults()
           
protected  void installListeners()
           
protected  void paintMenuItem(Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap)
           
protected  void uninstallDefaults()
           
protected  void uninstallListeners()
           
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuUI
createChangeListener, createMenuDragMouseListener, createMenuKeyListener, createMenuListener, createMouseInputListener, createPropertyChangeListener, getMaximumSize, installKeyboardActions, setupPostTimer, uninstallKeyboardActions
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI
doClick, getMinimumSize, getPath, getPreferredSize, installComponents, installUI, paint, paintBackground, paintText, uninstallComponents, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtBasicMenuUI

public ExtBasicMenuUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class BasicMenuUI

uninstallDefaults

protected void uninstallDefaults()
Overrides:
uninstallDefaults in class BasicMenuUI

getPropertyPrefix

protected String getPropertyPrefix()
Overrides:
getPropertyPrefix in class BasicMenuUI

getPreferredMenuItemSize

protected Dimension getPreferredMenuItemSize(JComponent c,
                                             Icon aCheckIcon,
                                             Icon anArrowIcon,
                                             int textIconGap)
Overrides:
getPreferredMenuItemSize in class BasicMenuItemUI

paintMenuItem

protected void paintMenuItem(Graphics g,
                             JComponent c,
                             Icon aCheckIcon,
                             Icon anArrowIcon,
                             Color background,
                             Color foreground,
                             int textIconGap)
Overrides:
paintMenuItem in class BasicMenuItemUI

installListeners

protected void installListeners()
Overrides:
installListeners in class BasicMenuUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class BasicMenuUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/PopupMenuLayout.html0000644000175000017500000005145512003555446025747 0ustar tonytony PopupMenuLayout (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class PopupMenuLayout

java.lang.Object
  extended by javax.swing.BoxLayout
      extended by com.jgoodies.looks.common.PopupMenuLayout
All Implemented Interfaces:
LayoutManager, LayoutManager2, Serializable, UIResource

public final class PopupMenuLayout
extends BoxLayout
implements UIResource

The JGoodies implementation of a layout manager for Popup menus. In comparison to the JDK's implementation it flushes the values of the client properties maxTextWidth and maxAccWidth in the method invalidateLayout(Container) and not in the method BoxLayout.preferredLayoutSize(Container).

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Field Summary
 
Fields inherited from class javax.swing.BoxLayout
LINE_AXIS, PAGE_AXIS, X_AXIS, Y_AXIS
 
Constructor Summary
PopupMenuLayout(Container target, int axis)
          Creates a layout manager that will lay out components along the given axis.
 
Method Summary
 void invalidateLayout(Container target)
          Indicates that a child has changed its layout related information, and thus any cached calculations should be flushed.
 
Methods inherited from class javax.swing.BoxLayout
addLayoutComponent, addLayoutComponent, getAxis, getLayoutAlignmentX, getLayoutAlignmentY, getTarget, layoutContainer, maximumLayoutSize, minimumLayoutSize, preferredLayoutSize, removeLayoutComponent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PopupMenuLayout

public PopupMenuLayout(Container target,
                       int axis)
Creates a layout manager that will lay out components along the given axis.

Parameters:
target - the container that needs to be laid out
axis - the axis to lay out components along
Method Detail

invalidateLayout

public void invalidateLayout(Container target)
Indicates that a child has changed its layout related information, and thus any cached calculations should be flushed.

In case the target is an instance of JPopupMenu it flushes the values of the client properties maxTextWidth and maxAccWidth.

Specified by:
invalidateLayout in interface LayoutManager2
Overrides:
invalidateLayout in class BoxLayout
Parameters:
target - the affected container


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/RGBGrayFilter.html0000644000175000017500000006046512003555446025225 0ustar tonytony RGBGrayFilter (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class RGBGrayFilter

java.lang.Object
  extended by java.awt.image.ImageFilter
      extended by java.awt.image.RGBImageFilter
          extended by com.jgoodies.looks.common.RGBGrayFilter
All Implemented Interfaces:
ImageConsumer, Cloneable

public final class RGBGrayFilter
extends RGBImageFilter

An image filter that turns an icon into a grayscale icon. Used by the JGoodies Windows and Plastic L&Fs to create a disabled icon.

The high-resolution gray filter can be disabled globally using Options.setHiResGrayFilterEnabled(boolean); it is enabled by default. The global setting can be overridden per component by setting the client property key Options.HI_RES_DISABLED_ICON_CLIENT_KEY to Boolean.FALSE.

Thanks to Andrej Golovnin for suggesting a simpler filter formula.

Version:
$Revision: 1.13 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class java.awt.image.RGBImageFilter
canFilterIndexColorModel, newmodel, origmodel
 
Fields inherited from class java.awt.image.ImageFilter
consumer
 
Fields inherited from interface java.awt.image.ImageConsumer
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
 
Method Summary
 int filterRGB(int x, int y, int rgb)
          Converts a single input pixel in the default RGB ColorModel to a single gray pixel.
static Icon getDisabledIcon(JComponent component, Icon icon)
          Returns an icon with a disabled appearance.
 
Methods inherited from class java.awt.image.RGBImageFilter
filterIndexColorModel, filterRGBPixels, setColorModel, setPixels, setPixels, substituteColorModel
 
Methods inherited from class java.awt.image.ImageFilter
clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getDisabledIcon

public static Icon getDisabledIcon(JComponent component,
                                   Icon icon)
Returns an icon with a disabled appearance. This method is used to generate a disabled icon when one has not been specified.

Parameters:
component - the component that will display the icon, may be null.
icon - the icon to generate disabled icon from.
Returns:
disabled icon, or null if a suitable icon can not be generated.

filterRGB

public int filterRGB(int x,
                     int y,
                     int rgb)
Converts a single input pixel in the default RGB ColorModel to a single gray pixel.

Specified by:
filterRGB in class RGBImageFilter
Parameters:
x - the horizontal pixel coordinate
y - the vertical pixel coordinate
rgb - the integer pixel representation in the default RGB color model
Returns:
a gray pixel in the default RGB color model.
See Also:
ColorModel.getRGBdefault(), RGBImageFilter.filterRGBPixels(int, int, int, int, int[], int, int)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ExtButtonAreaLayout.html0000644000175000017500000005267512003555446026551 0ustar tonytony ExtButtonAreaLayout (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ExtButtonAreaLayout

java.lang.Object
  extended by javax.swing.plaf.basic.BasicOptionPaneUI.ButtonAreaLayout
      extended by com.jgoodies.looks.common.ExtButtonAreaLayout
All Implemented Interfaces:
LayoutManager

public final class ExtButtonAreaLayout
extends BasicOptionPaneUI.ButtonAreaLayout

Unlike its superclass, this layout uses a minimum button width that complies with Mac and Windows UI style guides.

Version:
$Revision: 1.13 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicOptionPaneUI.ButtonAreaLayout
centersChildren, padding, syncAllWidths
 
Constructor Summary
ExtButtonAreaLayout(boolean syncAllWidths, int padding)
          Constructs an ExtButtonAreaLayout.
 
Method Summary
 void layoutContainer(Container container)
           
 Dimension minimumLayoutSize(Container c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicOptionPaneUI.ButtonAreaLayout
addLayoutComponent, getCentersChildren, getPadding, getSyncAllWidths, preferredLayoutSize, removeLayoutComponent, setCentersChildren, setPadding, setSyncAllWidths
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtButtonAreaLayout

public ExtButtonAreaLayout(boolean syncAllWidths,
                           int padding)
Constructs an ExtButtonAreaLayout.

Parameters:
syncAllWidths - true indicates that all buttons get the same size
padding - the padding between buttons
Method Detail

layoutContainer

public void layoutContainer(Container container)
Specified by:
layoutContainer in interface LayoutManager
Overrides:
layoutContainer in class BasicOptionPaneUI.ButtonAreaLayout

minimumLayoutSize

public Dimension minimumLayoutSize(Container c)
Specified by:
minimumLayoutSize in interface LayoutManager
Overrides:
minimumLayoutSize in class BasicOptionPaneUI.ButtonAreaLayout


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ExtBasicPopupMenuSeparatorUI.html0000644000175000017500000006143312003555446030310 0ustar tonytony ExtBasicPopupMenuSeparatorUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ExtBasicPopupMenuSeparatorUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SeparatorUI
          extended by javax.swing.plaf.basic.BasicSeparatorUI
              extended by javax.swing.plaf.basic.BasicPopupMenuSeparatorUI
                  extended by com.jgoodies.looks.common.ExtBasicPopupMenuSeparatorUI

public final class ExtBasicPopupMenuSeparatorUI
extends BasicPopupMenuSeparatorUI

Renders the separator in popup and pull-down menus. Unlike its superclass we use a setting for the insets and it uses a shared UI delegate.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSeparatorUI
highlight, shadow
 
Constructor Summary
ExtBasicPopupMenuSeparatorUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
 Dimension getPreferredSize(JComponent c)
           
protected  void installDefaults(JSeparator s)
           
 void paint(Graphics g, JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicSeparatorUI
getMaximumSize, getMinimumSize, installListeners, installUI, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtBasicPopupMenuSeparatorUI

public ExtBasicPopupMenuSeparatorUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults(JSeparator s)
Overrides:
installDefaults in class BasicSeparatorUI

paint

public void paint(Graphics g,
                  JComponent c)
Overrides:
paint in class BasicPopupMenuSeparatorUI

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Overrides:
getPreferredSize in class BasicPopupMenuSeparatorUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/MenuSelectionProcessor.html0000644000175000017500000003331112003555446027262 0ustar tonytony MenuSelectionProcessor (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class MenuSelectionProcessor

java.lang.Object
  extended by com.jgoodies.looks.common.MenuSelectionProcessor
All Implemented Interfaces:
KeyEventPostProcessor

public final class MenuSelectionProcessor
extends Object
implements KeyEventPostProcessor

Handles the Alt key to select the first menu in the menu bar - if any. Useful to let non-Windows L&fs like Plastic feel more like Windows.

See Also:
WindowsRootPaneUI

Constructor Summary
MenuSelectionProcessor()
           
 
Method Summary
 boolean postProcessKeyEvent(KeyEvent ev)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MenuSelectionProcessor

public MenuSelectionProcessor()
Method Detail

postProcessKeyEvent

public boolean postProcessKeyEvent(KeyEvent ev)
Specified by:
postProcessKeyEvent in interface KeyEventPostProcessor


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ExtBasicSpinnerLayout.html0000644000175000017500000005000512003555446027046 0ustar tonytony ExtBasicSpinnerLayout (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ExtBasicSpinnerLayout

java.lang.Object
  extended by com.jgoodies.looks.common.ExtBasicSpinnerLayout
All Implemented Interfaces:
LayoutManager

public final class ExtBasicSpinnerLayout
extends Object
implements LayoutManager

A simple layout manager for the editor and the next/previous buttons. See the BasicSpinnerUI javadoc for more information about exactly how the components are arranged.

Version:
$Revision: 1.7 $
Author:
Karsten Lentzsch

Constructor Summary
ExtBasicSpinnerLayout()
           
 
Method Summary
 void addLayoutComponent(String name, Component c)
           
 void layoutContainer(Container parent)
           
 Dimension minimumLayoutSize(Container parent)
           
 Dimension preferredLayoutSize(Container parent)
           
 void removeLayoutComponent(Component c)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtBasicSpinnerLayout

public ExtBasicSpinnerLayout()
Method Detail

addLayoutComponent

public void addLayoutComponent(String name,
                               Component c)
Specified by:
addLayoutComponent in interface LayoutManager

removeLayoutComponent

public void removeLayoutComponent(Component c)
Specified by:
removeLayoutComponent in interface LayoutManager

preferredLayoutSize

public Dimension preferredLayoutSize(Container parent)
Specified by:
preferredLayoutSize in interface LayoutManager

minimumLayoutSize

public Dimension minimumLayoutSize(Container parent)
Specified by:
minimumLayoutSize in interface LayoutManager

layoutContainer

public void layoutContainer(Container parent)
Specified by:
layoutContainer in interface LayoutManager


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/ExtBasicMenuItemUI.html0000644000175000017500000011735212003555446026224 0ustar tonytony ExtBasicMenuItemUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class ExtBasicMenuItemUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
                  extended by com.jgoodies.looks.common.ExtBasicMenuItemUI
Direct Known Subclasses:
ExtBasicRadioButtonMenuItemUI, WindowsMenuItemUI

public class ExtBasicMenuItemUI
extends BasicMenuItemUI

An implementation of MenuItemUI used by the JGoodies Windows and Plastic looks. Unlike it's superclass it aligns menu items, uses a slightly smaller gap between text and icon, which you can override in the UI defaults.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicMenuItemUI
BasicMenuItemUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI
acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground
 
Constructor Summary
ExtBasicMenuItemUI()
           
 
Method Summary
protected  MenuItemRenderer createRenderer(JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground)
           
static ComponentUI createUI(JComponent b)
           
protected  Dimension getPreferredMenuItemSize(JComponent c, Icon aCheckIcon, Icon anArrowIcon, int textIconGap)
           
protected  boolean iconBorderEnabled()
           
protected  void installDefaults()
           
protected  void paintMenuItem(Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap)
           
protected  void uninstallDefaults()
           
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI
createMenuDragMouseListener, createMenuKeyListener, createMouseInputListener, createPropertyChangeListener, doClick, getMaximumSize, getMinimumSize, getPath, getPreferredSize, getPropertyPrefix, installComponents, installKeyboardActions, installListeners, installUI, paint, paintBackground, paintText, uninstallComponents, uninstallKeyboardActions, uninstallListeners, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtBasicMenuItemUI

public ExtBasicMenuItemUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class BasicMenuItemUI

iconBorderEnabled

protected boolean iconBorderEnabled()

uninstallDefaults

protected void uninstallDefaults()
Overrides:
uninstallDefaults in class BasicMenuItemUI

getPreferredMenuItemSize

protected Dimension getPreferredMenuItemSize(JComponent c,
                                             Icon aCheckIcon,
                                             Icon anArrowIcon,
                                             int textIconGap)
Overrides:
getPreferredMenuItemSize in class BasicMenuItemUI

paintMenuItem

protected void paintMenuItem(Graphics g,
                             JComponent c,
                             Icon aCheckIcon,
                             Icon anArrowIcon,
                             Color background,
                             Color foreground,
                             int textIconGap)
Overrides:
paintMenuItem in class BasicMenuItemUI

createRenderer

protected MenuItemRenderer createRenderer(JMenuItem menuItem,
                                          boolean iconBorderEnabled,
                                          Font acceleratorFont,
                                          Color selectionForeground,
                                          Color disabledForeground,
                                          Color acceleratorForeground,
                                          Color acceleratorSelectionForeground)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/common/MinimumSizedCheckIcon.html0000644000175000017500000004025612003555446026777 0ustar tonytony MinimumSizedCheckIcon (JGoodies Looks 2.5 API)

com.jgoodies.looks.common
Class MinimumSizedCheckIcon

java.lang.Object
  extended by com.jgoodies.looks.common.MinimumSizedIcon
      extended by com.jgoodies.looks.common.MinimumSizedCheckIcon
All Implemented Interfaces:
Icon

public final class MinimumSizedCheckIcon
extends MinimumSizedIcon

An implementation of the Icon interface that has a minimum size and active border. The minimum size is read from the UIManager defaultIconSize key.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
MinimumSizedIcon

Constructor Summary
MinimumSizedCheckIcon(Icon icon, JMenuItem menuItem)
           
 
Method Summary
 void paintIcon(Component c, Graphics g, int x, int y)
           
 
Methods inherited from class com.jgoodies.looks.common.MinimumSizedIcon
getIconHeight, getIconWidth
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MinimumSizedCheckIcon

public MinimumSizedCheckIcon(Icon icon,
                             JMenuItem menuItem)
Method Detail

paintIcon

public void paintIcon(Component c,
                      Graphics g,
                      int x,
                      int y)
Specified by:
paintIcon in interface Icon
Overrides:
paintIcon in class MinimumSizedIcon


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/package-use.html0000644000175000017500000002707212003555450023507 0ustar tonytony Uses of Package com.jgoodies.looks (JGoodies Looks 2.5 API)

Uses of Package
com.jgoodies.looks

Packages that use com.jgoodies.looks
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs 
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F 
 

Classes in com.jgoodies.looks used by com.jgoodies.looks
BorderStyle
          Describes the border styles for JMenuBar and JToolBar.
FontPolicy
          Looks up and returns a FontSet.
FontSet
          Returns the Fonts used by a Look&Feel or theme.
HeaderStyle
          Describes the header styles for JMenuBar and JToolBar.
MicroLayout
          Describes the insets and margins used by a Look&Feel or theme.
MicroLayoutPolicy
          Looks up and returns a MicroLayout.
 

Classes in com.jgoodies.looks used by com.jgoodies.looks.plastic
FontPolicy
          Looks up and returns a FontSet.
FontSet
          Returns the Fonts used by a Look&Feel or theme.
MicroLayout
          Describes the insets and margins used by a Look&Feel or theme.
MicroLayoutPolicy
          Looks up and returns a MicroLayout.
 

Classes in com.jgoodies.looks used by com.jgoodies.looks.windows
FontPolicy
          Looks up and returns a FontSet.
MicroLayout
          Describes the insets and margins used by a Look&Feel or theme.
MicroLayoutPolicy
          Looks up and returns a MicroLayout.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/0000755000175000017500000000000012003555450022063 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/Plastic3DLookAndFeel.html0000644000175000017500000012065612003555446026622 0ustar tonytony Plastic3DLookAndFeel (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class Plastic3DLookAndFeel

java.lang.Object
  extended by javax.swing.LookAndFeel
      extended by javax.swing.plaf.basic.BasicLookAndFeel
          extended by javax.swing.plaf.metal.MetalLookAndFeel
              extended by com.jgoodies.looks.plastic.PlasticLookAndFeel
                  extended by com.jgoodies.looks.plastic.Plastic3DLookAndFeel
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
PlasticXPLookAndFeel

public class Plastic3DLookAndFeel
extends PlasticLookAndFeel

Intializes class and component defaults for the JGoodies Plastic3D look&feel.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticLookAndFeel
BORDER_STYLE_KEY, DEFAULT_THEME_KEY, HIGH_CONTRAST_FOCUS_ENABLED_KEY, IS_3D_KEY, TAB_STYLE_DEFAULT_VALUE, TAB_STYLE_KEY, TAB_STYLE_METAL_VALUE
 
Constructor Summary
Plastic3DLookAndFeel()
          Constructs the JGoodies Plastic3D look&feel.
 
Method Summary
 String getDescription()
           
 String getID()
           
 String getName()
           
protected  void initComponentDefaults(UIDefaults table)
          Initializes the Plastic3D component defaults.
protected  boolean is3DEnabled()
           
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticLookAndFeel
createMyDefaultTheme, createTheme, getControl, getControlDarkShadow, getControlHighlight, getDisabledIcon, getFocusColor, getFontPolicy, getHighContrastFocusColorsEnabled, getInstalledThemes, getInternalFrameBorder, getMenuItemBackground, getMenuItemSelectedBackground, getMenuItemSelectedForeground, getMicroLayoutPolicy, getPaletteBorder, getPlasticTheme, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getPrimaryControlShadow, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getTabStyle, getTitleTextColor, getTitleTextFont, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground, initClassDefaults, initialize, initSystemColorDefaults, installDefaultThemes, installTheme, isSelectTextOnKeyboardFocusGained, set3DEnabled, setFontPolicy, setHighContrastFocusColorsEnabled, setMicroLayoutPolicy, setPlasticTheme, setSelectTextOnKeyboardFocusGained, setTabStyle, uninitialize
 
Methods inherited from class javax.swing.plaf.metal.MetalLookAndFeel
createDefaultTheme, getAcceleratorForeground, getAcceleratorSelectedForeground, getBlack, getControlDisabled, getControlInfo, getControlShadow, getControlTextColor, getControlTextFont, getCurrentTheme, getDefaults, getDesktopColor, getDisabledSelectedIcon, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getLayoutStyle, getMenuBackground, getMenuDisabledForeground, getMenuForeground, getMenuSelectedBackground, getMenuSelectedForeground, getMenuTextFont, getSeparatorBackground, getSeparatorForeground, getSubTextFont, getSupportsWindowDecorations, getSystemTextColor, getSystemTextFont, getTextHighlightColor, getUserTextColor, getUserTextFont, getWhite, getWindowBackground, getWindowTitleFont, isNativeLookAndFeel, isSupportedLookAndFeel, provideErrorFeedback, setCurrentTheme
 
Methods inherited from class javax.swing.plaf.basic.BasicLookAndFeel
createAudioAction, getAudioActionMap, loadSystemColors, playSound
 
Methods inherited from class javax.swing.LookAndFeel
getDesktopPropertyValue, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, toString, uninstallBorder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Plastic3DLookAndFeel

public Plastic3DLookAndFeel()
Constructs the JGoodies Plastic3D look&feel.

Method Detail

getID

public String getID()
Overrides:
getID in class PlasticLookAndFeel

getName

public String getName()
Overrides:
getName in class PlasticLookAndFeel

getDescription

public String getDescription()
Overrides:
getDescription in class PlasticLookAndFeel

is3DEnabled

protected boolean is3DEnabled()
Overrides:
is3DEnabled in class PlasticLookAndFeel

initComponentDefaults

protected void initComponentDefaults(UIDefaults table)
Initializes the Plastic3D component defaults.

Overrides:
initComponentDefaults in class PlasticLookAndFeel
Parameters:
table - the UIDefaults table to work with


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticComboBoxUI.html0000644000175000017500000015354312003555446026257 0ustar tonytony PlasticComboBoxUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticComboBoxUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ComboBoxUI
          extended by javax.swing.plaf.basic.BasicComboBoxUI
              extended by javax.swing.plaf.metal.MetalComboBoxUI
                  extended by com.jgoodies.looks.plastic.PlasticComboBoxUI

public class PlasticComboBoxUI
extends MetalComboBoxUI

The JGoodies Plastic Look and Feel implementation of ComboBoxUI. Has the same height as text fields - unless you change the renderer.

Also, this class offers to use the combo's popup prototype display value to compute the popup menu width. This is an optional feature of the JGoodies Plastic L&fs implemented via a client property key.

Version:
$Revision: 1.19 $
Author:
Karsten Lentzsch
See Also:
Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.metal.MetalComboBoxUI
MetalComboBoxUI.MetalComboBoxLayoutManager, MetalComboBoxUI.MetalComboPopup, MetalComboBoxUI.MetalPropertyChangeListener
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicComboBoxUI
BasicComboBoxUI.ComboBoxLayoutManager, BasicComboBoxUI.FocusHandler, BasicComboBoxUI.ItemHandler, BasicComboBoxUI.KeyHandler, BasicComboBoxUI.ListDataHandler, BasicComboBoxUI.PropertyChangeHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicComboBoxUI
arrowButton, cachedMinimumSize, comboBox, currentValuePane, editor, focusListener, hasFocus, isMinimumSizeDirty, itemListener, keyListener, listBox, listDataListener, popup, popupKeyListener, popupMouseListener, popupMouseMotionListener
 
Constructor Summary
PlasticComboBoxUI()
           
 
Method Summary
protected  JButton createArrowButton()
          Creates and answers the arrow button that is to be used in the combo box.
protected  ComboBoxEditor createEditor()
          Creates the editor that is to be used in editable combo boxes.
protected  LayoutManager createLayoutManager()
          Creates a layout manager for managing the components which make up the combo box.
protected  ComboPopup createPopup()
           
 PropertyChangeListener createPropertyChangeListener()
           
protected  ListCellRenderer createRenderer()
          Creates the default renderer that will be used in a non-editiable combo box.
static ComponentUI createUI(JComponent b)
           
 Dimension getMinimumSize(JComponent c)
          The minumum size is the size of the display area plus insets plus the button.
 Dimension getPreferredSize(JComponent c)
          Delegates to #getMinimumSize(Component).
protected  void installListeners()
           
 void installUI(JComponent c)
           
protected  boolean isToolBarComboBox(JComponent c)
          Checks and answers if this combo is in a tool bar.
protected  Rectangle rectangleForCurrentValue()
          Returns the area that is reserved for drawing the currently selected item.
protected  void uninstallListeners()
           
 void update(Graphics g, JComponent c)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalComboBoxUI
configureEditor, editablePropertyChanged, getBaseline, layoutComboBox, paint, paintCurrentValue, paintCurrentValueBackground, removeListeners, unconfigureEditor
 
Methods inherited from class javax.swing.plaf.basic.BasicComboBoxUI
addEditor, configureArrowButton, createFocusListener, createItemListener, createKeyListener, createListDataListener, getAccessibleChild, getAccessibleChildrenCount, getBaselineResizeBehavior, getDefaultSize, getDisplaySize, getInsets, getMaximumSize, installComponents, installDefaults, installKeyboardActions, isFocusTraversable, isNavigationKey, isPopupVisible, removeEditor, selectNextPossibleValue, selectPreviousPossibleValue, setPopupVisible, toggleOpenClose, unconfigureArrowButton, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticComboBoxUI

public PlasticComboBoxUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installUI

public void installUI(JComponent c)
Overrides:
installUI in class BasicComboBoxUI

installListeners

protected void installListeners()
Overrides:
installListeners in class BasicComboBoxUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class BasicComboBoxUI

createArrowButton

protected JButton createArrowButton()
Creates and answers the arrow button that is to be used in the combo box.

Overridden to use a button that can have a pseudo 3D effect.

Overrides:
createArrowButton in class MetalComboBoxUI

createEditor

protected ComboBoxEditor createEditor()
Creates the editor that is to be used in editable combo boxes. This method only gets called if a custom editor has not already been installed in the JComboBox.

Overrides:
createEditor in class MetalComboBoxUI

createLayoutManager

protected LayoutManager createLayoutManager()
Creates a layout manager for managing the components which make up the combo box.

Overriden to use a layout that has a fixed width arrow button.

Overrides:
createLayoutManager in class MetalComboBoxUI
Returns:
an instance of a layout manager

createPopup

protected ComboPopup createPopup()
Overrides:
createPopup in class MetalComboBoxUI

createRenderer

protected ListCellRenderer createRenderer()
Creates the default renderer that will be used in a non-editiable combo box. A default renderer will used only if a renderer has not been explicitly set with setRenderer.

This method differs from the superclass implementation in that it uses an empty border with wider left and right margins of 2 pixels instead of 1.

Overrides:
createRenderer in class BasicComboBoxUI
Returns:
a ListCellRender used for the combo box
See Also:
JComboBox.setRenderer(javax.swing.ListCellRenderer)

getMinimumSize

public Dimension getMinimumSize(JComponent c)
The minumum size is the size of the display area plus insets plus the button.

Overrides:
getMinimumSize in class MetalComboBoxUI

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Delegates to #getMinimumSize(Component). Overridden to return the same result in JDK 1.5 as in JDK 1.4.

Overrides:
getPreferredSize in class BasicComboBoxUI

rectangleForCurrentValue

protected Rectangle rectangleForCurrentValue()
Returns the area that is reserved for drawing the currently selected item.

Overrides:
rectangleForCurrentValue in class BasicComboBoxUI

update

public void update(Graphics g,
                   JComponent c)
Overrides:
update in class ComponentUI

isToolBarComboBox

protected boolean isToolBarComboBox(JComponent c)
Checks and answers if this combo is in a tool bar.

Parameters:
c - the component to check
Returns:
true if in tool bar, false otherwise

createPropertyChangeListener

public PropertyChangeListener createPropertyChangeListener()
Overrides:
createPropertyChangeListener in class MetalComboBoxUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticToolBarUI.html0000644000175000017500000013733712003555446026114 0ustar tonytony PlasticToolBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticToolBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ToolBarUI
          extended by javax.swing.plaf.basic.BasicToolBarUI
              extended by javax.swing.plaf.metal.MetalToolBarUI
                  extended by com.jgoodies.looks.plastic.PlasticToolBarUI
All Implemented Interfaces:
SwingConstants
Direct Known Subclasses:
PlasticXPToolBarUI

public class PlasticToolBarUI
extends MetalToolBarUI

The JGoodies Plastic look and feel implementation of ToolBarUI.

Corrects the rollover borders and can handle optional Border types, as specified by the BorderStyle or HeaderStyle client properties.

Version:
$Revision: 1.12 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.metal.MetalToolBarUI
MetalToolBarUI.MetalContainerListener, MetalToolBarUI.MetalDockingListener, MetalToolBarUI.MetalRolloverListener
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicToolBarUI
BasicToolBarUI.DockingListener, BasicToolBarUI.DragWindow, BasicToolBarUI.FrameListener, BasicToolBarUI.PropertyListener, BasicToolBarUI.ToolBarContListener, BasicToolBarUI.ToolBarFocusListener
 
Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalToolBarUI
contListener, rolloverListener
 
Fields inherited from class javax.swing.plaf.basic.BasicToolBarUI
constraintBeforeFloating, dockingBorderColor, dockingColor, dockingListener, downKey, dragWindow, floatingBorderColor, floatingColor, focusedCompIndex, leftKey, propertyListener, rightKey, toolBar, toolBarContListener, toolBarFocusListener, upKey
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
PlasticToolBarUI()
           
 
Method Summary
protected  Border createRolloverBorder()
           
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults()
          Installs a special border, if indicated by the HeaderStyle.
protected  void installListeners()
           
protected  void setBorderToRollover(Component c)
           
protected  void uninstallListeners()
           
 void update(Graphics g, JComponent c)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalToolBarUI
createContainerListener, createDockingListener, createNonRolloverBorder, createRolloverListener, installUI, setBorderToNonRollover, setDragOffset, uninstallUI
 
Methods inherited from class javax.swing.plaf.basic.BasicToolBarUI
canDock, createDragWindow, createFloatingFrame, createFloatingWindow, createFrameListener, createPropertyListener, createToolBarContListener, createToolBarFocusListener, dragTo, floatAt, getDockingColor, getFloatingColor, getNonRolloverBorder, getRolloverBorder, installComponents, installKeyboardActions, installNonRolloverBorders, installNormalBorders, installRolloverBorders, isFloating, isRolloverBorders, navigateFocusedComp, paintDragWindow, setBorderToNormal, setDockingColor, setFloating, setFloatingColor, setFloatingLocation, setOrientation, setRolloverBorders, uninstallComponents, uninstallDefaults, uninstallKeyboardActions
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, paint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticToolBarUI

public PlasticToolBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createRolloverBorder

protected Border createRolloverBorder()
Overrides:
createRolloverBorder in class MetalToolBarUI

setBorderToRollover

protected void setBorderToRollover(Component c)
Overrides:
setBorderToRollover in class BasicToolBarUI

installDefaults

protected void installDefaults()
Installs a special border, if indicated by the HeaderStyle.

Overrides:
installDefaults in class BasicToolBarUI

installListeners

protected void installListeners()
Overrides:
installListeners in class MetalToolBarUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class MetalToolBarUI

update

public void update(Graphics g,
                   JComponent c)
Overrides:
update in class MetalToolBarUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/package-frame.html0000644000175000017500000001215212003555446025442 0ustar tonytony com.jgoodies.looks.plastic (JGoodies Looks 2.5 API) com.jgoodies.looks.plastic
Classes 
Plastic3DLookAndFeel
PlasticButtonUI
PlasticComboBoxUI
PlasticFileChooserUI
PlasticFormattedTextFieldUI
PlasticInternalFrameTitlePane
PlasticInternalFrameUI
PlasticLookAndFeel
PlasticMenuBarUI
PlasticMenuUI
PlasticOptionPaneUI
PlasticPasswordFieldUI
PlasticPopupMenuUI
PlasticScrollBarUI
PlasticScrollPaneUI
PlasticSeparatorUI
PlasticSpinnerUI
PlasticSplitPaneUI
PlasticTabbedPaneUI
PlasticTextAreaUI
PlasticTextFieldUI
PlasticTheme
PlasticToggleButtonUI
PlasticToolBarSeparatorUI
PlasticToolBarUI
PlasticTreeUI
PlasticUtils
PlasticXPCheckBoxUI
PlasticXPIconFactory
PlasticXPLookAndFeel
PlasticXPRadioButtonUI
PlasticXPSpinnerUI
PlasticXPToolBarUI
PlasticXPUtils
jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticTextFieldUI.html0000644000175000017500000007251212003555446026433 0ustar tonytony PlasticTextFieldUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticTextFieldUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextFieldUI
                  extended by javax.swing.plaf.metal.MetalTextFieldUI
                      extended by com.jgoodies.looks.plastic.PlasticTextFieldUI
All Implemented Interfaces:
ViewFactory

public final class PlasticTextFieldUI
extends MetalTextFieldUI

The JGoodies Plastic L&F implementation of TextFieldUI. In addition to its superclass MetalTextFieldUI, it can use a caret that selects all text when the field gains focus via the keyboard.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
PlasticTextFieldUI()
           
 
Method Summary
protected  Caret createCaret()
          Creates the caret for a field.
static ComponentUI createUI(JComponent c)
          Creates a UI for a JTextField.
 
Methods inherited from class javax.swing.plaf.metal.MetalTextFieldUI
propertyChange
 
Methods inherited from class javax.swing.plaf.basic.BasicTextFieldUI
create, getBaseline, getBaselineResizeBehavior, getPropertyPrefix
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getMinimumSize, getNextVisualPositionFrom, getPreferredSize, getRootView, getToolTipText, getVisibleEditorRect, installDefaults, installKeyboardActions, installListeners, installUI, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticTextFieldUI

public PlasticTextFieldUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JTextField.

Parameters:
c - the text field
Returns:
the UI

createCaret

protected Caret createCaret()
Creates the caret for a field.

Overrides:
createCaret in class BasicTextUI
Returns:
the caret


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticXPCheckBoxUI.html0000644000175000017500000007751512003555446026511 0ustar tonytony PlasticXPCheckBoxUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticXPCheckBoxUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.basic.BasicButtonUI
              extended by javax.swing.plaf.basic.BasicToggleButtonUI
                  extended by javax.swing.plaf.basic.BasicRadioButtonUI
                      extended by javax.swing.plaf.metal.MetalRadioButtonUI
                          extended by javax.swing.plaf.metal.MetalCheckBoxUI
                              extended by com.jgoodies.looks.plastic.PlasticXPCheckBoxUI

public final class PlasticXPCheckBoxUI
extends MetalCheckBoxUI

The JGoodies PlasticXP l&l implementation of CheckBoxUI. Unlike its superclass, it uses a button listener that sets the armed state if the mouse is over.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalRadioButtonUI
disabledTextColor, focusColor, selectColor
 
Fields inherited from class javax.swing.plaf.basic.BasicRadioButtonUI
icon
 
Fields inherited from class javax.swing.plaf.basic.BasicButtonUI
defaultTextIconGap, defaultTextShiftOffset
 
Constructor Summary
PlasticXPCheckBoxUI()
           
 
Method Summary
protected  BasicButtonListener createButtonListener(AbstractButton b)
           
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalCheckBoxUI
getPropertyPrefix, installDefaults, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.metal.MetalRadioButtonUI
getDisabledTextColor, getFocusColor, getSelectColor, paint, paintFocus
 
Methods inherited from class javax.swing.plaf.basic.BasicRadioButtonUI
getDefaultIcon, getPreferredSize
 
Methods inherited from class javax.swing.plaf.basic.BasicToggleButtonUI
getTextShiftOffset, paintIcon
 
Methods inherited from class javax.swing.plaf.basic.BasicButtonUI
clearTextShiftOffset, getBaseline, getBaselineResizeBehavior, getDefaultTextIconGap, getMaximumSize, getMinimumSize, installKeyboardActions, installListeners, installUI, paintButtonPressed, paintFocus, paintIcon, paintText, paintText, setTextShiftOffset, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticXPCheckBoxUI

public PlasticXPCheckBoxUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createButtonListener

protected BasicButtonListener createButtonListener(AbstractButton b)
Overrides:
createButtonListener in class BasicButtonUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticXPLookAndFeel.html0000644000175000017500000012430212003555446026673 0ustar tonytony PlasticXPLookAndFeel (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticXPLookAndFeel

java.lang.Object
  extended by javax.swing.LookAndFeel
      extended by javax.swing.plaf.basic.BasicLookAndFeel
          extended by javax.swing.plaf.metal.MetalLookAndFeel
              extended by com.jgoodies.looks.plastic.PlasticLookAndFeel
                  extended by com.jgoodies.looks.plastic.Plastic3DLookAndFeel
                      extended by com.jgoodies.looks.plastic.PlasticXPLookAndFeel
All Implemented Interfaces:
Serializable

public class PlasticXPLookAndFeel
extends Plastic3DLookAndFeel

Intializes class and component defaults for the JGoodies PlasticXP look&feel.

Version:
$Revision: 1.17 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticLookAndFeel
BORDER_STYLE_KEY, DEFAULT_THEME_KEY, HIGH_CONTRAST_FOCUS_ENABLED_KEY, IS_3D_KEY, TAB_STYLE_DEFAULT_VALUE, TAB_STYLE_KEY, TAB_STYLE_METAL_VALUE
 
Constructor Summary
PlasticXPLookAndFeel()
          Constructs the JGoodies PlasticXP look&feel.
 
Method Summary
 String getDescription()
           
 String getID()
           
 String getName()
           
protected  void initClassDefaults(UIDefaults table)
          Initializes the PlasticXP class defaults.
protected  void initComponentDefaults(UIDefaults table)
          Initializes the PlasticXP component defaults.
 
Methods inherited from class com.jgoodies.looks.plastic.Plastic3DLookAndFeel
is3DEnabled
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticLookAndFeel
createMyDefaultTheme, createTheme, getControl, getControlDarkShadow, getControlHighlight, getDisabledIcon, getFocusColor, getFontPolicy, getHighContrastFocusColorsEnabled, getInstalledThemes, getInternalFrameBorder, getMenuItemBackground, getMenuItemSelectedBackground, getMenuItemSelectedForeground, getMicroLayoutPolicy, getPaletteBorder, getPlasticTheme, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getPrimaryControlShadow, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getTabStyle, getTitleTextColor, getTitleTextFont, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground, initialize, initSystemColorDefaults, installDefaultThemes, installTheme, isSelectTextOnKeyboardFocusGained, set3DEnabled, setFontPolicy, setHighContrastFocusColorsEnabled, setMicroLayoutPolicy, setPlasticTheme, setSelectTextOnKeyboardFocusGained, setTabStyle, uninitialize
 
Methods inherited from class javax.swing.plaf.metal.MetalLookAndFeel
createDefaultTheme, getAcceleratorForeground, getAcceleratorSelectedForeground, getBlack, getControlDisabled, getControlInfo, getControlShadow, getControlTextColor, getControlTextFont, getCurrentTheme, getDefaults, getDesktopColor, getDisabledSelectedIcon, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getLayoutStyle, getMenuBackground, getMenuDisabledForeground, getMenuForeground, getMenuSelectedBackground, getMenuSelectedForeground, getMenuTextFont, getSeparatorBackground, getSeparatorForeground, getSubTextFont, getSupportsWindowDecorations, getSystemTextColor, getSystemTextFont, getTextHighlightColor, getUserTextColor, getUserTextFont, getWhite, getWindowBackground, getWindowTitleFont, isNativeLookAndFeel, isSupportedLookAndFeel, provideErrorFeedback, setCurrentTheme
 
Methods inherited from class javax.swing.plaf.basic.BasicLookAndFeel
createAudioAction, getAudioActionMap, loadSystemColors, playSound
 
Methods inherited from class javax.swing.LookAndFeel
getDesktopPropertyValue, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, toString, uninstallBorder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PlasticXPLookAndFeel

public PlasticXPLookAndFeel()
Constructs the JGoodies PlasticXP look&feel.

Method Detail

getID

public String getID()
Overrides:
getID in class Plastic3DLookAndFeel

getName

public String getName()
Overrides:
getName in class Plastic3DLookAndFeel

getDescription

public String getDescription()
Overrides:
getDescription in class Plastic3DLookAndFeel

initClassDefaults

protected void initClassDefaults(UIDefaults table)
Initializes the PlasticXP class defaults. Overrides the UIS for check box, radio button, and spinner.

Overrides:
initClassDefaults in class PlasticLookAndFeel
Parameters:
table - the UIDefaults table to work with
See Also:
BasicLookAndFeel.getDefaults()

initComponentDefaults

protected void initComponentDefaults(UIDefaults table)
Initializes the PlasticXP component defaults.

Overrides:
initComponentDefaults in class Plastic3DLookAndFeel
Parameters:
table - the UIDefaults table to work with


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticFileChooserUI.html0000644000175000017500000013541112003555446026743 0ustar tonytony PlasticFileChooserUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticFileChooserUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.FileChooserUI
          extended by javax.swing.plaf.basic.BasicFileChooserUI
              extended by javax.swing.plaf.metal.MetalFileChooserUI
                  extended by com.jgoodies.looks.plastic.PlasticFileChooserUI

public final class PlasticFileChooserUI
extends MetalFileChooserUI

The JGoodies Plastic L&F implementation of FileChooserUI. Uses FileSystemView.getSystemIcon(File) to look up icons for files.

Thanks to Andrej Golovnin for his feedback and suggestions.

Version:
$Revision: 1.7 $
Author:
Karsten Lentzsch
See Also:
FileSystemView.getSystemIcon(File)

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.metal.MetalFileChooserUI
MetalFileChooserUI.DirectoryComboBoxAction, MetalFileChooserUI.DirectoryComboBoxModel, MetalFileChooserUI.FileRenderer, MetalFileChooserUI.FilterComboBoxModel, MetalFileChooserUI.FilterComboBoxRenderer, MetalFileChooserUI.SingleClickListener
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicFileChooserUI
BasicFileChooserUI.AcceptAllFileFilter, BasicFileChooserUI.ApproveSelectionAction, BasicFileChooserUI.BasicFileView, BasicFileChooserUI.CancelSelectionAction, BasicFileChooserUI.ChangeToParentDirectoryAction, BasicFileChooserUI.DoubleClickListener, BasicFileChooserUI.GoHomeAction, BasicFileChooserUI.NewFolderAction, BasicFileChooserUI.SelectionListener, BasicFileChooserUI.UpdateAction
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicFileChooserUI
cancelButtonMnemonic, cancelButtonText, cancelButtonToolTipText, computerIcon, detailsViewIcon, directoryIcon, directoryOpenButtonMnemonic, directoryOpenButtonText, directoryOpenButtonToolTipText, fileIcon, floppyDriveIcon, hardDriveIcon, helpButtonMnemonic, helpButtonText, helpButtonToolTipText, homeFolderIcon, listViewIcon, newFolderIcon, openButtonMnemonic, openButtonText, openButtonToolTipText, saveButtonMnemonic, saveButtonText, saveButtonToolTipText, updateButtonMnemonic, updateButtonText, updateButtonToolTipText, upFolderIcon
 
Constructor Summary
PlasticFileChooserUI(JFileChooser fileChooser)
           
 
Method Summary
 void clearIconCache()
           
static ComponentUI createUI(JComponent c)
           
 FileView getFileView(JFileChooser fc)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalFileChooserUI
addControlButtons, createActionMap, createDetailsView, createDirectoryComboBoxModel, createDirectoryComboBoxRenderer, createFilterComboBoxModel, createFilterComboBoxRenderer, createList, createListSelectionListener, createPropertyChangeListener, ensureFileIsVisible, getActionMap, getApproveButton, getBottomPanel, getButtonPanel, getDirectoryName, getFileName, getMaximumSize, getMinimumSize, getPreferredSize, installComponents, installListeners, installStrings, installUI, removeControlButtons, rescanCurrentDirectory, setDirectoryName, setDirectorySelected, setFileName, uninstallComponents, uninstallUI, valueChanged
 
Methods inherited from class javax.swing.plaf.basic.BasicFileChooserUI
createDoubleClickListener, createModel, getAcceptAllFileFilter, getAccessoryPanel, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getApproveSelectionAction, getCancelSelectionAction, getChangeToParentDirectoryAction, getDialogTitle, getDirectory, getFileChooser, getGoHomeAction, getModel, getNewFolderAction, getUpdateAction, installDefaults, installIcons, isDirectorySelected, setDirectory, uninstallDefaults, uninstallIcons, uninstallListeners, uninstallStrings
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticFileChooserUI

public PlasticFileChooserUI(JFileChooser fileChooser)
Method Detail

createUI

public static ComponentUI createUI(JComponent c)

clearIconCache

public void clearIconCache()
Overrides:
clearIconCache in class BasicFileChooserUI

getFileView

public FileView getFileView(JFileChooser fc)
Overrides:
getFileView in class BasicFileChooserUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/package-tree.html0000644000175000017500000007457412003555446025327 0ustar tonytony com.jgoodies.looks.plastic Class Hierarchy (JGoodies Looks 2.5 API)

Hierarchy For Package com.jgoodies.looks.plastic

Package Hierarchies:
All Packages

Class Hierarchy



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticSeparatorUI.html0000644000175000017500000005203112003555446026475 0ustar tonytony PlasticSeparatorUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticSeparatorUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SeparatorUI
          extended by javax.swing.plaf.basic.BasicSeparatorUI
              extended by javax.swing.plaf.metal.MetalSeparatorUI
                  extended by com.jgoodies.looks.plastic.PlasticSeparatorUI

public final class PlasticSeparatorUI
extends MetalSeparatorUI

The JGoodies Plastic L&F implementation of SeparatorUI. It differs from its superclass in that it uses a shared UI delegate.

Thanks to Andrej Golovnin for his feedback and suggestions.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSeparatorUI
highlight, shadow
 
Constructor Summary
PlasticSeparatorUI()
           
 
Method Summary
static ComponentUI createUI(JComponent c)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalSeparatorUI
getPreferredSize, installDefaults, paint
 
Methods inherited from class javax.swing.plaf.basic.BasicSeparatorUI
getMaximumSize, getMinimumSize, installListeners, installUI, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticSeparatorUI

public PlasticSeparatorUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticTextAreaUI.html0000644000175000017500000007373512003555446026270 0ustar tonytony PlasticTextAreaUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticTextAreaUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextAreaUI
                  extended by com.jgoodies.looks.plastic.PlasticTextAreaUI
All Implemented Interfaces:
ViewFactory

public final class PlasticTextAreaUI
extends BasicTextAreaUI

The JGoodies Plastic L&F implementation of TextAreaUI. In addition to its superclass BasicTextAreaUI, it updates the background colors using behavior from BasicTextFieldUI.

Version:
$Revision: 1.11 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
PlasticTextAreaUI()
           
 
Method Summary
static ComponentUI createUI(JComponent c)
          Creates a UI for a JTextArea.
 void installUI(JComponent c)
           
protected  void propertyChange(PropertyChangeEvent evt)
          This method gets called when a bound property is changed on the associated JTextComponent.
 
Methods inherited from class javax.swing.plaf.basic.BasicTextAreaUI
create, getBaseline, getBaselineResizeBehavior, getMinimumSize, getPreferredSize, getPropertyPrefix, installDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createCaret, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getNextVisualPositionFrom, getRootView, getToolTipText, getVisibleEditorRect, installKeyboardActions, installListeners, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticTextAreaUI

public PlasticTextAreaUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JTextArea.

Parameters:
c - the text area
Returns:
the UI

installUI

public void installUI(JComponent c)
Overrides:
installUI in class BasicTextUI

propertyChange

protected void propertyChange(PropertyChangeEvent evt)
This method gets called when a bound property is changed on the associated JTextComponent. In addition to the superclass behavior, this UI updates the background if the editable or enabled property changes .

Overrides:
propertyChange in class BasicTextAreaUI
Parameters:
evt - the property change event


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticScrollPaneUI.html0000644000175000017500000010773712003555446026615 0ustar tonytony PlasticScrollPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticScrollPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ScrollPaneUI
          extended by javax.swing.plaf.basic.BasicScrollPaneUI
              extended by javax.swing.plaf.metal.MetalScrollPaneUI
                  extended by com.jgoodies.looks.plastic.PlasticScrollPaneUI
All Implemented Interfaces:
ScrollPaneConstants

public final class PlasticScrollPaneUI
extends MetalScrollPaneUI

The JGoodies Plastic L&Fl implementation of ScrollPaneUI. Installs an etched border if the client property Options.IS_ETCHED_KEY is set.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
Options.IS_ETCHED_KEY

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicScrollPaneUI
BasicScrollPaneUI.HSBChangeListener, BasicScrollPaneUI.MouseWheelHandler, BasicScrollPaneUI.PropertyChangeHandler, BasicScrollPaneUI.ViewportChangeHandler, BasicScrollPaneUI.VSBChangeListener
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicScrollPaneUI
hsbChangeListener, scrollpane, spPropertyChangeListener, viewportChangeListener, vsbChangeListener
 
Fields inherited from interface javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
Constructor Summary
PlasticScrollPaneUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults(JScrollPane scrollPane)
           
 void installListeners(JScrollPane scrollPane)
           
protected  void uninstallListeners(JComponent c)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalScrollPaneUI
createScrollBarSwapListener, installUI, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.basic.BasicScrollPaneUI
createHSBChangeListener, createMouseWheelListener, createPropertyChangeListener, createViewportChangeListener, createVSBChangeListener, getBaseline, getBaselineResizeBehavior, getMaximumSize, installKeyboardActions, paint, syncScrollPaneWithViewport, uninstallDefaults, uninstallKeyboardActions, updateColumnHeader, updateRowHeader, updateScrollBarDisplayPolicy, updateViewport
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMinimumSize, getPreferredSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticScrollPaneUI

public PlasticScrollPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults(JScrollPane scrollPane)
Overrides:
installDefaults in class BasicScrollPaneUI

installListeners

public void installListeners(JScrollPane scrollPane)
Overrides:
installListeners in class MetalScrollPaneUI

uninstallListeners

protected void uninstallListeners(JComponent c)
Overrides:
uninstallListeners in class BasicScrollPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticScrollBarUI.html0000644000175000017500000014273112003555446026427 0ustar tonytony PlasticScrollBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticScrollBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ScrollBarUI
          extended by javax.swing.plaf.basic.BasicScrollBarUI
              extended by javax.swing.plaf.metal.MetalScrollBarUI
                  extended by com.jgoodies.looks.plastic.PlasticScrollBarUI
All Implemented Interfaces:
LayoutManager, SwingConstants

public final class PlasticScrollBarUI
extends MetalScrollBarUI

The JGoodies Plastic L&F implementation of ScrollBarUI. Can add a pseudo 3D effect and honors the Plastic Option ScrollBar.maxBumpsWidth to limit the with of the scroll bar bumps.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicScrollBarUI
BasicScrollBarUI.ArrowButtonListener, BasicScrollBarUI.ModelListener, BasicScrollBarUI.PropertyChangeHandler, BasicScrollBarUI.ScrollListener, BasicScrollBarUI.TrackListener
 
Field Summary
static String MAX_BUMPS_WIDTH_KEY
           
 
Fields inherited from class javax.swing.plaf.metal.MetalScrollBarUI
decreaseButton, FREE_STANDING_PROP, increaseButton, isFreeStanding, scrollBarWidth
 
Fields inherited from class javax.swing.plaf.basic.BasicScrollBarUI
buttonListener, decrButton, DECREASE_HIGHLIGHT, incrButton, INCREASE_HIGHLIGHT, isDragging, maximumThumbSize, minimumThumbSize, modelListener, NO_HIGHLIGHT, propertyChangeListener, scrollbar, scrollListener, scrollTimer, thumbDarkShadowColor, thumbLightShadowColor, thumbRect, trackColor, trackHighlight, trackHighlightColor, trackListener, trackRect
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
PlasticScrollBarUI()
           
 
Method Summary
protected  void configureScrollBarColors()
           
protected  JButton createDecreaseButton(int orientation)
           
protected  JButton createIncreaseButton(int orientation)
           
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults()
           
protected  void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds)
           
protected  void paintTrack(Graphics g, JComponent c, Rectangle trackBounds)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalScrollBarUI
createPropertyChangeListener, getMinimumThumbSize, getPreferredSize, installListeners, setThumbBounds
 
Methods inherited from class javax.swing.plaf.basic.BasicScrollBarUI
addLayoutComponent, createArrowButtonListener, createModelListener, createScrollListener, createTrackListener, getMaximumSize, getMaximumThumbSize, getSupportsAbsolutePositioning, getThumbBounds, getTrackBounds, installComponents, installKeyboardActions, installUI, isThumbRollover, layoutContainer, layoutHScrollbar, layoutVScrollbar, minimumLayoutSize, paint, paintDecreaseHighlight, paintIncreaseHighlight, preferredLayoutSize, removeLayoutComponent, scrollByBlock, scrollByUnit, setThumbRollover, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMinimumSize, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_BUMPS_WIDTH_KEY

public static final String MAX_BUMPS_WIDTH_KEY
See Also:
Constant Field Values
Constructor Detail

PlasticScrollBarUI

public PlasticScrollBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class MetalScrollBarUI

createDecreaseButton

protected JButton createDecreaseButton(int orientation)
Overrides:
createDecreaseButton in class MetalScrollBarUI

createIncreaseButton

protected JButton createIncreaseButton(int orientation)
Overrides:
createIncreaseButton in class MetalScrollBarUI

configureScrollBarColors

protected void configureScrollBarColors()
Overrides:
configureScrollBarColors in class MetalScrollBarUI

paintTrack

protected void paintTrack(Graphics g,
                          JComponent c,
                          Rectangle trackBounds)
Overrides:
paintTrack in class MetalScrollBarUI

paintThumb

protected void paintThumb(Graphics g,
                          JComponent c,
                          Rectangle thumbBounds)
Overrides:
paintThumb in class MetalScrollBarUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticXPSpinnerUI.html0000644000175000017500000005673112003555446026436 0ustar tonytony PlasticXPSpinnerUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticXPSpinnerUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SpinnerUI
          extended by javax.swing.plaf.basic.BasicSpinnerUI
              extended by com.jgoodies.looks.plastic.PlasticSpinnerUI
                  extended by com.jgoodies.looks.plastic.PlasticXPSpinnerUI

public final class PlasticXPSpinnerUI
extends PlasticSpinnerUI

The JGoodies PlasticXP Look&Feel implementation of SpinnerUI. Configures the default editor to adjust font baselines and component bounds. Also, changes the border of the buttons and the size of the arrows.

Version:
$Revision: 1.11 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSpinnerUI
spinner
 
Constructor Summary
PlasticXPSpinnerUI()
           
 
Method Summary
protected  Component createArrowButton(int direction)
           
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticSpinnerUI
createEditor, createLayout, replaceEditor
 
Methods inherited from class javax.swing.plaf.basic.BasicSpinnerUI
createNextButton, createPreviousButton, createPropertyChangeListener, getBaseline, getBaselineResizeBehavior, installDefaults, installKeyboardActions, installListeners, installNextButtonListeners, installPreviousButtonListeners, installUI, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticXPSpinnerUI

public PlasticXPSpinnerUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createArrowButton

protected Component createArrowButton(int direction)
Overrides:
createArrowButton in class PlasticSpinnerUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticSpinnerUI.html0000644000175000017500000007470112003555446026163 0ustar tonytony PlasticSpinnerUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticSpinnerUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SpinnerUI
          extended by javax.swing.plaf.basic.BasicSpinnerUI
              extended by com.jgoodies.looks.plastic.PlasticSpinnerUI
Direct Known Subclasses:
PlasticXPSpinnerUI

public class PlasticSpinnerUI
extends BasicSpinnerUI

The JGoodies Plastic Look&Feel implementation of SpinnerUI. Configures the default editor to adjust font baselines and component bounds. Also, changes the border of the buttons and the size of the arrows.

Version:
$Revision: 1.13 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSpinnerUI
spinner
 
Constructor Summary
PlasticSpinnerUI()
           
 
Method Summary
protected  Component createArrowButton(int direction)
           
protected  JComponent createEditor()
          This method is called by installUI to get the editor component of the JSpinner.
protected  LayoutManager createLayout()
          Create a LayoutManager that manages the editor, nextButton, and previousButton children of the JSpinner.
static ComponentUI createUI(JComponent b)
           
protected  void replaceEditor(JComponent oldEditor, JComponent newEditor)
          Called by the PropertyChangeListener when the JSpinner editor property changes.
 
Methods inherited from class javax.swing.plaf.basic.BasicSpinnerUI
createNextButton, createPreviousButton, createPropertyChangeListener, getBaseline, getBaselineResizeBehavior, installDefaults, installKeyboardActions, installListeners, installNextButtonListeners, installPreviousButtonListeners, installUI, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticSpinnerUI

public PlasticSpinnerUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createArrowButton

protected Component createArrowButton(int direction)

createLayout

protected LayoutManager createLayout()
Create a LayoutManager that manages the editor, nextButton, and previousButton children of the JSpinner. These three children must be added with a constraint that identifies their role: "Editor", "Next", and "Previous". The default layout manager can handle the absence of any of these children.

Overrides:
createLayout in class BasicSpinnerUI
Returns:
a LayoutManager for the editor, next button, and previous button.
See Also:
BasicSpinnerUI.createNextButton(), BasicSpinnerUI.createPreviousButton(), createEditor()

createEditor

protected JComponent createEditor()
This method is called by installUI to get the editor component of the JSpinner. By default it just returns JSpinner.getEditor(). Subclasses can override createEditor to return a component that contains the spinner's editor or null, if they're going to handle adding the editor to the JSpinner in an installUI override.

Typically this method would be overridden to wrap the editor with a container with a custom border, since one can't assume that the editors border can be set directly.

The replaceEditor method is called when the spinners editor is changed with JSpinner.setEditor. If you've overriden this method, then you'll probably want to override replaceEditor as well.

Overrides:
createEditor in class BasicSpinnerUI
Returns:
the JSpinners editor JComponent, spinner.getEditor() by default
See Also:
BasicSpinnerUI.installUI(javax.swing.JComponent), replaceEditor(javax.swing.JComponent, javax.swing.JComponent), JSpinner.getEditor()

replaceEditor

protected void replaceEditor(JComponent oldEditor,
                             JComponent newEditor)
Called by the PropertyChangeListener when the JSpinner editor property changes. It's the responsibility of this method to remove the old editor and add the new one. By default this operation is just:
 spinner.remove(oldEditor);
 spinner.add(newEditor, "Editor");
 
The implementation of replaceEditor should be coordinated with the createEditor method.

Overrides:
replaceEditor in class BasicSpinnerUI
See Also:
createEditor(), BasicSpinnerUI.createPropertyChangeListener()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/package-use.html0000644000175000017500000002255412003555450025146 0ustar tonytony Uses of Package com.jgoodies.looks.plastic (JGoodies Looks 2.5 API)

Uses of Package
com.jgoodies.looks.plastic

Packages that use com.jgoodies.looks.plastic
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Classes in com.jgoodies.looks.plastic used by com.jgoodies.looks.plastic
Plastic3DLookAndFeel
          Intializes class and component defaults for the JGoodies Plastic3D look&feel.
PlasticLookAndFeel
          The base class for the JGoodies Plastic look&feel family.
PlasticSpinnerUI
          The JGoodies Plastic Look&Feel implementation of SpinnerUI.
PlasticTheme
          Unlike its superclass this theme class has relaxed access.
PlasticToolBarUI
          The JGoodies Plastic look and feel implementation of ToolBarUI.
 

Classes in com.jgoodies.looks.plastic used by com.jgoodies.looks.plastic.theme
PlasticTheme
          Unlike its superclass this theme class has relaxed access.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticToolBarSeparatorUI.html0000644000175000017500000005224712003555446027771 0ustar tonytony PlasticToolBarSeparatorUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticToolBarSeparatorUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SeparatorUI
          extended by javax.swing.plaf.basic.BasicSeparatorUI
              extended by javax.swing.plaf.basic.BasicToolBarSeparatorUI
                  extended by com.jgoodies.looks.plastic.PlasticToolBarSeparatorUI

public final class PlasticToolBarSeparatorUI
extends BasicToolBarSeparatorUI

The JGoodies Plastic L&F implementation of ToolBarSeparatorUI. It differs from its superclass in that it uses a shared UI delegate.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSeparatorUI
highlight, shadow
 
Constructor Summary
PlasticToolBarSeparatorUI()
           
 
Method Summary
static ComponentUI createUI(JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicToolBarSeparatorUI
getPreferredSize, installDefaults, paint
 
Methods inherited from class javax.swing.plaf.basic.BasicSeparatorUI
getMaximumSize, getMinimumSize, installListeners, installUI, uninstallDefaults, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticToolBarSeparatorUI

public PlasticToolBarSeparatorUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticXPIconFactory.html0000644000175000017500000002533012003555446026771 0ustar tonytony PlasticXPIconFactory (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticXPIconFactory

java.lang.Object
  extended by com.jgoodies.looks.plastic.PlasticXPIconFactory

public final class PlasticXPIconFactory
extends Object

Factory class that vends Icons for the JGoodies Plastic XP look&feel. These icons are used extensively in PlasticXP via the defaults mechanism. While other look and feels often use GIFs for icons, creating icons in code facilitates switching to other themes.

Each method in this class returns either an Icon or null, where null implies that there is no default icon.

Version:
$Revision: 1.13 $
Author:
Karsten Lentzsch

Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticMenuUI.html0000644000175000017500000010562012003555446025444 0ustar tonytony PlasticMenuUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticMenuUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
                  extended by javax.swing.plaf.basic.BasicMenuUI
                      extended by com.jgoodies.looks.common.ExtBasicMenuUI
                          extended by com.jgoodies.looks.plastic.PlasticMenuUI

public final class PlasticMenuUI
extends ExtBasicMenuUI

The JGoodies Plastic look&feel implementation of MenuUI. It differs from the superclass in that it uses an overhauled menu rendering an aligmnent system. Furthermore, you can set a client property Options.NO_ICONS_KEY to indicate that this menu has no icons.

Version:
$Revision: 1.14 $
Author:
Karsten Lentzsch
See Also:
Options

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicMenuUI
BasicMenuUI.ChangeHandler, BasicMenuUI.MouseInputHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuUI
changeListener, menuListener
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI
acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground
 
Constructor Summary
PlasticMenuUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults()
           
protected  void paintMenuItem(Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap)
          Makes the item transparent, if it is not a sub menu and the model is not selected.
 
Methods inherited from class com.jgoodies.looks.common.ExtBasicMenuUI
getPreferredMenuItemSize, getPropertyPrefix, installListeners, uninstallDefaults, uninstallListeners
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuUI
createChangeListener, createMenuDragMouseListener, createMenuKeyListener, createMenuListener, createMouseInputListener, createPropertyChangeListener, getMaximumSize, installKeyboardActions, setupPostTimer, uninstallKeyboardActions
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI
doClick, getMinimumSize, getPath, getPreferredSize, installComponents, installUI, paint, paintBackground, paintText, uninstallComponents, uninstallUI, update
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticMenuUI

public PlasticMenuUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class ExtBasicMenuUI

paintMenuItem

protected void paintMenuItem(Graphics g,
                             JComponent c,
                             Icon aCheckIcon,
                             Icon anArrowIcon,
                             Color background,
                             Color foreground,
                             int textIconGap)
Makes the item transparent, if it is not a sub menu and the model is not selected.

Overrides:
paintMenuItem in class ExtBasicMenuUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/0000755000175000017500000000000012003555450023762 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/Plastic3DLookAndFeel.html0000644000175000017500000002011312003555450030477 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.Plastic3DLookAndFeel (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.Plastic3DLookAndFeel

Packages that use Plastic3DLookAndFeel
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
 

Uses of Plastic3DLookAndFeel in com.jgoodies.looks.plastic
 

Subclasses of Plastic3DLookAndFeel in com.jgoodies.looks.plastic
 class PlasticXPLookAndFeel
          Intializes class and component defaults for the JGoodies PlasticXP look&feel.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticComboBoxUI.html0000644000175000017500000001413212003555450030137 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticComboBoxUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticComboBoxUI

No usage of com.jgoodies.looks.plastic.PlasticComboBoxUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticToolBarUI.html0000644000175000017500000002000712003555450027767 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticToolBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticToolBarUI

Packages that use PlasticToolBarUI
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
 

Uses of PlasticToolBarUI in com.jgoodies.looks.plastic
 

Subclasses of PlasticToolBarUI in com.jgoodies.looks.plastic
 class PlasticXPToolBarUI
          The JGoodies PlasticXP Look and Feel implementation of ToolBarUI.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticTextFieldUI.html0000644000175000017500000001414412003555450030322 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticTextFieldUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticTextFieldUI

No usage of com.jgoodies.looks.plastic.PlasticTextFieldUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticXPCheckBoxUI.html0000644000175000017500000001415612003555450030373 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticXPCheckBoxUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticXPCheckBoxUI

No usage of com.jgoodies.looks.plastic.PlasticXPCheckBoxUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticXPLookAndFeel.html0000644000175000017500000001417012003555450030566 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticXPLookAndFeel (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticXPLookAndFeel

No usage of com.jgoodies.looks.plastic.PlasticXPLookAndFeel



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticFileChooserUI.html0000644000175000017500000001417012003555450030633 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticFileChooserUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticFileChooserUI

No usage of com.jgoodies.looks.plastic.PlasticFileChooserUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticSeparatorUI.html0000644000175000017500000001414412003555450030372 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticSeparatorUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticSeparatorUI

No usage of com.jgoodies.looks.plastic.PlasticSeparatorUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticTextAreaUI.html0000644000175000017500000001413212003555450030144 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticTextAreaUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticTextAreaUI

No usage of com.jgoodies.looks.plastic.PlasticTextAreaUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticScrollPaneUI.html0000644000175000017500000001415612003555450030477 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticScrollPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticScrollPaneUI

No usage of com.jgoodies.looks.plastic.PlasticScrollPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticScrollBarUI.html0000644000175000017500000001414412003555450030315 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticScrollBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticScrollBarUI

No usage of com.jgoodies.looks.plastic.PlasticScrollBarUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticXPSpinnerUI.html0000644000175000017500000001414412003555450030320 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticXPSpinnerUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticXPSpinnerUI

No usage of com.jgoodies.looks.plastic.PlasticXPSpinnerUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticSpinnerUI.html0000644000175000017500000002000712003555450030043 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticSpinnerUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticSpinnerUI

Packages that use PlasticSpinnerUI
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
 

Uses of PlasticSpinnerUI in com.jgoodies.looks.plastic
 

Subclasses of PlasticSpinnerUI in com.jgoodies.looks.plastic
 class PlasticXPSpinnerUI
          The JGoodies PlasticXP Look&Feel implementation of SpinnerUI.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticToolBarSeparatorUI.html0000644000175000017500000001425212003555450031655 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticToolBarSeparatorUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticToolBarSeparatorUI

No usage of com.jgoodies.looks.plastic.PlasticToolBarSeparatorUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticXPIconFactory.html0000644000175000017500000001417012003555450030663 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticXPIconFactory (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticXPIconFactory

No usage of com.jgoodies.looks.plastic.PlasticXPIconFactory



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticMenuUI.html0000644000175000017500000001406212003555450027335 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticMenuUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticMenuUI

No usage of com.jgoodies.looks.plastic.PlasticMenuUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticXPUtils.html0000644000175000017500000001407412003555450027546 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticXPUtils (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticXPUtils

No usage of com.jgoodies.looks.plastic.PlasticXPUtils



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticInternalFrameTitlePane.htmljgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticInternalFrameTitlePane.htm0000644000175000017500000001432212003555450032353 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane

No usage of com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticInternalFrameUI.html0000644000175000017500000001421412003555450031157 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticInternalFrameUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticInternalFrameUI

No usage of com.jgoodies.looks.plastic.PlasticInternalFrameUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticXPRadioButtonUI.html0000644000175000017500000001421412003555450031132 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticXPRadioButtonUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticXPRadioButtonUI

No usage of com.jgoodies.looks.plastic.PlasticXPRadioButtonUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticTreeUI.html0000644000175000017500000001406212003555450027330 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticTreeUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticTreeUI

No usage of com.jgoodies.looks.plastic.PlasticTreeUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticXPToolBarUI.html0000644000175000017500000001414412003555450030244 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticXPToolBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticXPToolBarUI

No usage of com.jgoodies.looks.plastic.PlasticXPToolBarUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticOptionPaneUI.html0000644000175000017500000001415612003555450030511 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticOptionPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticOptionPaneUI

No usage of com.jgoodies.looks.plastic.PlasticOptionPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticMenuBarUI.html0000644000175000017500000001412012003555450027755 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticMenuBarUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticMenuBarUI

No usage of com.jgoodies.looks.plastic.PlasticMenuBarUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticTheme.html0000644000175000017500000005364112003555450027243 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticTheme (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticTheme

Packages that use PlasticTheme
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Uses of PlasticTheme in com.jgoodies.looks.plastic
 

Methods in com.jgoodies.looks.plastic that return PlasticTheme
static PlasticTheme PlasticLookAndFeel.createMyDefaultTheme()
          Creates and returns the default color theme.
protected static PlasticTheme PlasticLookAndFeel.createTheme(String themeName)
          Creates and returns a color theme from the specified theme name.
static PlasticTheme PlasticLookAndFeel.getPlasticTheme()
          Lazily initializes and returns the PlasticTheme.
 

Methods in com.jgoodies.looks.plastic with parameters of type PlasticTheme
static void PlasticLookAndFeel.installTheme(PlasticTheme theme)
          Installs a color theme.
static void PlasticLookAndFeel.setPlasticTheme(PlasticTheme theme)
          Sets the theme for colors and fonts used by the Plastic L&F.
 

Uses of PlasticTheme in com.jgoodies.looks.plastic.theme
 

Subclasses of PlasticTheme in com.jgoodies.looks.plastic.theme
 class AbstractSkyTheme
          A theme with low saturated blue primary colors and a light gray window background.
 class BrownSugar
          An inverted theme with light foreground colors and a dark brown window background.
 class DarkStar
          An inverted theme with light foreground colors and a black window background.
 class DesertBlue
          A theme with low saturated blue primary colors and a light brown window background.
 class DesertBluer
          A theme with medium saturated blue primary colors and a light brown window background.
 class DesertGreen
          A theme with low saturated green primary colors and a light brown window background.
 class DesertRed
          A theme with low saturated red primary colors and a light brown window background.
 class DesertYellow
          A theme with low saturated yellow primary colors and a light brown window background.
 class ExperienceBlue
          A theme with low saturated blue primary colors and a light brown window background.
 class ExperienceGreen
          A theme with low saturated green primary colors and a light brown window background.
 class ExperienceRoyale
          A theme with low saturated blue primary colors and a light gray/blueish window background.
 class InvertedColorTheme
          The abstract superclass of all inverted Plastic themes, that have light foreground and dark window background colors.
 class LightGray
          A very light color theme intended to be used on Windows Vista in Aero style.
 class Silver
          A completely gray or silver theme that has been optimized to work in Windows XP environments.
 class SkyBlue
          A theme with low saturated blue primary colors and a light gray window background.
 class SkyBluer
          A theme with medium blue primary colors and a light gray window background.
 class SkyGreen
          A theme with low saturated green primary colors and a light gray window background.
 class SkyKrupp
          A theme with metal blue primary colors and a light gray window background.
 class SkyPink
          A theme with pink foreground and a light gray window background color.
 class SkyRed
          A theme with low saturated red primary colors and a light gray window background.
 class SkyYellow
          A theme with yellow primary colors and a light gray window background.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticToggleButtonUI.html0000644000175000017500000001420212003555450031042 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticToggleButtonUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticToggleButtonUI

No usage of com.jgoodies.looks.plastic.PlasticToggleButtonUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticPopupMenuUI.html0000644000175000017500000001414412003555450030362 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticPopupMenuUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticPopupMenuUI

No usage of com.jgoodies.looks.plastic.PlasticPopupMenuUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticButtonUI.html0000644000175000017500000001410612003555450027703 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticButtonUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticButtonUI

No usage of com.jgoodies.looks.plastic.PlasticButtonUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticUtils.html0000644000175000017500000001405012003555450027270 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticUtils (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticUtils

No usage of com.jgoodies.looks.plastic.PlasticUtils



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticLookAndFeel.html0000644000175000017500000002101312003555450030310 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticLookAndFeel (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticLookAndFeel

Packages that use PlasticLookAndFeel
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
 

Uses of PlasticLookAndFeel in com.jgoodies.looks.plastic
 

Subclasses of PlasticLookAndFeel in com.jgoodies.looks.plastic
 class Plastic3DLookAndFeel
          Intializes class and component defaults for the JGoodies Plastic3D look&feel.
 class PlasticXPLookAndFeel
          Intializes class and component defaults for the JGoodies PlasticXP look&feel.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticTabbedPaneUI.html0000644000175000017500000001415612003555450030422 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticTabbedPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticTabbedPaneUI

No usage of com.jgoodies.looks.plastic.PlasticTabbedPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticPasswordFieldUI.html0000644000175000017500000001421412003555450031176 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticPasswordFieldUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticPasswordFieldUI

No usage of com.jgoodies.looks.plastic.PlasticPasswordFieldUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticFormattedTextFieldUI.html0000644000175000017500000001427612003555450032176 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticFormattedTextFieldUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticFormattedTextFieldUI

No usage of com.jgoodies.looks.plastic.PlasticFormattedTextFieldUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/class-use/PlasticSplitPaneUI.html0000644000175000017500000001414412003555450030331 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.PlasticSplitPaneUI (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.PlasticSplitPaneUI

No usage of com.jgoodies.looks.plastic.PlasticSplitPaneUI



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticXPUtils.html0000644000175000017500000003162112003555446025651 0ustar tonytony PlasticXPUtils (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticXPUtils

java.lang.Object
  extended by com.jgoodies.looks.plastic.PlasticXPUtils

public final class PlasticXPUtils
extends Object

Consists exclusively of static methods that provide convenience behavior.

Version:
$Revision: 1.5 $
Author:
Karsten Lentzsch

Method Summary
static void drawButtonBorder(Graphics g, int x, int y, int w, int h, Color backgroundColor, Color edgeColor, Color cornerColor)
          Draws a button border for an xp button with the given colors.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

drawButtonBorder

public static void drawButtonBorder(Graphics g,
                                    int x,
                                    int y,
                                    int w,
                                    int h,
                                    Color backgroundColor,
                                    Color edgeColor,
                                    Color cornerColor)
Draws a button border for an xp button with the given colors.



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticInternalFrameTitlePane.html0000644000175000017500000033417012003555446030643 0ustar tonytony PlasticInternalFrameTitlePane (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticInternalFrameTitlePane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.plaf.basic.BasicInternalFrameTitlePane
                  extended by javax.swing.plaf.metal.MetalInternalFrameTitlePane
                      extended by com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable

public final class PlasticInternalFrameTitlePane
extends MetalInternalFrameTitlePane

Paints the internal frame title. Uses JGoodies Plastic colors.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicInternalFrameTitlePane
BasicInternalFrameTitlePane.CloseAction, BasicInternalFrameTitlePane.IconifyAction, BasicInternalFrameTitlePane.MaximizeAction, BasicInternalFrameTitlePane.MoveAction, BasicInternalFrameTitlePane.PropertyChangeHandler, BasicInternalFrameTitlePane.RestoreAction, BasicInternalFrameTitlePane.SizeAction, BasicInternalFrameTitlePane.SystemMenuBar, BasicInternalFrameTitlePane.TitlePaneLayout
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalInternalFrameTitlePane
isPalette, paletteCloseIcon, paletteTitleHeight
 
Fields inherited from class javax.swing.plaf.basic.BasicInternalFrameTitlePane
CLOSE_CMD, closeAction, closeButton, closeIcon, frame, iconButton, iconIcon, ICONIFY_CMD, iconifyAction, maxButton, maxIcon, MAXIMIZE_CMD, maximizeAction, menuBar, minIcon, MOVE_CMD, moveAction, notSelectedTextColor, notSelectedTitleColor, propertyChangeListener, RESTORE_CMD, restoreAction, selectedTextColor, selectedTitleColor, SIZE_CMD, sizeAction, windowMenu
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PlasticInternalFrameTitlePane(JInternalFrame frame)
           
 
Method Summary
protected  String getTitle(String text, FontMetrics fm, int availTextWidth)
           
 void paintComponent(Graphics g)
           
 void paintPalette(Graphics g)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalInternalFrameTitlePane
addNotify, addSubComponents, addSystemMenuItems, assembleSystemMenu, createButtons, createLayout, createPropertyChangeListener, installDefaults, setPalette, showSystemMenu, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicInternalFrameTitlePane
createActions, createSystemMenu, createSystemMenuBar, enableActions, installListeners, installTitlePane, paintTitleBackground, postClosingEvent, setButtonIcons, uninstallListeners
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PlasticInternalFrameTitlePane

public PlasticInternalFrameTitlePane(JInternalFrame frame)
Method Detail

paintPalette

public void paintPalette(Graphics g)
Overrides:
paintPalette in class MetalInternalFrameTitlePane

paintComponent

public void paintComponent(Graphics g)
Overrides:
paintComponent in class MetalInternalFrameTitlePane

getTitle

protected String getTitle(String text,
                          FontMetrics fm,
                          int availTextWidth)
Overrides:
getTitle in class BasicInternalFrameTitlePane


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/package-summary.html0000644000175000017500000004311312003555446026046 0ustar tonytony com.jgoodies.looks.plastic (JGoodies Looks 2.5 API)

Package com.jgoodies.looks.plastic

Contains the classes for the JGoodies Plastic L&Fs

See:
          Description

Class Summary
Plastic3DLookAndFeel Intializes class and component defaults for the JGoodies Plastic3D look&feel.
PlasticButtonUI The JGoodies Plastic L&F implementation of ButtonUI.
PlasticComboBoxUI The JGoodies Plastic Look and Feel implementation of ComboBoxUI.
PlasticFileChooserUI The JGoodies Plastic L&F implementation of FileChooserUI.
PlasticFormattedTextFieldUI The JGoodies Plastic L&F implementation of TextFieldUI.
PlasticInternalFrameTitlePane Paints the internal frame title.
PlasticInternalFrameUI The JGoodies Plastic Look and Feel implementation of InternalFrameUI.
PlasticLookAndFeel The base class for the JGoodies Plastic look&feel family.
PlasticMenuBarUI The JGoodies Plastic look and feel implemenation of MenuBarUI.
PlasticMenuUI The JGoodies Plastic look&feel implementation of MenuUI.
PlasticOptionPaneUI The JGoodies Plastic Look&Feel implementation of OptionPaneUI.
PlasticPasswordFieldUI The JGoodies PlasticXP Look&Feel implementation of a password field UI delegate.
PlasticPopupMenuUI The JGoodies Plastic look&feel implementation of PopMenuUI.
PlasticScrollBarUI The JGoodies Plastic L&F implementation of ScrollBarUI.
PlasticScrollPaneUI The JGoodies Plastic L&Fl implementation of ScrollPaneUI.
PlasticSeparatorUI The JGoodies Plastic L&F implementation of SeparatorUI.
PlasticSpinnerUI The JGoodies Plastic Look&Feel implementation of SpinnerUI.
PlasticSplitPaneUI The JGoodies Plastic L&F implementation of SplitPaneUI.
PlasticTabbedPaneUI The JGoodies Plastic Look&Feel implementation of TabbedPaneUI.
PlasticTextAreaUI The JGoodies Plastic L&F implementation of TextAreaUI.
PlasticTextFieldUI The JGoodies Plastic L&F implementation of TextFieldUI.
PlasticTheme Unlike its superclass this theme class has relaxed access.
PlasticToggleButtonUI The JGoodies Plastic L&F implementation of ToggleButtonUI.
PlasticToolBarSeparatorUI The JGoodies Plastic L&F implementation of ToolBarSeparatorUI.
PlasticToolBarUI The JGoodies Plastic look and feel implementation of ToolBarUI.
PlasticTreeUI The JGoodies Plastic Look&Feel implementation of TreeUI.
PlasticUtils Consists exclusively of static methods that provide convenience behavior.
PlasticXPCheckBoxUI The JGoodies PlasticXP l&l implementation of CheckBoxUI.
PlasticXPIconFactory Factory class that vends Icons for the JGoodies Plastic XP look&feel.
PlasticXPLookAndFeel Intializes class and component defaults for the JGoodies PlasticXP look&feel.
PlasticXPRadioButtonUI The JGoodies PlasticXP L&F implementation of RadioButtonUI.
PlasticXPSpinnerUI The JGoodies PlasticXP Look&Feel implementation of SpinnerUI.
PlasticXPToolBarUI The JGoodies PlasticXP Look and Feel implementation of ToolBarUI.
PlasticXPUtils Consists exclusively of static methods that provide convenience behavior.
 

Package com.jgoodies.looks.plastic Description

Contains the classes for the JGoodies Plastic L&Fs.

Related Documentation

For more information see:

See Also:
com.jgoodies.looks, com.jgoodies.looks.common, com.jgoodies.looks.plastic.theme, com.jgoodies.looks.windows


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticInternalFrameUI.html0000644000175000017500000012465412003555446027277 0ustar tonytony PlasticInternalFrameUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticInternalFrameUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.InternalFrameUI
          extended by javax.swing.plaf.basic.BasicInternalFrameUI
              extended by com.jgoodies.looks.plastic.PlasticInternalFrameUI

public class PlasticInternalFrameUI
extends BasicInternalFrameUI

The JGoodies Plastic Look and Feel implementation of InternalFrameUI.

Uses a PlasticInternalFrameTitlePane that in turn uses PlasticTheme colors.

Although this class is not intended for subclassing, there's no final marker. If you extend this class, carefully obey all explicit and implicit constraints made in this class and its superclasses.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicInternalFrameUI
BasicInternalFrameUI.BasicInternalFrameListener, BasicInternalFrameUI.BorderListener, BasicInternalFrameUI.ComponentHandler, BasicInternalFrameUI.GlassPaneDispatcher, BasicInternalFrameUI.InternalFrameLayout, BasicInternalFrameUI.InternalFramePropertyChangeListener
 
Field Summary
static String IS_PALETTE
           
 
Fields inherited from class javax.swing.plaf.basic.BasicInternalFrameUI
borderListener, componentListener, eastPane, frame, glassPaneDispatcher, internalFrameLayout, northPane, openMenuKey, propertyChangeListener, southPane, westPane
 
Constructor Summary
PlasticInternalFrameUI(JInternalFrame b)
           
 
Method Summary
protected  JComponent createNorthPane(JInternalFrame w)
           
static ComponentUI createUI(JComponent c)
           
protected  void installDefaults()
           
protected  void installKeyboardActions()
           
 void installUI(JComponent c)
           
 void setPalette(boolean isPalette)
           
protected  void uninstallKeyboardActions()
           
 void uninstallUI(JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicInternalFrameUI
activateFrame, closeFrame, createBorderListener, createComponentListener, createDesktopManager, createEastPane, createGlassPaneDispatcher, createInternalFrameListener, createLayoutManager, createPropertyChangeListener, createSouthPane, createWestPane, deactivateFrame, deiconifyFrame, deinstallMouseHandlers, getDesktopManager, getEastPane, getMaximumSize, getMinimumSize, getNorthPane, getPreferredSize, getSouthPane, getWestPane, iconifyFrame, installComponents, installListeners, installMouseHandlers, isKeyBindingActive, isKeyBindingRegistered, maximizeFrame, minimizeFrame, replacePane, setEastPane, setKeyBindingActive, setKeyBindingRegistered, setNorthPane, setSouthPane, setupMenuCloseKey, setupMenuOpenKey, setWestPane, uninstallComponents, uninstallDefaults, uninstallListeners
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IS_PALETTE

public static final String IS_PALETTE
See Also:
Constant Field Values
Constructor Detail

PlasticInternalFrameUI

public PlasticInternalFrameUI(JInternalFrame b)
Method Detail

createUI

public static ComponentUI createUI(JComponent c)

installUI

public void installUI(JComponent c)
Overrides:
installUI in class BasicInternalFrameUI

uninstallUI

public void uninstallUI(JComponent c)
Overrides:
uninstallUI in class BasicInternalFrameUI

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class BasicInternalFrameUI

installKeyboardActions

protected void installKeyboardActions()
Overrides:
installKeyboardActions in class BasicInternalFrameUI

uninstallKeyboardActions

protected void uninstallKeyboardActions()
Overrides:
uninstallKeyboardActions in class BasicInternalFrameUI

createNorthPane

protected JComponent createNorthPane(JInternalFrame w)
Overrides:
createNorthPane in class BasicInternalFrameUI

setPalette

public void setPalette(boolean isPalette)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticXPRadioButtonUI.html0000644000175000017500000007607212003555446027252 0ustar tonytony PlasticXPRadioButtonUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticXPRadioButtonUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.basic.BasicButtonUI
              extended by javax.swing.plaf.basic.BasicToggleButtonUI
                  extended by javax.swing.plaf.basic.BasicRadioButtonUI
                      extended by javax.swing.plaf.metal.MetalRadioButtonUI
                          extended by com.jgoodies.looks.plastic.PlasticXPRadioButtonUI

public final class PlasticXPRadioButtonUI
extends MetalRadioButtonUI

The JGoodies PlasticXP L&F implementation of RadioButtonUI. It differs from its superclass in that it uses a different icon and has an active border that changes when the mouse is over.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalRadioButtonUI
disabledTextColor, focusColor, selectColor
 
Fields inherited from class javax.swing.plaf.basic.BasicRadioButtonUI
icon
 
Fields inherited from class javax.swing.plaf.basic.BasicButtonUI
defaultTextIconGap, defaultTextShiftOffset
 
Constructor Summary
PlasticXPRadioButtonUI()
           
 
Method Summary
protected  BasicButtonListener createButtonListener(AbstractButton b)
           
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalRadioButtonUI
getDisabledTextColor, getFocusColor, getSelectColor, installDefaults, paint, paintFocus, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicRadioButtonUI
getDefaultIcon, getPreferredSize, getPropertyPrefix
 
Methods inherited from class javax.swing.plaf.basic.BasicToggleButtonUI
getTextShiftOffset, paintIcon
 
Methods inherited from class javax.swing.plaf.basic.BasicButtonUI
clearTextShiftOffset, getBaseline, getBaselineResizeBehavior, getDefaultTextIconGap, getMaximumSize, getMinimumSize, installKeyboardActions, installListeners, installUI, paintButtonPressed, paintFocus, paintIcon, paintText, paintText, setTextShiftOffset, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticXPRadioButtonUI

public PlasticXPRadioButtonUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createButtonListener

protected BasicButtonListener createButtonListener(AbstractButton b)
Overrides:
createButtonListener in class BasicButtonUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticTreeUI.html0000644000175000017500000017252712003555446025451 0ustar tonytony PlasticTreeUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticTreeUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TreeUI
          extended by javax.swing.plaf.basic.BasicTreeUI
              extended by com.jgoodies.looks.plastic.PlasticTreeUI

public final class PlasticTreeUI
extends BasicTreeUI

The JGoodies Plastic Look&Feel implementation of TreeUI. It provides two line styles: angled dashed lines, or no lines at all. By default, lines are drawn.

You can change the line style by setting a client property. The property key and values are a subset of the values used by the Metal L&F tree. To hide lines use one of the following:

 JTree tree1 = new JTree();
 tree1.putClientProperty("JTree.lineStyle", "None");

 JTree tree2 = new JTree();
 tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
                         Options.TREE_LINE_STYLE_NONE_VALUE);
 
Although lines are shown by default, you could code:
 JTree tree1 = new JTree();
 tree1.putClientProperty("JTree.lineStyle", "Angled");

 JTree tree2 = new JTree();
 tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
                         Options.TREE_LINE_STYLE_ANGLED_VALUE);
 

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTreeUI
BasicTreeUI.CellEditorHandler, BasicTreeUI.ComponentHandler, BasicTreeUI.FocusHandler, BasicTreeUI.KeyHandler, BasicTreeUI.MouseHandler, BasicTreeUI.MouseInputHandler, BasicTreeUI.NodeDimensionsHandler, BasicTreeUI.PropertyChangeHandler, BasicTreeUI.SelectionModelPropertyChangeHandler, BasicTreeUI.TreeCancelEditingAction, BasicTreeUI.TreeExpansionHandler, BasicTreeUI.TreeHomeAction, BasicTreeUI.TreeIncrementAction, BasicTreeUI.TreeModelHandler, BasicTreeUI.TreePageAction, BasicTreeUI.TreeSelectionHandler, BasicTreeUI.TreeToggleAction, BasicTreeUI.TreeTraverseAction
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicTreeUI
cellEditor, collapsedIcon, createdCellEditor, createdRenderer, currentCellRenderer, depthOffset, drawingCache, editingComponent, editingPath, editingRow, editorHasDifferentSize, expandedIcon, largeModel, lastSelectedRow, leftChildIndent, nodeDimensions, preferredMinSize, preferredSize, rendererPane, rightChildIndent, stopEditingInCompleteEditing, totalChildIndent, tree, treeModel, treeSelectionModel, treeState, validCachedPreferredSize
 
Constructor Summary
PlasticTreeUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y)
           
 void installUI(JComponent c)
           
protected  void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right)
           
protected  void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom)
           
 void uninstallUI(JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicTreeUI
cancelEditing, checkForClickInExpandControl, completeEditing, completeEditing, completeUIInstall, completeUIUninstall, configureLayoutCache, createCellEditorListener, createCellRendererPane, createComponentListener, createDefaultCellEditor, createDefaultCellRenderer, createFocusListener, createKeyListener, createLayoutCache, createMouseListener, createNodeDimensions, createPropertyChangeListener, createSelectionModelPropertyChangeListener, createTreeExpansionListener, createTreeModelListener, createTreeSelectionListener, drawDashedHorizontalLine, drawDashedVerticalLine, ensureRowsAreVisible, getBaseline, getBaselineResizeBehavior, getCellEditor, getCellRenderer, getClosestPathForLocation, getCollapsedIcon, getEditingPath, getExpandedIcon, getHashColor, getHorizontalLegBuffer, getLastChildPath, getLeftChildIndent, getMaximumSize, getMinimumSize, getModel, getPathBounds, getPathForRow, getPreferredMinSize, getPreferredSize, getPreferredSize, getRightChildIndent, getRowCount, getRowForPath, getRowHeight, getRowX, getSelectionModel, getShowsRootHandles, getVerticalLegBuffer, handleExpandControlClick, installComponents, installDefaults, installKeyboardActions, installListeners, isEditable, isEditing, isLargeModel, isLeaf, isLocationInExpandControl, isMultiSelectEvent, isRootVisible, isToggleEvent, isToggleSelectionEvent, paint, paintExpandControl, paintHorizontalPartOfLeg, paintRow, paintVerticalPartOfLeg, pathWasCollapsed, pathWasExpanded, prepareForUIInstall, prepareForUIUninstall, selectPathForEvent, setCellEditor, setCellRenderer, setCollapsedIcon, setEditable, setExpandedIcon, setHashColor, setLargeModel, setLeftChildIndent, setModel, setPreferredMinSize, setRightChildIndent, setRootVisible, setRowHeight, setSelectionModel, setShowsRootHandles, shouldPaintExpandControl, startEditing, startEditingAtPath, stopEditing, toggleExpandState, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, updateCachedPreferredSize, updateCellEditor, updateDepthOffset, updateExpandedDescendants, updateLayoutCacheExpandedNodes, updateRenderer, updateSize
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticTreeUI

public PlasticTreeUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installUI

public void installUI(JComponent c)
Overrides:
installUI in class BasicTreeUI

uninstallUI

public void uninstallUI(JComponent c)
Overrides:
uninstallUI in class BasicTreeUI

paintVerticalLine

protected void paintVerticalLine(Graphics g,
                                 JComponent c,
                                 int x,
                                 int top,
                                 int bottom)
Overrides:
paintVerticalLine in class BasicTreeUI

paintHorizontalLine

protected void paintHorizontalLine(Graphics g,
                                   JComponent c,
                                   int y,
                                   int left,
                                   int right)
Overrides:
paintHorizontalLine in class BasicTreeUI

drawCentered

protected void drawCentered(Component c,
                            Graphics graphics,
                            Icon icon,
                            int x,
                            int y)
Overrides:
drawCentered in class BasicTreeUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticXPToolBarUI.html0000644000175000017500000012464212003555446026357 0ustar tonytony PlasticXPToolBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticXPToolBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ToolBarUI
          extended by javax.swing.plaf.basic.BasicToolBarUI
              extended by javax.swing.plaf.metal.MetalToolBarUI
                  extended by com.jgoodies.looks.plastic.PlasticToolBarUI
                      extended by com.jgoodies.looks.plastic.PlasticXPToolBarUI
All Implemented Interfaces:
SwingConstants

public final class PlasticXPToolBarUI
extends PlasticToolBarUI

The JGoodies PlasticXP Look and Feel implementation of ToolBarUI. It differs from its superclass in that it uses rollover borders with rounded corners.

Thanks to Andrej Golovnin for his feedback and suggestions.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.metal.MetalToolBarUI
MetalToolBarUI.MetalContainerListener, MetalToolBarUI.MetalDockingListener, MetalToolBarUI.MetalRolloverListener
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicToolBarUI
BasicToolBarUI.DockingListener, BasicToolBarUI.DragWindow, BasicToolBarUI.FrameListener, BasicToolBarUI.PropertyListener, BasicToolBarUI.ToolBarContListener, BasicToolBarUI.ToolBarFocusListener
 
Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalToolBarUI
contListener, rolloverListener
 
Fields inherited from class javax.swing.plaf.basic.BasicToolBarUI
constraintBeforeFloating, dockingBorderColor, dockingColor, dockingListener, downKey, dragWindow, floatingBorderColor, floatingColor, focusedCompIndex, leftKey, propertyListener, rightKey, toolBar, toolBarContListener, toolBarFocusListener, upKey
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
PlasticXPToolBarUI()
           
 
Method Summary
protected  Border createRolloverBorder()
           
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticToolBarUI
installDefaults, installListeners, setBorderToRollover, uninstallListeners, update
 
Methods inherited from class javax.swing.plaf.metal.MetalToolBarUI
createContainerListener, createDockingListener, createNonRolloverBorder, createRolloverListener, installUI, setBorderToNonRollover, setDragOffset, uninstallUI
 
Methods inherited from class javax.swing.plaf.basic.BasicToolBarUI
canDock, createDragWindow, createFloatingFrame, createFloatingWindow, createFrameListener, createPropertyListener, createToolBarContListener, createToolBarFocusListener, dragTo, floatAt, getDockingColor, getFloatingColor, getNonRolloverBorder, getRolloverBorder, installComponents, installKeyboardActions, installNonRolloverBorders, installNormalBorders, installRolloverBorders, isFloating, isRolloverBorders, navigateFocusedComp, paintDragWindow, setBorderToNormal, setDockingColor, setFloating, setFloatingColor, setFloatingLocation, setOrientation, setRolloverBorders, uninstallComponents, uninstallDefaults, uninstallKeyboardActions
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, paint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticXPToolBarUI

public PlasticXPToolBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createRolloverBorder

protected Border createRolloverBorder()
Overrides:
createRolloverBorder in class PlasticToolBarUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticOptionPaneUI.html0000644000175000017500000007403112003555446026615 0ustar tonytony PlasticOptionPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticOptionPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.OptionPaneUI
          extended by javax.swing.plaf.basic.BasicOptionPaneUI
              extended by com.jgoodies.looks.plastic.PlasticOptionPaneUI

public final class PlasticOptionPaneUI
extends BasicOptionPaneUI

The JGoodies Plastic Look&Feel implementation of OptionPaneUI. Honors the screen resolution and uses a minimum button with that complies better with the Mac and Windows UI style guides.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicOptionPaneUI
BasicOptionPaneUI.ButtonActionListener, BasicOptionPaneUI.ButtonAreaLayout, BasicOptionPaneUI.PropertyChangeHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicOptionPaneUI
hasCustomComponents, initialFocusComponent, inputComponent, MinimumHeight, minimumSize, MinimumWidth, optionPane, propertyChangeListener
 
Constructor Summary
PlasticOptionPaneUI()
           
 
Method Summary
protected  Container createButtonArea()
          Creates and returns a Container containin the buttons.
static ComponentUI createUI(JComponent b)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicOptionPaneUI
addButtonComponents, addIcon, addMessageComponents, burstStringInto, containsCustomComponents, createButtonActionListener, createLayoutManager, createMessageArea, createPropertyChangeListener, createSeparator, getButtons, getIcon, getIconForType, getInitialValueIndex, getMaxCharactersPerLineCount, getMessage, getMinimumOptionPaneSize, getPreferredSize, getSizeButtonsToSameWidth, installComponents, installDefaults, installKeyboardActions, installListeners, installUI, resetInputValue, selectInitialValue, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticOptionPaneUI

public PlasticOptionPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

createButtonArea

protected Container createButtonArea()
Creates and returns a Container containin the buttons. The buttons are created by calling getButtons.

Overrides:
createButtonArea in class BasicOptionPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/0000755000175000017500000000000012003555450023165 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/ExperienceBlue.html0000644000175000017500000013102012003555446026754 0ustar tonytony ExperienceBlue (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class ExperienceBlue

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.ExperienceBlue
Direct Known Subclasses:
ExperienceGreen, LightGray, Silver

public class ExperienceBlue
extends DesertBluer

A theme with low saturated blue primary colors and a light brown window background. It has been optimized to work with Windows XP default desktop settings.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
protected static ColorUIResource LUNA_BACKGROUND
           
protected static ColorUIResource LUNA_BACKGROUND_DARKER
           
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
ExperienceBlue()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getFocusColor()
           
 ColorUIResource getMenuItemBackground()
           
 ColorUIResource getMenuSelectedBackground()
           
 ColorUIResource getMenuSelectedForeground()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getPrimaryControlShadow()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 ColorUIResource getToggleButtonCheckColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getMenuItemSelectedBackground, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LUNA_BACKGROUND

protected static final ColorUIResource LUNA_BACKGROUND

LUNA_BACKGROUND_DARKER

protected static final ColorUIResource LUNA_BACKGROUND_DARKER
Constructor Detail

ExperienceBlue

public ExperienceBlue()
Method Detail

getName

public String getName()
Overrides:
getName in class DesertBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class DesertBluer

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DesertBluer

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DesertBluer

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class DesertBluer

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class DesertBluer

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class DesertBluer

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class DesertBluer

getPrimaryControlShadow

public ColorUIResource getPrimaryControlShadow()
Overrides:
getPrimaryControlShadow in class MetalTheme

getMenuSelectedBackground

public ColorUIResource getMenuSelectedBackground()
Overrides:
getMenuSelectedBackground in class SkyBluer

getMenuSelectedForeground

public ColorUIResource getMenuSelectedForeground()
Overrides:
getMenuSelectedForeground in class MetalTheme

getMenuItemBackground

public ColorUIResource getMenuItemBackground()
Overrides:
getMenuItemBackground in class PlasticTheme

getToggleButtonCheckColor

public ColorUIResource getToggleButtonCheckColor()
Overrides:
getToggleButtonCheckColor in class PlasticTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class SkyBluer


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/package-frame.html0000644000175000017500000000643612003555446026554 0ustar tonytony com.jgoodies.looks.plastic.theme (JGoodies Looks 2.5 API) com.jgoodies.looks.plastic.theme
Classes 
AbstractSkyTheme
BrownSugar
DarkStar
DesertBlue
DesertBluer
DesertGreen
DesertRed
DesertYellow
ExperienceBlue
ExperienceGreen
ExperienceRoyale
InvertedColorTheme
LightGray
Silver
SkyBlue
SkyBluer
SkyGreen
SkyKrupp
SkyPink
SkyRed
SkyYellow
jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/BrownSugar.html0000644000175000017500000010437012003555446026156 0ustar tonytony BrownSugar (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class BrownSugar

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.InvertedColorTheme
                  extended by com.jgoodies.looks.plastic.theme.BrownSugar

public class BrownSugar
extends InvertedColorTheme

An inverted theme with light foreground colors and a dark brown window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
BrownSugar()
           
 
Method Summary
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
protected  ColorUIResource getSoftWhite()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.InvertedColorTheme
addCustomEntriesToTable, getControlDisabled, getControlHighlight, getControlInfo, getFocusColor, getInactiveSystemTextColor, getMenuDisabledForeground, getMenuItemSelectedBackground, getMenuItemSelectedForeground, getMenuSelectedBackground, getMenuSelectedForeground, getPrimaryControlHighlight, getSeparatorBackground, getSimpleInternalFrameBackground, getTitleTextColor, getToggleButtonCheckColor
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getMenuBackground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlInfo, getPrimaryControlShadow, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BrownSugar

public BrownSugar()
Method Detail

getName

public String getName()
Overrides:
getName in class DefaultMetalTheme

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class InvertedColorTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class InvertedColorTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class InvertedColorTheme

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class InvertedColorTheme

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class InvertedColorTheme

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class InvertedColorTheme

getSoftWhite

protected ColorUIResource getSoftWhite()
Overrides:
getSoftWhite in class InvertedColorTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/DesertYellow.html0000644000175000017500000010333612003555446026510 0ustar tonytony DesertYellow (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class DesertYellow

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.DesertBlue
                          extended by com.jgoodies.looks.plastic.theme.DesertYellow

public class DesertYellow
extends DesertBlue

A theme with low saturated yellow primary colors and a light brown window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
DesertYellow()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getMenuItemSelectedBackground()
           
 String getName()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getTitleTextColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBlue
getFocusColor, getPrimary1, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DesertYellow

public DesertYellow()
Method Detail

getName

public String getName()
Overrides:
getName in class DesertBlue

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DesertBlue

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DesertBlue

getTitleTextColor

public ColorUIResource getTitleTextColor()
Overrides:
getTitleTextColor in class DesertBlue

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class DesertBlue

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class DesertBlue


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/DesertRed.html0000644000175000017500000010065412003555446025747 0ustar tonytony DesertRed (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class DesertRed

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.DesertBlue
                          extended by com.jgoodies.looks.plastic.theme.DesertRed

public class DesertRed
extends DesertBlue

A theme with low saturated red primary colors and a light brown window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
DesertRed()
           
 
Method Summary
 ColorUIResource getFocusColor()
           
 String getName()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getTitleTextColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBlue
addCustomEntriesToTable, getMenuItemSelectedBackground, getPrimary1, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DesertRed

public DesertRed()
Method Detail

getName

public String getName()
Overrides:
getName in class DesertBlue

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DesertBlue

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DesertBlue

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class DesertBlue

getTitleTextColor

public ColorUIResource getTitleTextColor()
Overrides:
getTitleTextColor in class DesertBlue


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/AbstractSkyTheme.html0000644000175000017500000011067612003555446027310 0ustar tonytony AbstractSkyTheme (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class AbstractSkyTheme

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.AbstractSkyTheme
Direct Known Subclasses:
SkyBlue, SkyGreen, SkyKrupp, SkyPink, SkyRed, SkyYellow

public abstract class AbstractSkyTheme
extends SkyBluer

A theme with low saturated blue primary colors and a light gray window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
AbstractSkyTheme()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getMenuItemSelectedBackground()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getPrimaryControlShadow()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getFocusColor, getMenuItemSelectedForeground, getMenuSelectedBackground, getName
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSkyTheme

public AbstractSkyTheme()
Method Detail

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class SkyBluer

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class SkyBluer

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class SkyBluer

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class SkyBluer

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class SkyBluer

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class SkyBluer

getPrimaryControlShadow

public ColorUIResource getPrimaryControlShadow()
Overrides:
getPrimaryControlShadow in class MetalTheme

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class SkyBluer

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class SkyBluer


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/package-tree.html0000644000175000017500000002611712003555446026417 0ustar tonytony com.jgoodies.looks.plastic.theme Class Hierarchy (JGoodies Looks 2.5 API)

Hierarchy For Package com.jgoodies.looks.plastic.theme

Package Hierarchies:
All Packages

Class Hierarchy



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/package-use.html0000644000175000017500000002171212003555450026243 0ustar tonytony Uses of Package com.jgoodies.looks.plastic.theme (JGoodies Looks 2.5 API)

Uses of Package
com.jgoodies.looks.plastic.theme

Packages that use com.jgoodies.looks.plastic.theme
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Classes in com.jgoodies.looks.plastic.theme used by com.jgoodies.looks.plastic.theme
AbstractSkyTheme
          A theme with low saturated blue primary colors and a light gray window background.
DesertBlue
          A theme with low saturated blue primary colors and a light brown window background.
DesertBluer
          A theme with medium saturated blue primary colors and a light brown window background.
ExperienceBlue
          A theme with low saturated blue primary colors and a light brown window background.
InvertedColorTheme
          The abstract superclass of all inverted Plastic themes, that have light foreground and dark window background colors.
SkyBluer
          A theme with medium blue primary colors and a light gray window background.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/SkyGreen.html0000644000175000017500000007333112003555446025616 0ustar tonytony SkyGreen (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class SkyGreen

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.AbstractSkyTheme
                      extended by com.jgoodies.looks.plastic.theme.SkyGreen

public class SkyGreen
extends AbstractSkyTheme

A theme with low saturated green primary colors and a light gray window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
SkyGreen()
           
 
Method Summary
 String getName()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
addCustomEntriesToTable, getMenuItemSelectedBackground, getPrimary1, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getFocusColor, getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkyGreen

public SkyGreen()
Method Detail

getName

public String getName()
Overrides:
getName in class SkyBluer

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class AbstractSkyTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class AbstractSkyTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/SkyYellow.html0000644000175000017500000010606412003555446026031 0ustar tonytony SkyYellow (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class SkyYellow

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.AbstractSkyTheme
                      extended by com.jgoodies.looks.plastic.theme.SkyYellow

public class SkyYellow
extends AbstractSkyTheme

A theme with yellow primary colors and a light gray window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
SkyYellow()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getFocusColor()
           
 ColorUIResource getMenuItemSelectedBackground()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getPrimaryControlShadow()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkyYellow

public SkyYellow()
Method Detail

getName

public String getName()
Overrides:
getName in class SkyBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class AbstractSkyTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class AbstractSkyTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class AbstractSkyTheme

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class SkyBluer

getPrimaryControlShadow

public ColorUIResource getPrimaryControlShadow()
Overrides:
getPrimaryControlShadow in class AbstractSkyTheme

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class AbstractSkyTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class AbstractSkyTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/0000755000175000017500000000000012003555450025064 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/ExperienceBlue.html0000644000175000017500000002215712003555450030660 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.ExperienceBlue (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.ExperienceBlue

Packages that use ExperienceBlue
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Uses of ExperienceBlue in com.jgoodies.looks.plastic.theme
 

Subclasses of ExperienceBlue in com.jgoodies.looks.plastic.theme
 class ExperienceGreen
          A theme with low saturated green primary colors and a light brown window background.
 class LightGray
          A very light color theme intended to be used on Windows Vista in Aero style.
 class Silver
          A completely gray or silver theme that has been optimized to work in Windows XP environments.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/BrownSugar.html0000644000175000017500000001420312003555450030043 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.BrownSugar (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.BrownSugar

No usage of com.jgoodies.looks.plastic.theme.BrownSugar



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/DesertYellow.html0000644000175000017500000001422712003555450030402 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.DesertYellow (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.DesertYellow

No usage of com.jgoodies.looks.plastic.theme.DesertYellow



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/DesertRed.html0000644000175000017500000001417112003555450027637 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.DesertRed (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.DesertRed

No usage of com.jgoodies.looks.plastic.theme.DesertRed



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/AbstractSkyTheme.html0000644000175000017500000002472412003555450031200 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.AbstractSkyTheme (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.AbstractSkyTheme

Packages that use AbstractSkyTheme
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Uses of AbstractSkyTheme in com.jgoodies.looks.plastic.theme
 

Subclasses of AbstractSkyTheme in com.jgoodies.looks.plastic.theme
 class SkyBlue
          A theme with low saturated blue primary colors and a light gray window background.
 class SkyGreen
          A theme with low saturated green primary colors and a light gray window background.
 class SkyKrupp
          A theme with metal blue primary colors and a light gray window background.
 class SkyPink
          A theme with pink foreground and a light gray window background color.
 class SkyRed
          A theme with low saturated red primary colors and a light gray window background.
 class SkyYellow
          A theme with yellow primary colors and a light gray window background.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/SkyGreen.html0000644000175000017500000001415712003555450027511 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.SkyGreen (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.SkyGreen

No usage of com.jgoodies.looks.plastic.theme.SkyGreen



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/SkyYellow.html0000644000175000017500000001417112003555450027720 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.SkyYellow (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.SkyYellow

No usage of com.jgoodies.looks.plastic.theme.SkyYellow



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/DarkStar.html0000644000175000017500000001415712003555450027475 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.DarkStar (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.DarkStar

No usage of com.jgoodies.looks.plastic.theme.DarkStar



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/SkyBluer.html0000644000175000017500000003677112003555450027530 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.SkyBluer (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.SkyBluer

Packages that use SkyBluer
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Uses of SkyBluer in com.jgoodies.looks.plastic.theme
 

Subclasses of SkyBluer in com.jgoodies.looks.plastic.theme
 class AbstractSkyTheme
          A theme with low saturated blue primary colors and a light gray window background.
 class DesertBlue
          A theme with low saturated blue primary colors and a light brown window background.
 class DesertBluer
          A theme with medium saturated blue primary colors and a light brown window background.
 class DesertGreen
          A theme with low saturated green primary colors and a light brown window background.
 class DesertRed
          A theme with low saturated red primary colors and a light brown window background.
 class DesertYellow
          A theme with low saturated yellow primary colors and a light brown window background.
 class ExperienceBlue
          A theme with low saturated blue primary colors and a light brown window background.
 class ExperienceGreen
          A theme with low saturated green primary colors and a light brown window background.
 class ExperienceRoyale
          A theme with low saturated blue primary colors and a light gray/blueish window background.
 class LightGray
          A very light color theme intended to be used on Windows Vista in Aero style.
 class Silver
          A completely gray or silver theme that has been optimized to work in Windows XP environments.
 class SkyBlue
          A theme with low saturated blue primary colors and a light gray window background.
 class SkyGreen
          A theme with low saturated green primary colors and a light gray window background.
 class SkyKrupp
          A theme with metal blue primary colors and a light gray window background.
 class SkyPink
          A theme with pink foreground and a light gray window background color.
 class SkyRed
          A theme with low saturated red primary colors and a light gray window background.
 class SkyYellow
          A theme with yellow primary colors and a light gray window background.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/LightGray.html0000644000175000017500000001417112003555450027650 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.LightGray (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.LightGray

No usage of com.jgoodies.looks.plastic.theme.LightGray



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/ExperienceRoyale.html0000644000175000017500000001427712003555450031230 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.ExperienceRoyale (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.ExperienceRoyale

No usage of com.jgoodies.looks.plastic.theme.ExperienceRoyale



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/SkyKrupp.html0000644000175000017500000001415712003555450027552 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.SkyKrupp (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.SkyKrupp

No usage of com.jgoodies.looks.plastic.theme.SkyKrupp



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/DesertBluer.html0000644000175000017500000002760512003555450030204 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.DesertBluer (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.DesertBluer

Packages that use DesertBluer
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Uses of DesertBluer in com.jgoodies.looks.plastic.theme
 

Subclasses of DesertBluer in com.jgoodies.looks.plastic.theme
 class DesertBlue
          A theme with low saturated blue primary colors and a light brown window background.
 class DesertGreen
          A theme with low saturated green primary colors and a light brown window background.
 class DesertRed
          A theme with low saturated red primary colors and a light brown window background.
 class DesertYellow
          A theme with low saturated yellow primary colors and a light brown window background.
 class ExperienceBlue
          A theme with low saturated blue primary colors and a light brown window background.
 class ExperienceGreen
          A theme with low saturated green primary colors and a light brown window background.
 class ExperienceRoyale
          A theme with low saturated blue primary colors and a light gray/blueish window background.
 class LightGray
          A very light color theme intended to be used on Windows Vista in Aero style.
 class Silver
          A completely gray or silver theme that has been optimized to work in Windows XP environments.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/DesertBlue.html0000644000175000017500000002206612003555450030016 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.DesertBlue (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.DesertBlue

Packages that use DesertBlue
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Uses of DesertBlue in com.jgoodies.looks.plastic.theme
 

Subclasses of DesertBlue in com.jgoodies.looks.plastic.theme
 class DesertGreen
          A theme with low saturated green primary colors and a light brown window background.
 class DesertRed
          A theme with low saturated red primary colors and a light brown window background.
 class DesertYellow
          A theme with low saturated yellow primary colors and a light brown window background.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/SkyPink.html0000644000175000017500000001414512003555450027347 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.SkyPink (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.SkyPink

No usage of com.jgoodies.looks.plastic.theme.SkyPink



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/SkyRed.html0000644000175000017500000001413312003555450027155 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.SkyRed (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.SkyRed

No usage of com.jgoodies.looks.plastic.theme.SkyRed



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/Silver.html0000644000175000017500000001413312003555450027220 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.Silver (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.Silver

No usage of com.jgoodies.looks.plastic.theme.Silver



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/SkyBlue.html0000644000175000017500000001414512003555450027335 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.SkyBlue (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.SkyBlue

No usage of com.jgoodies.looks.plastic.theme.SkyBlue



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/DesertGreen.html0000644000175000017500000001421512003555450030164 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.DesertGreen (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.DesertGreen

No usage of com.jgoodies.looks.plastic.theme.DesertGreen



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/ExperienceGreen.html0000644000175000017500000001426512003555450031032 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.ExperienceGreen (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.ExperienceGreen

No usage of com.jgoodies.looks.plastic.theme.ExperienceGreen



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/class-use/InvertedColorTheme.html0000644000175000017500000002130212003555450031512 0ustar tonytony Uses of Class com.jgoodies.looks.plastic.theme.InvertedColorTheme (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.plastic.theme.InvertedColorTheme

Packages that use InvertedColorTheme
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs 
 

Uses of InvertedColorTheme in com.jgoodies.looks.plastic.theme
 

Subclasses of InvertedColorTheme in com.jgoodies.looks.plastic.theme
 class BrownSugar
          An inverted theme with light foreground colors and a dark brown window background.
 class DarkStar
          An inverted theme with light foreground colors and a black window background.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/DarkStar.html0000644000175000017500000010427112003555446025600 0ustar tonytony DarkStar (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class DarkStar

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.InvertedColorTheme
                  extended by com.jgoodies.looks.plastic.theme.DarkStar

public class DarkStar
extends InvertedColorTheme

An inverted theme with light foreground colors and a black window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
DarkStar()
           
 
Method Summary
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
protected  ColorUIResource getSoftWhite()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.InvertedColorTheme
addCustomEntriesToTable, getControlDisabled, getControlHighlight, getControlInfo, getFocusColor, getInactiveSystemTextColor, getMenuDisabledForeground, getMenuItemSelectedBackground, getMenuItemSelectedForeground, getMenuSelectedBackground, getMenuSelectedForeground, getPrimaryControlHighlight, getSeparatorBackground, getSimpleInternalFrameBackground, getTitleTextColor, getToggleButtonCheckColor
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getMenuBackground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlInfo, getPrimaryControlShadow, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DarkStar

public DarkStar()
Method Detail

getName

public String getName()
Overrides:
getName in class DefaultMetalTheme

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class InvertedColorTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class InvertedColorTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class InvertedColorTheme

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class InvertedColorTheme

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class InvertedColorTheme

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class InvertedColorTheme

getSoftWhite

protected ColorUIResource getSoftWhite()
Overrides:
getSoftWhite in class InvertedColorTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/package-summary.html0000644000175000017500000003371712003555446027161 0ustar tonytony com.jgoodies.looks.plastic.theme (JGoodies Looks 2.5 API)

Package com.jgoodies.looks.plastic.theme

Contains theme classes for the JGoodies Plastic L&Fs

See:
          Description

Class Summary
AbstractSkyTheme A theme with low saturated blue primary colors and a light gray window background.
BrownSugar An inverted theme with light foreground colors and a dark brown window background.
DarkStar An inverted theme with light foreground colors and a black window background.
DesertBlue A theme with low saturated blue primary colors and a light brown window background.
DesertBluer A theme with medium saturated blue primary colors and a light brown window background.
DesertGreen A theme with low saturated green primary colors and a light brown window background.
DesertRed A theme with low saturated red primary colors and a light brown window background.
DesertYellow A theme with low saturated yellow primary colors and a light brown window background.
ExperienceBlue A theme with low saturated blue primary colors and a light brown window background.
ExperienceGreen A theme with low saturated green primary colors and a light brown window background.
ExperienceRoyale A theme with low saturated blue primary colors and a light gray/blueish window background.
InvertedColorTheme The abstract superclass of all inverted Plastic themes, that have light foreground and dark window background colors.
LightGray A very light color theme intended to be used on Windows Vista in Aero style.
Silver A completely gray or silver theme that has been optimized to work in Windows XP environments.
SkyBlue A theme with low saturated blue primary colors and a light gray window background.
SkyBluer A theme with medium blue primary colors and a light gray window background.
SkyGreen A theme with low saturated green primary colors and a light gray window background.
SkyKrupp A theme with metal blue primary colors and a light gray window background.
SkyPink A theme with pink foreground and a light gray window background color.
SkyRed A theme with low saturated red primary colors and a light gray window background.
SkyYellow A theme with yellow primary colors and a light gray window background.
 

Package com.jgoodies.looks.plastic.theme Description

Contains theme classes for the JGoodies Plastic L&Fs.

Related Documentation

For more information see:

See Also:
com.jgoodies.looks, com.jgoodies.looks.common, com.jgoodies.looks.plastic, com.jgoodies.looks.windows


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/SkyBluer.html0000644000175000017500000011755612003555446025637 0ustar tonytony SkyBluer (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class SkyBluer

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
Direct Known Subclasses:
AbstractSkyTheme, DesertBluer

public class SkyBluer
extends PlasticTheme

A theme with medium blue primary colors and a light gray window background.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
SkyBluer()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getFocusColor()
           
 ColorUIResource getMenuItemSelectedBackground()
           
 ColorUIResource getMenuItemSelectedForeground()
           
 ColorUIResource getMenuSelectedBackground()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getPrimaryControlShadow, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkyBluer

public SkyBluer()
Method Detail

getName

public String getName()
Overrides:
getName in class DefaultMetalTheme

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class DefaultMetalTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DefaultMetalTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DefaultMetalTheme

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class DefaultMetalTheme

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class DefaultMetalTheme

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class DefaultMetalTheme

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class PlasticTheme

getMenuItemSelectedForeground

public ColorUIResource getMenuItemSelectedForeground()
Overrides:
getMenuItemSelectedForeground in class PlasticTheme

getMenuSelectedBackground

public ColorUIResource getMenuSelectedBackground()
Overrides:
getMenuSelectedBackground in class MetalTheme

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class MetalTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class MetalTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/LightGray.html0000644000175000017500000011767612003555446025774 0ustar tonytony LightGray (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class LightGray

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.ExperienceBlue
                          extended by com.jgoodies.looks.plastic.theme.LightGray

public class LightGray
extends ExperienceBlue

A very light color theme intended to be used on Windows Vista in Aero style.

Since:
2.0.3
Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.theme.ExperienceBlue
LUNA_BACKGROUND, LUNA_BACKGROUND_DARKER
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
LightGray()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getFocusColor()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 ColorUIResource getSimpleInternalFrameBackground()
           
 ColorUIResource getTitleTextColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.ExperienceBlue
getMenuItemBackground, getMenuSelectedBackground, getMenuSelectedForeground, getPrimaryControlShadow, getToggleButtonCheckColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getMenuItemSelectedBackground, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuTextFont, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LightGray

public LightGray()
Method Detail

getName

public String getName()
Overrides:
getName in class ExperienceBlue

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class ExperienceBlue

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class ExperienceBlue

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class ExperienceBlue

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class ExperienceBlue

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class ExperienceBlue

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class ExperienceBlue

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class ExperienceBlue

getTitleTextColor

public ColorUIResource getTitleTextColor()
Overrides:
getTitleTextColor in class PlasticTheme

getSimpleInternalFrameBackground

public ColorUIResource getSimpleInternalFrameBackground()
Overrides:
getSimpleInternalFrameBackground in class PlasticTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class ExperienceBlue


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/ExperienceRoyale.html0000644000175000017500000013213112003555446027324 0ustar tonytony ExperienceRoyale (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class ExperienceRoyale

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.ExperienceRoyale

public class ExperienceRoyale
extends DesertBluer

A theme with low saturated blue primary colors and a light gray/blueish window background. It has been optimized to work with Windows XP using the "Royale" desktop theme.

Since:
2.0.3
Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
protected static ColorUIResource ROYALE_BACKGROUND
           
protected static ColorUIResource ROYALE_BACKGROUND_DARKER
           
protected static ColorUIResource ROYALE_SELECTION
           
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
ExperienceRoyale()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getFocusColor()
           
 ColorUIResource getMenuItemBackground()
           
 ColorUIResource getMenuSelectedBackground()
           
 ColorUIResource getMenuSelectedForeground()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getPrimaryControlShadow()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 ColorUIResource getToggleButtonCheckColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getMenuItemSelectedBackground, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ROYALE_BACKGROUND

protected static final ColorUIResource ROYALE_BACKGROUND

ROYALE_BACKGROUND_DARKER

protected static final ColorUIResource ROYALE_BACKGROUND_DARKER

ROYALE_SELECTION

protected static final ColorUIResource ROYALE_SELECTION
Constructor Detail

ExperienceRoyale

public ExperienceRoyale()
Method Detail

getName

public String getName()
Overrides:
getName in class DesertBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class DesertBluer

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DesertBluer

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DesertBluer

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class DesertBluer

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class DesertBluer

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class DesertBluer

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class DesertBluer

getPrimaryControlShadow

public ColorUIResource getPrimaryControlShadow()
Overrides:
getPrimaryControlShadow in class MetalTheme

getMenuSelectedBackground

public ColorUIResource getMenuSelectedBackground()
Overrides:
getMenuSelectedBackground in class SkyBluer

getMenuSelectedForeground

public ColorUIResource getMenuSelectedForeground()
Overrides:
getMenuSelectedForeground in class MetalTheme

getMenuItemBackground

public ColorUIResource getMenuItemBackground()
Overrides:
getMenuItemBackground in class PlasticTheme

getToggleButtonCheckColor

public ColorUIResource getToggleButtonCheckColor()
Overrides:
getToggleButtonCheckColor in class PlasticTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class SkyBluer


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/SkyKrupp.html0000644000175000017500000010535612003555446025662 0ustar tonytony SkyKrupp (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class SkyKrupp

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.AbstractSkyTheme
                      extended by com.jgoodies.looks.plastic.theme.SkyKrupp

public class SkyKrupp
extends AbstractSkyTheme

A theme with metal blue primary colors and a light gray window background.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
SkyKrupp()
           
 
Method Summary
 ColorUIResource getFocusColor()
           
 ColorUIResource getMenuItemSelectedBackground()
           
 ColorUIResource getMenuItemSelectedForeground()
           
 ColorUIResource getMenuSelectedBackground()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
addCustomEntriesToTable, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkyKrupp

public SkyKrupp()
Method Detail

getName

public String getName()
Overrides:
getName in class SkyBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class AbstractSkyTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class AbstractSkyTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class AbstractSkyTheme

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class AbstractSkyTheme

getMenuItemSelectedForeground

public ColorUIResource getMenuItemSelectedForeground()
Overrides:
getMenuItemSelectedForeground in class SkyBluer

getMenuSelectedBackground

public ColorUIResource getMenuSelectedBackground()
Overrides:
getMenuSelectedBackground in class SkyBluer

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class SkyBluer


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/DesertBluer.html0000644000175000017500000011440312003555446026303 0ustar tonytony DesertBluer (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class DesertBluer

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
Direct Known Subclasses:
DesertBlue, ExperienceBlue, ExperienceRoyale

public class DesertBluer
extends SkyBluer

A theme with medium saturated blue primary colors and a light brown window background.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
DesertBluer()
           
 
Method Summary
 ColorUIResource getFocusColor()
           
 ColorUIResource getHighlightedTextColor()
           
 ColorUIResource getMenuItemSelectedBackground()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 ColorUIResource getTextHighlightColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
addCustomEntriesToTable, getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getPrimaryControlShadow, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DesertBluer

public DesertBluer()
Method Detail

getName

public String getName()
Overrides:
getName in class SkyBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class SkyBluer

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class SkyBluer

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class SkyBluer

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class SkyBluer

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class SkyBluer

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class SkyBluer

getTextHighlightColor

public ColorUIResource getTextHighlightColor()
Overrides:
getTextHighlightColor in class MetalTheme

getHighlightedTextColor

public ColorUIResource getHighlightedTextColor()
Overrides:
getHighlightedTextColor in class MetalTheme

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class SkyBluer

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class SkyBluer


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/DesertBlue.html0000644000175000017500000011776012003555446026132 0ustar tonytony DesertBlue (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class DesertBlue

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.DesertBlue
Direct Known Subclasses:
DesertGreen, DesertRed, DesertYellow

public class DesertBlue
extends DesertBluer

A theme with low saturated blue primary colors and a light brown window background.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
DesertBlue()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getFocusColor()
           
 ColorUIResource getMenuItemSelectedBackground()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getPrimaryControlShadow()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 ColorUIResource getTitleTextColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DesertBlue

public DesertBlue()
Method Detail

getName

public String getName()
Overrides:
getName in class DesertBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class DesertBluer

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DesertBluer

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DesertBluer

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class DesertBluer

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class DesertBluer

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class DesertBluer

getTitleTextColor

public ColorUIResource getTitleTextColor()
Overrides:
getTitleTextColor in class PlasticTheme

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class DesertBluer

getPrimaryControlShadow

public ColorUIResource getPrimaryControlShadow()
Overrides:
getPrimaryControlShadow in class MetalTheme

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class DesertBluer

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class SkyBluer


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/SkyPink.html0000644000175000017500000010211412003555446025447 0ustar tonytony SkyPink (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class SkyPink

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.AbstractSkyTheme
                      extended by com.jgoodies.looks.plastic.theme.SkyPink

public class SkyPink
extends AbstractSkyTheme

A theme with pink foreground and a light gray window background color.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
SkyPink()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getHighlightedTextColor()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
getMenuItemSelectedBackground, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getFocusColor, getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkyPink

public SkyPink()
Method Detail

getName

public String getName()
Overrides:
getName in class SkyBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class AbstractSkyTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class AbstractSkyTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class AbstractSkyTheme

getHighlightedTextColor

public ColorUIResource getHighlightedTextColor()
Overrides:
getHighlightedTextColor in class MetalTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class AbstractSkyTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/SkyRed.html0000644000175000017500000007540112003555446025270 0ustar tonytony SkyRed (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class SkyRed

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.AbstractSkyTheme
                      extended by com.jgoodies.looks.plastic.theme.SkyRed

public class SkyRed
extends AbstractSkyTheme

A theme with low saturated red primary colors and a light gray window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
SkyRed()
           
 
Method Summary
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
addCustomEntriesToTable, getMenuItemSelectedBackground, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getFocusColor, getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkyRed

public SkyRed()
Method Detail

getName

public String getName()
Overrides:
getName in class SkyBluer

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class AbstractSkyTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class AbstractSkyTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class AbstractSkyTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/Silver.html0000644000175000017500000011525112003555446025331 0ustar tonytony Silver (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class Silver

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.ExperienceBlue
                          extended by com.jgoodies.looks.plastic.theme.Silver

public class Silver
extends ExperienceBlue

A completely gray or silver theme that has been optimized to work in Windows XP environments.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.theme.ExperienceBlue
LUNA_BACKGROUND, LUNA_BACKGROUND_DARKER
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
Silver()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getFocusColor()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 ColorUIResource getTitleTextColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.ExperienceBlue
getMenuItemBackground, getMenuSelectedBackground, getMenuSelectedForeground, getPrimaryControlShadow, getToggleButtonCheckColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getMenuItemSelectedBackground, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Silver

public Silver()
Method Detail

getName

public String getName()
Overrides:
getName in class ExperienceBlue

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class ExperienceBlue

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class ExperienceBlue

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class ExperienceBlue

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class ExperienceBlue

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class ExperienceBlue

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class ExperienceBlue

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class ExperienceBlue

getTitleTextColor

public ColorUIResource getTitleTextColor()
Overrides:
getTitleTextColor in class PlasticTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class ExperienceBlue


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/SkyBlue.html0000644000175000017500000006703212003555446025446 0ustar tonytony SkyBlue (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class SkyBlue

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.AbstractSkyTheme
                      extended by com.jgoodies.looks.plastic.theme.SkyBlue

public class SkyBlue
extends AbstractSkyTheme

A theme with low saturated blue primary colors and a light gray window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
SkyBlue()
           
 
Method Summary
 String getName()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.AbstractSkyTheme
addCustomEntriesToTable, getMenuItemSelectedBackground, getPrimary1, getPrimary2, getPrimary3, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getFocusColor, getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SkyBlue

public SkyBlue()
Method Detail

getName

public String getName()
Overrides:
getName in class SkyBluer


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/DesertGreen.html0000644000175000017500000007661412003555446026305 0ustar tonytony DesertGreen (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class DesertGreen

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.DesertBlue
                          extended by com.jgoodies.looks.plastic.theme.DesertGreen

public class DesertGreen
extends DesertBlue

A theme with low saturated green primary colors and a light brown window background.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
DesertGreen()
           
 
Method Summary
 String getName()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getTitleTextColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBlue
addCustomEntriesToTable, getFocusColor, getMenuItemSelectedBackground, getPrimary1, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground, getMenuSelectedBackground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getToggleButtonCheckColor, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DesertGreen

public DesertGreen()
Method Detail

getName

public String getName()
Overrides:
getName in class DesertBlue

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DesertBlue

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DesertBlue

getTitleTextColor

public ColorUIResource getTitleTextColor()
Overrides:
getTitleTextColor in class DesertBlue


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/ExperienceGreen.html0000644000175000017500000010272412003555446027136 0ustar tonytony ExperienceGreen (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class ExperienceGreen

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.SkyBluer
                  extended by com.jgoodies.looks.plastic.theme.DesertBluer
                      extended by com.jgoodies.looks.plastic.theme.ExperienceBlue
                          extended by com.jgoodies.looks.plastic.theme.ExperienceGreen

public class ExperienceGreen
extends ExperienceBlue

A theme with low saturated green primary colors and a light brown window background. It has been optimized to work with Windows XP default desktop settings.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.theme.ExperienceBlue
LUNA_BACKGROUND, LUNA_BACKGROUND_DARKER
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
ExperienceGreen()
           
 
Method Summary
 ColorUIResource getFocusColor()
           
 String getName()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 
Methods inherited from class com.jgoodies.looks.plastic.theme.ExperienceBlue
addCustomEntriesToTable, getMenuItemBackground, getMenuSelectedBackground, getMenuSelectedForeground, getPrimaryControlShadow, getSecondary1, getSecondary2, getSecondary3, getToggleButtonCheckColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.DesertBluer
getHighlightedTextColor, getMenuItemSelectedBackground, getTextHighlightColor
 
Methods inherited from class com.jgoodies.looks.plastic.theme.SkyBluer
getMenuItemSelectedForeground
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuTextFont, getSimpleInternalFrameBackground, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextColor, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getSeparatorBackground, getSeparatorForeground, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExperienceGreen

public ExperienceGreen()
Method Detail

getName

public String getName()
Overrides:
getName in class ExperienceBlue

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class ExperienceBlue

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class ExperienceBlue

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class ExperienceBlue

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class ExperienceBlue


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/theme/InvertedColorTheme.html0000644000175000017500000015245212003555446027633 0ustar tonytony InvertedColorTheme (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic.theme
Class InvertedColorTheme

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
              extended by com.jgoodies.looks.plastic.theme.InvertedColorTheme
Direct Known Subclasses:
BrownSugar, DarkStar

public abstract class InvertedColorTheme
extends PlasticTheme

The abstract superclass of all inverted Plastic themes, that have light foreground and dark window background colors.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class com.jgoodies.looks.plastic.PlasticTheme
BLACK, BRIGHTEN_START, BRIGHTEN_STOP, DARKEN_START, DARKEN_STOP, LT_BRIGHTEN_STOP, LT_DARKEN_STOP, WHITE
 
Constructor Summary
InvertedColorTheme()
           
 
Method Summary
 void addCustomEntriesToTable(UIDefaults table)
           
 ColorUIResource getControlDisabled()
           
 ColorUIResource getControlHighlight()
           
 ColorUIResource getControlInfo()
           
 ColorUIResource getFocusColor()
           
 ColorUIResource getInactiveSystemTextColor()
           
 ColorUIResource getMenuDisabledForeground()
           
 ColorUIResource getMenuItemSelectedBackground()
           
 ColorUIResource getMenuItemSelectedForeground()
           
 ColorUIResource getMenuSelectedBackground()
           
 ColorUIResource getMenuSelectedForeground()
           
protected  ColorUIResource getPrimary1()
           
protected  ColorUIResource getPrimary2()
           
protected  ColorUIResource getPrimary3()
           
 ColorUIResource getPrimaryControlHighlight()
           
protected  ColorUIResource getSecondary1()
           
protected  ColorUIResource getSecondary2()
           
protected  ColorUIResource getSecondary3()
           
 ColorUIResource getSeparatorBackground()
           
 ColorUIResource getSimpleInternalFrameBackground()
           
protected  ColorUIResource getSoftWhite()
           
 ColorUIResource getTitleTextColor()
           
 ColorUIResource getToggleButtonCheckColor()
           
 
Methods inherited from class com.jgoodies.looks.plastic.PlasticTheme
equals, getBlack, getControlTextFont, getFontSet, getMenuForeground, getMenuItemBackground, getMenuTextFont, getSimpleInternalFrameForeground, getSubTextFont, getSystemTextColor, getSystemTextFont, getTitleTextFont, getUserTextFont, getWhite, getWindowTitleFont, hashCode
 
Methods inherited from class javax.swing.plaf.metal.DefaultMetalTheme
getName
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlShadow, getControlTextColor, getDesktopColor, getHighlightedTextColor, getInactiveControlTextColor, getMenuBackground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlInfo, getPrimaryControlShadow, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InvertedColorTheme

public InvertedColorTheme()
Method Detail

getSimpleInternalFrameBackground

public ColorUIResource getSimpleInternalFrameBackground()
Overrides:
getSimpleInternalFrameBackground in class PlasticTheme

addCustomEntriesToTable

public void addCustomEntriesToTable(UIDefaults table)
Overrides:
addCustomEntriesToTable in class MetalTheme

getControlDisabled

public ColorUIResource getControlDisabled()
Overrides:
getControlDisabled in class MetalTheme

getControlHighlight

public ColorUIResource getControlHighlight()
Overrides:
getControlHighlight in class MetalTheme

getControlInfo

public ColorUIResource getControlInfo()
Overrides:
getControlInfo in class MetalTheme

getInactiveSystemTextColor

public ColorUIResource getInactiveSystemTextColor()
Overrides:
getInactiveSystemTextColor in class MetalTheme

getMenuDisabledForeground

public ColorUIResource getMenuDisabledForeground()
Overrides:
getMenuDisabledForeground in class MetalTheme

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()
Overrides:
getMenuItemSelectedBackground in class PlasticTheme

getMenuItemSelectedForeground

public ColorUIResource getMenuItemSelectedForeground()
Overrides:
getMenuItemSelectedForeground in class PlasticTheme

getMenuSelectedBackground

public ColorUIResource getMenuSelectedBackground()
Overrides:
getMenuSelectedBackground in class MetalTheme

getMenuSelectedForeground

public ColorUIResource getMenuSelectedForeground()
Overrides:
getMenuSelectedForeground in class MetalTheme

getPrimary1

protected ColorUIResource getPrimary1()
Overrides:
getPrimary1 in class DefaultMetalTheme

getPrimary2

protected ColorUIResource getPrimary2()
Overrides:
getPrimary2 in class DefaultMetalTheme

getPrimary3

protected ColorUIResource getPrimary3()
Overrides:
getPrimary3 in class DefaultMetalTheme

getPrimaryControlHighlight

public ColorUIResource getPrimaryControlHighlight()
Overrides:
getPrimaryControlHighlight in class MetalTheme

getSecondary1

protected ColorUIResource getSecondary1()
Overrides:
getSecondary1 in class DefaultMetalTheme

getSecondary2

protected ColorUIResource getSecondary2()
Overrides:
getSecondary2 in class DefaultMetalTheme

getSecondary3

protected ColorUIResource getSecondary3()
Overrides:
getSecondary3 in class DefaultMetalTheme

getSeparatorBackground

public ColorUIResource getSeparatorBackground()
Overrides:
getSeparatorBackground in class MetalTheme

getSoftWhite

protected ColorUIResource getSoftWhite()

getTitleTextColor

public ColorUIResource getTitleTextColor()
Overrides:
getTitleTextColor in class PlasticTheme

getToggleButtonCheckColor

public ColorUIResource getToggleButtonCheckColor()
Overrides:
getToggleButtonCheckColor in class PlasticTheme

getFocusColor

public ColorUIResource getFocusColor()
Overrides:
getFocusColor in class MetalTheme


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticMenuBarUI.html0000644000175000017500000006361212003555446026075 0ustar tonytony PlasticMenuBarUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticMenuBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.MenuBarUI
          extended by javax.swing.plaf.basic.BasicMenuBarUI
              extended by com.jgoodies.looks.plastic.PlasticMenuBarUI

public final class PlasticMenuBarUI
extends BasicMenuBarUI

The JGoodies Plastic look and feel implemenation of MenuBarUI. Can handle optional Border types as specified by the BorderStyle or HeaderStyle client properties.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicMenuBarUI
changeListener, containerListener, menuBar
 
Constructor Summary
PlasticMenuBarUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
protected  void installDefaults()
           
protected  void installListeners()
           
 void installSpecialBorder()
          Installs a special border, if either a look-dependent BorderStyle or a look-independent HeaderStyle has been specified.
protected  void uninstallListeners()
           
 void update(Graphics g, JComponent c)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicMenuBarUI
createChangeListener, createContainerListener, getMaximumSize, getMinimumSize, installKeyboardActions, installUI, uninstallDefaults, uninstallKeyboardActions, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getPreferredSize, paint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticMenuBarUI

public PlasticMenuBarUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

protected void installDefaults()
Overrides:
installDefaults in class BasicMenuBarUI

installListeners

protected void installListeners()
Overrides:
installListeners in class BasicMenuBarUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class BasicMenuBarUI

installSpecialBorder

public void installSpecialBorder()
Installs a special border, if either a look-dependent BorderStyle or a look-independent HeaderStyle has been specified. A look specific BorderStyle shadows a HeaderStyle.

We recommend to specify a HeaderStyle.


update

public void update(Graphics g,
                   JComponent c)
Overrides:
update in class ComponentUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticTheme.html0000644000175000017500000015127612003555446025354 0ustar tonytony PlasticTheme (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticTheme

java.lang.Object
  extended by javax.swing.plaf.metal.MetalTheme
      extended by javax.swing.plaf.metal.DefaultMetalTheme
          extended by com.jgoodies.looks.plastic.PlasticTheme
Direct Known Subclasses:
InvertedColorTheme, SkyBluer

public abstract class PlasticTheme
extends DefaultMetalTheme

Unlike its superclass this theme class has relaxed access.

Version:
$Revision: 1.11 $
Author:
Karsten Lentzsch

Field Summary
protected static ColorUIResource BLACK
           
static Color BRIGHTEN_START
           
static Color BRIGHTEN_STOP
           
static Color DARKEN_START
           
static Color DARKEN_STOP
           
static Color LT_BRIGHTEN_STOP
           
static Color LT_DARKEN_STOP
           
protected static ColorUIResource WHITE
           
 
Constructor Summary
PlasticTheme()
           
 
Method Summary
 boolean equals(Object o)
          Plastic themes are equal if and only if their classes are the same.
protected  ColorUIResource getBlack()
           
 FontUIResource getControlTextFont()
           
protected  FontSet getFontSet()
           
 ColorUIResource getMenuForeground()
           
 ColorUIResource getMenuItemBackground()
           
 ColorUIResource getMenuItemSelectedBackground()
           
 ColorUIResource getMenuItemSelectedForeground()
           
 FontUIResource getMenuTextFont()
           
 ColorUIResource getSimpleInternalFrameBackground()
           
 ColorUIResource getSimpleInternalFrameForeground()
           
 FontUIResource getSubTextFont()
           
 ColorUIResource getSystemTextColor()
           
 FontUIResource getSystemTextFont()
           
 ColorUIResource getTitleTextColor()
           
 FontUIResource getTitleTextFont()
           
 ColorUIResource getToggleButtonCheckColor()
           
 FontUIResource getUserTextFont()
           
protected  ColorUIResource getWhite()
           
 FontUIResource getWindowTitleFont()
           
 int hashCode()
          Returns this theme's hash code, the classes' hash code.
 
Methods inherited from class javax.swing.plaf.metal.DefaultMetalTheme
getName, getPrimary1, getPrimary2, getPrimary3, getSecondary1, getSecondary2, getSecondary3
 
Methods inherited from class javax.swing.plaf.metal.MetalTheme
addCustomEntriesToTable, getAcceleratorForeground, getAcceleratorSelectedForeground, getControl, getControlDarkShadow, getControlDisabled, getControlHighlight, getControlInfo, getControlShadow, getControlTextColor, getDesktopColor, getFocusColor, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getMenuBackground, getMenuDisabledForeground, getMenuSelectedBackground, getMenuSelectedForeground, getPrimaryControl, getPrimaryControlDarkShadow, getPrimaryControlHighlight, getPrimaryControlInfo, getPrimaryControlShadow, getSeparatorBackground, getSeparatorForeground, getTextHighlightColor, getUserTextColor, getWindowBackground, getWindowTitleBackground, getWindowTitleForeground, getWindowTitleInactiveBackground, getWindowTitleInactiveForeground
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DARKEN_START

public static final Color DARKEN_START

DARKEN_STOP

public static final Color DARKEN_STOP

LT_DARKEN_STOP

public static final Color LT_DARKEN_STOP

BRIGHTEN_START

public static final Color BRIGHTEN_START

BRIGHTEN_STOP

public static final Color BRIGHTEN_STOP

LT_BRIGHTEN_STOP

public static final Color LT_BRIGHTEN_STOP

WHITE

protected static final ColorUIResource WHITE

BLACK

protected static final ColorUIResource BLACK
Constructor Detail

PlasticTheme

public PlasticTheme()
Method Detail

getBlack

protected ColorUIResource getBlack()
Overrides:
getBlack in class MetalTheme

getWhite

protected ColorUIResource getWhite()
Overrides:
getWhite in class MetalTheme

getSystemTextColor

public ColorUIResource getSystemTextColor()
Overrides:
getSystemTextColor in class MetalTheme

getTitleTextColor

public ColorUIResource getTitleTextColor()

getMenuForeground

public ColorUIResource getMenuForeground()
Overrides:
getMenuForeground in class MetalTheme

getMenuItemBackground

public ColorUIResource getMenuItemBackground()

getMenuItemSelectedBackground

public ColorUIResource getMenuItemSelectedBackground()

getMenuItemSelectedForeground

public ColorUIResource getMenuItemSelectedForeground()

getSimpleInternalFrameForeground

public ColorUIResource getSimpleInternalFrameForeground()

getSimpleInternalFrameBackground

public ColorUIResource getSimpleInternalFrameBackground()

getToggleButtonCheckColor

public ColorUIResource getToggleButtonCheckColor()

getTitleTextFont

public FontUIResource getTitleTextFont()

getControlTextFont

public FontUIResource getControlTextFont()
Overrides:
getControlTextFont in class DefaultMetalTheme

getMenuTextFont

public FontUIResource getMenuTextFont()
Overrides:
getMenuTextFont in class DefaultMetalTheme

getSubTextFont

public FontUIResource getSubTextFont()
Overrides:
getSubTextFont in class DefaultMetalTheme

getSystemTextFont

public FontUIResource getSystemTextFont()
Overrides:
getSystemTextFont in class DefaultMetalTheme

getUserTextFont

public FontUIResource getUserTextFont()
Overrides:
getUserTextFont in class DefaultMetalTheme

getWindowTitleFont

public FontUIResource getWindowTitleFont()
Overrides:
getWindowTitleFont in class DefaultMetalTheme

getFontSet

protected FontSet getFontSet()

equals

public boolean equals(Object o)
Plastic themes are equal if and only if their classes are the same.

Overrides:
equals in class Object
Returns:
true if this theme is equal to the given object

hashCode

public int hashCode()
Returns this theme's hash code, the classes' hash code.

Overrides:
hashCode in class Object
Returns:
this theme's hash code


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticToggleButtonUI.html0000644000175000017500000011436212003555446027160 0ustar tonytony PlasticToggleButtonUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticToggleButtonUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.basic.BasicButtonUI
              extended by javax.swing.plaf.basic.BasicToggleButtonUI
                  extended by javax.swing.plaf.metal.MetalToggleButtonUI
                      extended by com.jgoodies.looks.plastic.PlasticToggleButtonUI

public class PlasticToggleButtonUI
extends MetalToggleButtonUI

The JGoodies Plastic L&F implementation of ToggleButtonUI. It differs from its superclass in that it can add a pseudo 3D effect, and that the border can paint the focus.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Field Summary
protected static String HTML_KEY
           
 
Fields inherited from class javax.swing.plaf.metal.MetalToggleButtonUI
disabledTextColor, focusColor, selectColor
 
Fields inherited from class javax.swing.plaf.basic.BasicButtonUI
defaultTextIconGap, defaultTextShiftOffset
 
Constructor Summary
PlasticToggleButtonUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
 void installDefaults(AbstractButton b)
          In addition to the superclass we check if the border paints the focus.
protected  boolean is3D(AbstractButton b)
          Checks and answers if this button shall use a pseudo 3D effect.
protected  boolean isToolBarButton(AbstractButton b)
          Checks and answers if this is button is in a tool bar.
 void paint(Graphics g, JComponent c)
          Unlike the BasicToggleButtonUI.paint, we don't fill the content area; this has been done by the update method before.
protected  void paintFocus(Graphics g, AbstractButton b, Rectangle viewRect, Rectangle textRect, Rectangle iconRect)
          Paints the focus close to the button's border.
 void update(Graphics g, JComponent c)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalToggleButtonUI
getDisabledTextColor, getFocusColor, getSelectColor, paintButtonPressed, paintIcon, paintText, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicToggleButtonUI
getPropertyPrefix, getTextShiftOffset
 
Methods inherited from class javax.swing.plaf.basic.BasicButtonUI
clearTextShiftOffset, createButtonListener, getBaseline, getBaselineResizeBehavior, getDefaultTextIconGap, getMaximumSize, getMinimumSize, getPreferredSize, installKeyboardActions, installListeners, installUI, paintIcon, paintText, setTextShiftOffset, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HTML_KEY

protected static final String HTML_KEY
See Also:
Constant Field Values
Constructor Detail

PlasticToggleButtonUI

public PlasticToggleButtonUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

public void installDefaults(AbstractButton b)
In addition to the superclass we check if the border paints the focus.

Overrides:
installDefaults in class MetalToggleButtonUI

update

public void update(Graphics g,
                   JComponent c)
Overrides:
update in class MetalToggleButtonUI

paintFocus

protected void paintFocus(Graphics g,
                          AbstractButton b,
                          Rectangle viewRect,
                          Rectangle textRect,
                          Rectangle iconRect)
Paints the focus close to the button's border.

Overrides:
paintFocus in class MetalToggleButtonUI

paint

public void paint(Graphics g,
                  JComponent c)
Unlike the BasicToggleButtonUI.paint, we don't fill the content area; this has been done by the update method before.

Overrides:
paint in class BasicToggleButtonUI

isToolBarButton

protected boolean isToolBarButton(AbstractButton b)
Checks and answers if this is button is in a tool bar.

Parameters:
b - the button to check
Returns:
true if in tool bar, false otherwise

is3D

protected boolean is3D(AbstractButton b)
Checks and answers if this button shall use a pseudo 3D effect.

Parameters:
b - the button to check
Returns:
true indicates a 3D effect, false flat


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticPopupMenuUI.html0000644000175000017500000006006612003555446026474 0ustar tonytony PlasticPopupMenuUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticPopupMenuUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.PopupMenuUI
          extended by javax.swing.plaf.basic.BasicPopupMenuUI
              extended by com.jgoodies.looks.plastic.PlasticPopupMenuUI

public final class PlasticPopupMenuUI
extends BasicPopupMenuUI

The JGoodies Plastic look&feel implementation of PopMenuUI. It differs from the superclass in that it provides an option to get a narrow border. You can set a client property Options.NO_MARGIN_KEY to indicate that this popup menu has a border without margin. That is useful in the special case where the popup contains only a single component, for example a JScrollPane.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch
See Also:
Options.NO_MARGIN_KEY

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicPopupMenuUI
popupMenu
 
Constructor Summary
PlasticPopupMenuUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
 void installDefaults()
           
protected  void installListeners()
           
protected  void uninstallListeners()
           
 
Methods inherited from class javax.swing.plaf.basic.BasicPopupMenuUI
installKeyboardActions, installUI, isPopupTrigger, uninstallDefaults, uninstallKeyboardActions, uninstallUI
 
Methods inherited from class javax.swing.plaf.PopupMenuUI
getPopup
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticPopupMenuUI

public PlasticPopupMenuUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

public void installDefaults()
Overrides:
installDefaults in class BasicPopupMenuUI

installListeners

protected void installListeners()
Overrides:
installListeners in class BasicPopupMenuUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class BasicPopupMenuUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticButtonUI.html0000644000175000017500000010344212003555446026013 0ustar tonytony PlasticButtonUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticButtonUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.basic.BasicButtonUI
              extended by javax.swing.plaf.metal.MetalButtonUI
                  extended by com.jgoodies.looks.plastic.PlasticButtonUI

public class PlasticButtonUI
extends MetalButtonUI

The JGoodies Plastic L&F implementation of ButtonUI. It differs from the superclass MetalButtonUI in that it can add a pseudo 3D effect and that the border can paint the focus.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalButtonUI
disabledTextColor, focusColor, selectColor
 
Fields inherited from class javax.swing.plaf.basic.BasicButtonUI
defaultTextIconGap, defaultTextShiftOffset
 
Constructor Summary
PlasticButtonUI()
           
 
Method Summary
static ComponentUI createUI(JComponent b)
           
 void installDefaults(AbstractButton b)
          Installs defaults.
protected  boolean is3D(AbstractButton b)
          Checks and answers if this button shall use a pseudo 3D effect.
protected  boolean isToolBarButton(AbstractButton b)
          Checks and answers if this is button is in a tool bar.
protected  void paintFocus(Graphics g, AbstractButton b, Rectangle viewRect, Rectangle textRect, Rectangle iconRect)
          Paints the focus with close to the button's border.
 void update(Graphics g, JComponent c)
           
 
Methods inherited from class javax.swing.plaf.metal.MetalButtonUI
createButtonListener, getDisabledTextColor, getFocusColor, getSelectColor, paintButtonPressed, paintText, uninstallDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicButtonUI
clearTextShiftOffset, getBaseline, getBaselineResizeBehavior, getDefaultTextIconGap, getMaximumSize, getMinimumSize, getPreferredSize, getPropertyPrefix, getTextShiftOffset, installKeyboardActions, installListeners, installUI, paint, paintIcon, paintText, setTextShiftOffset, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticButtonUI

public PlasticButtonUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent b)

installDefaults

public void installDefaults(AbstractButton b)
Installs defaults.

Overrides:
installDefaults in class MetalButtonUI

update

public void update(Graphics g,
                   JComponent c)
Overrides:
update in class MetalButtonUI

paintFocus

protected void paintFocus(Graphics g,
                          AbstractButton b,
                          Rectangle viewRect,
                          Rectangle textRect,
                          Rectangle iconRect)
Paints the focus with close to the button's border.

Overrides:
paintFocus in class MetalButtonUI

isToolBarButton

protected boolean isToolBarButton(AbstractButton b)
Checks and answers if this is button is in a tool bar.

Parameters:
b - the button to check
Returns:
true if in tool bar, false otherwise

is3D

protected boolean is3D(AbstractButton b)
Checks and answers if this button shall use a pseudo 3D effect.

Parameters:
b - the button to check
Returns:
true indicates a 3D effect, false flat


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticUtils.html0000644000175000017500000002752412003555446025410 0ustar tonytony PlasticUtils (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticUtils

java.lang.Object
  extended by com.jgoodies.looks.plastic.PlasticUtils

public final class PlasticUtils
extends Object

Consists exclusively of static methods that provide convenience behavior.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Method Summary
static void addLight3DEffekt(Graphics g, Rectangle r)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

addLight3DEffekt

public static void addLight3DEffekt(Graphics g,
                                    Rectangle r)


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticLookAndFeel.html0000644000175000017500000026453512003555446026440 0ustar tonytony PlasticLookAndFeel (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticLookAndFeel

java.lang.Object
  extended by javax.swing.LookAndFeel
      extended by javax.swing.plaf.basic.BasicLookAndFeel
          extended by javax.swing.plaf.metal.MetalLookAndFeel
              extended by com.jgoodies.looks.plastic.PlasticLookAndFeel
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
Plastic3DLookAndFeel

public class PlasticLookAndFeel
extends MetalLookAndFeel

The base class for the JGoodies Plastic look&feel family. Initializes class and component defaults for the Plastic L&f and provides keys and optional features for the Plastic family.

Version:
$Revision: 1.46 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Field Summary
static String BORDER_STYLE_KEY
          Client property key to set a border style - shadows the header style.
static String DEFAULT_THEME_KEY
          A System property key to set the default theme.
static String HIGH_CONTRAST_FOCUS_ENABLED_KEY
          A System property key that indicates that the high contrast focus colors shall be choosen - if applicable.
static String IS_3D_KEY
          Client property key to disable the pseudo 3D effect.
static String TAB_STYLE_DEFAULT_VALUE
          A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style.
protected static String TAB_STYLE_KEY
          A System property key for the rendering style of the Plastic TabbedPane.
static String TAB_STYLE_METAL_VALUE
          A System property value that indicates that Plastic shall render tabs in the Metal L&F style.
 
Constructor Summary
PlasticLookAndFeel()
          Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.
 
Method Summary
static PlasticTheme createMyDefaultTheme()
          Creates and returns the default color theme.
protected static PlasticTheme createTheme(String themeName)
          Creates and returns a color theme from the specified theme name.
static ColorUIResource getControl()
           
static ColorUIResource getControlDarkShadow()
           
static ColorUIResource getControlHighlight()
           
 String getDescription()
           
 Icon getDisabledIcon(JComponent component, Icon icon)
          Returns an icon with a disabled appearance.
static ColorUIResource getFocusColor()
           
static FontPolicy getFontPolicy()
          Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family.
static boolean getHighContrastFocusColorsEnabled()
           
 String getID()
           
static List getInstalledThemes()
          Lazily initializes and returns the List of installed color themes.
static BorderUIResource getInternalFrameBorder()
           
static ColorUIResource getMenuItemBackground()
           
static ColorUIResource getMenuItemSelectedBackground()
           
static ColorUIResource getMenuItemSelectedForeground()
           
static MicroLayoutPolicy getMicroLayoutPolicy()
          Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs.
 String getName()
           
static BorderUIResource getPaletteBorder()
           
static PlasticTheme getPlasticTheme()
          Lazily initializes and returns the PlasticTheme.
static ColorUIResource getPrimaryControl()
           
static ColorUIResource getPrimaryControlDarkShadow()
           
static ColorUIResource getPrimaryControlHighlight()
           
static ColorUIResource getPrimaryControlInfo()
           
static ColorUIResource getPrimaryControlShadow()
           
static ColorUIResource getSimpleInternalFrameBackground()
           
static ColorUIResource getSimpleInternalFrameForeground()
           
static String getTabStyle()
           
static ColorUIResource getTitleTextColor()
           
static FontUIResource getTitleTextFont()
           
static ColorUIResource getWindowTitleBackground()
           
static ColorUIResource getWindowTitleForeground()
           
static ColorUIResource getWindowTitleInactiveBackground()
           
static ColorUIResource getWindowTitleInactiveForeground()
           
protected  void initClassDefaults(UIDefaults table)
          Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.
protected  void initComponentDefaults(UIDefaults table)
           
 void initialize()
          Invoked during UIManager#setLookAndFeel.
protected  void initSystemColorDefaults(UIDefaults table)
          Unlike my superclass I register a unified shadow color.
protected static void installDefaultThemes()
          Install the default color themes.
static void installTheme(PlasticTheme theme)
          Installs a color theme.
protected  boolean is3DEnabled()
           
static boolean isSelectTextOnKeyboardFocusGained()
           
static void set3DEnabled(boolean b)
           
static void setFontPolicy(FontPolicy fontPolicy)
          Sets the FontPolicy to be used with the JGoodies Plastic L&F family.
static void setHighContrastFocusColorsEnabled(boolean b)
           
static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
          Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs.
static void setPlasticTheme(PlasticTheme theme)
          Sets the theme for colors and fonts used by the Plastic L&F.
static void setSelectTextOnKeyboardFocusGained(boolean b)
          Sets whether text field text shall be selected when it gains focus via the keyboard.
static void setTabStyle(String tabStyle)
           
 void uninitialize()
          Invoked during UIManager#setLookAndFeel.
 
Methods inherited from class javax.swing.plaf.metal.MetalLookAndFeel
createDefaultTheme, getAcceleratorForeground, getAcceleratorSelectedForeground, getBlack, getControlDisabled, getControlInfo, getControlShadow, getControlTextColor, getControlTextFont, getCurrentTheme, getDefaults, getDesktopColor, getDisabledSelectedIcon, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getLayoutStyle, getMenuBackground, getMenuDisabledForeground, getMenuForeground, getMenuSelectedBackground, getMenuSelectedForeground, getMenuTextFont, getSeparatorBackground, getSeparatorForeground, getSubTextFont, getSupportsWindowDecorations, getSystemTextColor, getSystemTextFont, getTextHighlightColor, getUserTextColor, getUserTextFont, getWhite, getWindowBackground, getWindowTitleFont, isNativeLookAndFeel, isSupportedLookAndFeel, provideErrorFeedback, setCurrentTheme
 
Methods inherited from class javax.swing.plaf.basic.BasicLookAndFeel
createAudioAction, getAudioActionMap, loadSystemColors, playSound
 
Methods inherited from class javax.swing.LookAndFeel
getDesktopPropertyValue, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, toString, uninstallBorder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BORDER_STYLE_KEY

public static final String BORDER_STYLE_KEY
Client property key to set a border style - shadows the header style.

See Also:
Constant Field Values

IS_3D_KEY

public static final String IS_3D_KEY
Client property key to disable the pseudo 3D effect.

See Also:
Constant Field Values

DEFAULT_THEME_KEY

public static final String DEFAULT_THEME_KEY
A System property key to set the default theme.

See Also:
Constant Field Values

HIGH_CONTRAST_FOCUS_ENABLED_KEY

public static final String HIGH_CONTRAST_FOCUS_ENABLED_KEY
A System property key that indicates that the high contrast focus colors shall be choosen - if applicable. If not set, some focus colors look good but have low contrast. Basically, the low contrast scheme uses the Plastic colors before 1.0.7, and the high contrast scheme is 1.0.7 - 1.0.9.

See Also:
Constant Field Values

TAB_STYLE_KEY

protected static final String TAB_STYLE_KEY
A System property key for the rendering style of the Plastic TabbedPane. Valid values are: default for the Plastic 1.0 tabs, and metal for the Metal L&F tabs.

See Also:
Constant Field Values

TAB_STYLE_DEFAULT_VALUE

public static final String TAB_STYLE_DEFAULT_VALUE
A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style. This is the default.

See Also:
Constant Field Values

TAB_STYLE_METAL_VALUE

public static final String TAB_STYLE_METAL_VALUE
A System property value that indicates that Plastic shall render tabs in the Metal L&F style.

See Also:
Constant Field Values
Constructor Detail

PlasticLookAndFeel

public PlasticLookAndFeel()
Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.

Method Detail

getID

public String getID()
Overrides:
getID in class MetalLookAndFeel

getName

public String getName()
Overrides:
getName in class MetalLookAndFeel

getDescription

public String getDescription()
Overrides:
getDescription in class MetalLookAndFeel

getFontPolicy

public static FontPolicy getFontPolicy()
Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family. If a FontPolicy has been set, it'll be returned. Otherwise, this method checks if a FontPolicy or FontSet is defined in the system properties or UIDefaults. If so, it is returned. If no FontPolicy has been set for this look, in the system properties or UIDefaults, the default Plastic font policy will be returned.

Returns:
the FontPolicy set for this Look&feel - if any, the FontPolicy specified in the system properties or UIDefaults - if any, or the default Plastic font policy.
See Also:
setFontPolicy(com.jgoodies.looks.FontPolicy), Options.PLASTIC_FONT_POLICY_KEY, FontPolicies, FontPolicies.customSettingsPolicy(FontPolicy), FontPolicies.getDefaultPlasticPolicy()

setFontPolicy

public static void setFontPolicy(FontPolicy fontPolicy)
Sets the FontPolicy to be used with the JGoodies Plastic L&F family. If the specified policy is null, the default will be reset.

Parameters:
fontPolicy - the FontPolicy to be used with the JGoodies Plastic L&F family, or null to reset to the default
See Also:
getFontPolicy(), Options.PLASTIC_FONT_POLICY_KEY

getMicroLayoutPolicy

public static MicroLayoutPolicy getMicroLayoutPolicy()
Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs. If a MicroLayoutPolicy has been set for this look, it'll be returned. Otherwise, the default Plastic micro layout policy will be returned.

Returns:
the MicroLayoutPolicy set for this Look&feel - if any, or the default Plastic MicroLayoutPolicy.
See Also:
setMicroLayoutPolicy(com.jgoodies.looks.MicroLayout), Options.PLASTIC_MICRO_LAYOUT_POLICY_KEY, MicroLayoutPolicies

setMicroLayoutPolicy

public static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs. If the specified policy is null, the default will be reset.

Parameters:
microLayoutPolicy - the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs, or null to reset to the default
See Also:
getMicroLayoutPolicy(), Options.PLASTIC_MICRO_LAYOUT_POLICY_KEY

is3DEnabled

protected boolean is3DEnabled()

set3DEnabled

public static void set3DEnabled(boolean b)

getTabStyle

public static String getTabStyle()

setTabStyle

public static void setTabStyle(String tabStyle)

getHighContrastFocusColorsEnabled

public static boolean getHighContrastFocusColorsEnabled()

setHighContrastFocusColorsEnabled

public static void setHighContrastFocusColorsEnabled(boolean b)

isSelectTextOnKeyboardFocusGained

public static boolean isSelectTextOnKeyboardFocusGained()

setSelectTextOnKeyboardFocusGained

public static void setSelectTextOnKeyboardFocusGained(boolean b)
Sets whether text field text shall be selected when it gains focus via the keyboard. This is enabled on Windows by default and disabled on all other platforms.

Parameters:
b - true to enabled, false to disable

initialize

public void initialize()
Invoked during UIManager#setLookAndFeel. In addition to the superclass behavior, we install the ShadowPopupFactory.

Overrides:
initialize in class BasicLookAndFeel
See Also:
uninitialize()

uninitialize

public void uninitialize()
Invoked during UIManager#setLookAndFeel. In addition to the superclass behavior, we uninstall the ShadowPopupFactory.

Overrides:
uninitialize in class BasicLookAndFeel
See Also:
initialize()

getDisabledIcon

public Icon getDisabledIcon(JComponent component,
                            Icon icon)
Returns an icon with a disabled appearance. This method is used to generate a disabled icon when one has not been specified.

This method will be used only on JDK 5.0 and later.

Overrides:
getDisabledIcon in class MetalLookAndFeel
Parameters:
component - the component that will display the icon, may be null.
icon - the icon to generate disabled icon from.
Returns:
disabled icon, or null if a suitable icon can not be generated.

initClassDefaults

protected void initClassDefaults(UIDefaults table)
Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.

Overrides:
initClassDefaults in class MetalLookAndFeel
Parameters:
table - the UIDefaults table to work with
See Also:
BasicLookAndFeel.getDefaults()

initComponentDefaults

protected void initComponentDefaults(UIDefaults table)
Overrides:
initComponentDefaults in class MetalLookAndFeel

initSystemColorDefaults

protected void initSystemColorDefaults(UIDefaults table)
Unlike my superclass I register a unified shadow color. This color is used by my ThinBevelBorder class.

Overrides:
initSystemColorDefaults in class MetalLookAndFeel
Parameters:
table - the UIDefaults table to work with

createMyDefaultTheme

public static PlasticTheme createMyDefaultTheme()
Creates and returns the default color theme. Honors the current platform and platform flavor - if available.

Returns:
the default color theme for the current environment

getInstalledThemes

public static List getInstalledThemes()
Lazily initializes and returns the List of installed color themes.

Returns:
a list of installed color/font themes

installDefaultThemes

protected static void installDefaultThemes()
Install the default color themes.


createTheme

protected static PlasticTheme createTheme(String themeName)
Creates and returns a color theme from the specified theme name.

Parameters:
themeName - the unqualified name of the theme to create
Returns:
the associated color theme or null in case of a problem

installTheme

public static void installTheme(PlasticTheme theme)
Installs a color theme.

Parameters:
theme - the theme to install

getPlasticTheme

public static PlasticTheme getPlasticTheme()
Lazily initializes and returns the PlasticTheme.

Returns:
the current PlasticTheme

setPlasticTheme

public static void setPlasticTheme(PlasticTheme theme)
Sets the theme for colors and fonts used by the Plastic L&F.

After setting the theme, you need to re-install the Look&Feel, as well as update the UI's of any previously created components - just as if you'd change the Look&Feel.

Parameters:
theme - the PlasticTheme to be set
Throws:
NullPointerException - if the theme is null.
See Also:
getPlasticTheme()

getInternalFrameBorder

public static BorderUIResource getInternalFrameBorder()

getPaletteBorder

public static BorderUIResource getPaletteBorder()

getPrimaryControlDarkShadow

public static ColorUIResource getPrimaryControlDarkShadow()

getPrimaryControlHighlight

public static ColorUIResource getPrimaryControlHighlight()

getPrimaryControlInfo

public static ColorUIResource getPrimaryControlInfo()

getPrimaryControlShadow

public static ColorUIResource getPrimaryControlShadow()

getPrimaryControl

public static ColorUIResource getPrimaryControl()

getControlHighlight

public static ColorUIResource getControlHighlight()

getControlDarkShadow

public static ColorUIResource getControlDarkShadow()

getControl

public static ColorUIResource getControl()

getFocusColor

public static ColorUIResource getFocusColor()

getMenuItemBackground

public static ColorUIResource getMenuItemBackground()

getMenuItemSelectedBackground

public static ColorUIResource getMenuItemSelectedBackground()

getMenuItemSelectedForeground

public static ColorUIResource getMenuItemSelectedForeground()

getWindowTitleBackground

public static ColorUIResource getWindowTitleBackground()

getWindowTitleForeground

public static ColorUIResource getWindowTitleForeground()

getWindowTitleInactiveBackground

public static ColorUIResource getWindowTitleInactiveBackground()

getWindowTitleInactiveForeground

public static ColorUIResource getWindowTitleInactiveForeground()

getSimpleInternalFrameForeground

public static ColorUIResource getSimpleInternalFrameForeground()

getSimpleInternalFrameBackground

public static ColorUIResource getSimpleInternalFrameBackground()

getTitleTextColor

public static ColorUIResource getTitleTextColor()

getTitleTextFont

public static FontUIResource getTitleTextFont()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticTabbedPaneUI.html0000644000175000017500000030162412003555446026527 0ustar tonytony PlasticTabbedPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticTabbedPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TabbedPaneUI
          extended by javax.swing.plaf.basic.BasicTabbedPaneUI
              extended by javax.swing.plaf.metal.MetalTabbedPaneUI
                  extended by com.jgoodies.looks.plastic.PlasticTabbedPaneUI
All Implemented Interfaces:
SwingConstants

public final class PlasticTabbedPaneUI
extends MetalTabbedPaneUI

The JGoodies Plastic Look&Feel implementation of TabbedPaneUI. It differs from its superclass MetalTabbedPaneUI in that it paints new tab shapes, provides two options, and supports ClearLook.

You can enable or disable icons in tabs globally via com.jgoodies.looks.Options.setTabIconsEnabled(boolean).

To disable the content border set

 JTabbedPane tabbedPane = new JTabbedPane();
 tabbedPane.putClientProperty(Option.NO_CONTENT_BORDER_KEY, Boolean.TRUE);
 
To paint embedded tabs use
 JTabbedPane tabbedPane = new JTabbedPane();
 tabbedPane.putClientProperty(Option.EMBEDDED_TABS_KEY, Boolean.TRUE);
 

There's a special mode that helps you detect content borders in heavily wrapped component hierarchies - such as the NetBeans IDE. In this marked mode the content border is painted as a Magenta line. You can enable this mode by setting the System property markContentBorders to true; in a command line:

 java -DmarkContentBorders=true
 

Thanks to Andrej Golovnin for his feedback and suggestions.

Version:
$Revision: 1.15 $
Author:
Karsten Lentzsch
See Also:
Options

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
BasicTabbedPaneUI.FocusHandler, BasicTabbedPaneUI.MouseHandler, BasicTabbedPaneUI.PropertyChangeHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.metal.MetalTabbedPaneUI
minTabWidth, selectColor, selectHighlight, tabAreaBackground
 
Fields inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
calcRect, contentBorderInsets, darkShadow, downKey, focus, focusListener, highlight, leftKey, lightHighlight, maxTabHeight, maxTabWidth, mouseListener, propertyChangeListener, rects, rightKey, runCount, selectedRun, selectedTabPadInsets, shadow, tabAreaInsets, tabChangeListener, tabInsets, tabPane, tabRunOverlay, tabRuns, textIconGap, upKey
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
PlasticTabbedPaneUI()
           
 
Method Summary
protected  ChangeListener createChangeListener()
           
protected  LayoutManager createLayoutManager()
          Creates the layout manager used to set the tab's bounds.
protected  PropertyChangeListener createPropertyChangeListener()
          Creates and answer a handler that listens to property changes.
static ComponentUI createUI(JComponent tabPane)
          Creates the PlasticTabbedPaneUI.
protected  Insets getContentBorderInsets(int tabPlacement)
          Returns the insets (i.e. the width) of the content Border.
protected  Icon getIconForTab(int tabIndex)
          Answers the icon for the tab with the specified index.
protected  Insets getSelectedTabPadInsets(int tabPlacement)
          Returns the insets for selected tab.
protected  Insets getTabAreaInsets(int tabPlacement)
          Returns the amount by which the Tab Area is inset.
protected  Rectangle getTabBounds(int tabIndex, Rectangle dest)
           
protected  Insets getTabInsets(int tabPlacement, int tabIndex)
          Returns the insets for this tab.
protected  int getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected)
          Returns the amount by which the label should be shifted horizontally.
protected  int getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected)
          Returns the amount by which the label should be shifted vertically.
protected  int getTabRunIndent(int tabPlacement, int run)
          Returns the amount by which the run number run should be indented.
protected  int getTabRunOverlay(int tabPlacement)
          Returns the amount (in pixels) by which two runs should overlap.
protected  void installComponents()
          Creates and installs any required subcomponents for the JTabbedPane.
protected  void installKeyboardActions()
           
 void installUI(JComponent c)
          Installs the UI.
protected  boolean isTabInFirstRun(int tabIndex)
           
protected  void layoutLabel(int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected)
           
 void paint(Graphics g, JComponent c)
           
protected  void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex)
           
protected  void paintFocusIndicator(Graphics g, int tabPlacement, Rectangle[] rectangles, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected)
          Draws the rectancle around the Tab label which indicates keyboard focus.
protected  void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect)
           
protected  void paintTabArea(Graphics g, int tabPlacement, int selectedIndex)
           
protected  void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
          Fills the background of the given tab to make sure overlap of tabs is handled correctly.
protected  void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
          Paints the border for one tab.
protected  boolean shouldPadTabRun(int tabPlacement, int run)
          This boolean controls wheather the given run should be padded to use up as much space as the others (with more tabs in them).
protected  boolean shouldRotateTabRuns(int tabPlacement)
          Answers wheather tab runs should be rotated.
 int tabForCoordinate(JTabbedPane pane, int x, int y)
          Returns the tab index which intersects the specified point in the JTabbedPane's coordinate space.
protected  void uninstallComponents()
          Removes any installed subcomponents from the JTabbedPane.
 void uninstallUI(JComponent c)
          Uninstalls the UI.
 
Methods inherited from class javax.swing.plaf.metal.MetalTabbedPaneUI
calculateMaxTabHeight, getBaselineOffset, getColorForGap, installDefaults, paintBottomTabBorder, paintContentBorderBottomEdge, paintContentBorderLeftEdge, paintContentBorderRightEdge, paintContentBorderTopEdge, paintHighlightBelowTab, paintLeftTabBorder, paintRightTabBorder, paintTopTabBorder, shouldFillGap, shouldRotateTabRuns, update
 
Methods inherited from class javax.swing.plaf.basic.BasicTabbedPaneUI
assureRectsCreated, calculateMaxTabWidth, calculateTabAreaHeight, calculateTabAreaWidth, calculateTabHeight, calculateTabWidth, createFocusListener, createMouseListener, createScrollButton, expandTabRunsArray, getBaseline, getBaseline, getBaselineResizeBehavior, getFocusIndex, getFontMetrics, getMaximumSize, getMinimumSize, getNextTabIndex, getNextTabIndexInRun, getNextTabRun, getPreviousTabIndex, getPreviousTabIndexInRun, getPreviousTabRun, getRolloverTab, getRunForTab, getTabBounds, getTabRunCount, getTabRunOffset, getTextViewForTab, getVisibleComponent, installListeners, lastTabInRun, navigateSelectedTab, paintIcon, paintText, rotateInsets, selectAdjacentRunTab, selectNextTab, selectNextTabInRun, selectPreviousTab, selectPreviousTabInRun, setRolloverTab, setVisibleComponent, uninstallDefaults, uninstallKeyboardActions, uninstallListeners
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getPreferredSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticTabbedPaneUI

public PlasticTabbedPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent tabPane)
Creates the PlasticTabbedPaneUI.

See Also:
ComponentUI.createUI(JComponent)

installUI

public void installUI(JComponent c)
Installs the UI.

Overrides:
installUI in class BasicTabbedPaneUI
See Also:
ComponentUI.installUI(JComponent)

uninstallUI

public void uninstallUI(JComponent c)
Uninstalls the UI.

Overrides:
uninstallUI in class BasicTabbedPaneUI
See Also:
ComponentUI.uninstallUI(JComponent)

installComponents

protected void installComponents()
Creates and installs any required subcomponents for the JTabbedPane. Invoked by installUI.

Overrides:
installComponents in class BasicTabbedPaneUI
See Also:
BasicTabbedPaneUI.installComponents()

uninstallComponents

protected void uninstallComponents()
Removes any installed subcomponents from the JTabbedPane. Invoked by uninstallUI.

Overrides:
uninstallComponents in class BasicTabbedPaneUI
See Also:
BasicTabbedPaneUI.uninstallComponents()

installKeyboardActions

protected void installKeyboardActions()
Overrides:
installKeyboardActions in class BasicTabbedPaneUI

createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
Creates and answer a handler that listens to property changes. Unlike the superclass BasicTabbedPane, the PlasticTabbedPaneUI uses an extended Handler.

Overrides:
createPropertyChangeListener in class BasicTabbedPaneUI

createChangeListener

protected ChangeListener createChangeListener()
Overrides:
createChangeListener in class BasicTabbedPaneUI

paint

public void paint(Graphics g,
                  JComponent c)
Overrides:
paint in class MetalTabbedPaneUI

paintTab

protected void paintTab(Graphics g,
                        int tabPlacement,
                        Rectangle[] rects,
                        int tabIndex,
                        Rectangle iconRect,
                        Rectangle textRect)
Overrides:
paintTab in class BasicTabbedPaneUI

tabForCoordinate

public int tabForCoordinate(JTabbedPane pane,
                            int x,
                            int y)
Returns the tab index which intersects the specified point in the JTabbedPane's coordinate space.

Overrides:
tabForCoordinate in class BasicTabbedPaneUI

getTabBounds

protected Rectangle getTabBounds(int tabIndex,
                                 Rectangle dest)
Overrides:
getTabBounds in class BasicTabbedPaneUI

paintTabArea

protected void paintTabArea(Graphics g,
                            int tabPlacement,
                            int selectedIndex)
Overrides:
paintTabArea in class BasicTabbedPaneUI

layoutLabel

protected void layoutLabel(int tabPlacement,
                           FontMetrics metrics,
                           int tabIndex,
                           String title,
                           Icon icon,
                           Rectangle tabRect,
                           Rectangle iconRect,
                           Rectangle textRect,
                           boolean isSelected)
Overrides:
layoutLabel in class BasicTabbedPaneUI

getIconForTab

protected Icon getIconForTab(int tabIndex)
Answers the icon for the tab with the specified index. In case, we have globally switched of the use tab icons, we answer null if and only if we have a title.

Overrides:
getIconForTab in class BasicTabbedPaneUI

createLayoutManager

protected LayoutManager createLayoutManager()
Creates the layout manager used to set the tab's bounds.

Overrides:
createLayoutManager in class MetalTabbedPaneUI

isTabInFirstRun

protected boolean isTabInFirstRun(int tabIndex)

paintContentBorder

protected void paintContentBorder(Graphics g,
                                  int tabPlacement,
                                  int selectedIndex)
Overrides:
paintContentBorder in class BasicTabbedPaneUI

getContentBorderInsets

protected Insets getContentBorderInsets(int tabPlacement)
Returns the insets (i.e. the width) of the content Border.

Overrides:
getContentBorderInsets in class BasicTabbedPaneUI

getTabAreaInsets

protected Insets getTabAreaInsets(int tabPlacement)
Returns the amount by which the Tab Area is inset.

Overrides:
getTabAreaInsets in class BasicTabbedPaneUI

getTabLabelShiftX

protected int getTabLabelShiftX(int tabPlacement,
                                int tabIndex,
                                boolean isSelected)
Returns the amount by which the label should be shifted horizontally.

Overrides:
getTabLabelShiftX in class MetalTabbedPaneUI

getTabLabelShiftY

protected int getTabLabelShiftY(int tabPlacement,
                                int tabIndex,
                                boolean isSelected)
Returns the amount by which the label should be shifted vertically.

Overrides:
getTabLabelShiftY in class MetalTabbedPaneUI

getTabRunOverlay

protected int getTabRunOverlay(int tabPlacement)
Returns the amount (in pixels) by which two runs should overlap.

Overrides:
getTabRunOverlay in class MetalTabbedPaneUI

shouldPadTabRun

protected boolean shouldPadTabRun(int tabPlacement,
                                  int run)
This boolean controls wheather the given run should be padded to use up as much space as the others (with more tabs in them).

Overrides:
shouldPadTabRun in class MetalTabbedPaneUI

getTabRunIndent

protected int getTabRunIndent(int tabPlacement,
                              int run)
Returns the amount by which the run number run should be indented. Add six pixels for every run to make diagonal lines align.

Overrides:
getTabRunIndent in class BasicTabbedPaneUI

getTabInsets

protected Insets getTabInsets(int tabPlacement,
                              int tabIndex)
Returns the insets for this tab.

Overrides:
getTabInsets in class BasicTabbedPaneUI

getSelectedTabPadInsets

protected Insets getSelectedTabPadInsets(int tabPlacement)
Returns the insets for selected tab.

Overrides:
getSelectedTabPadInsets in class BasicTabbedPaneUI

paintFocusIndicator

protected void paintFocusIndicator(Graphics g,
                                   int tabPlacement,
                                   Rectangle[] rectangles,
                                   int tabIndex,
                                   Rectangle iconRect,
                                   Rectangle textRect,
                                   boolean isSelected)
Draws the rectancle around the Tab label which indicates keyboard focus.

Overrides:
paintFocusIndicator in class MetalTabbedPaneUI

paintTabBackground

protected void paintTabBackground(Graphics g,
                                  int tabPlacement,
                                  int tabIndex,
                                  int x,
                                  int y,
                                  int w,
                                  int h,
                                  boolean isSelected)
Fills the background of the given tab to make sure overlap of tabs is handled correctly. Note: that tab backgrounds seem to be painted somewhere else, too.

Overrides:
paintTabBackground in class MetalTabbedPaneUI

paintTabBorder

protected void paintTabBorder(Graphics g,
                              int tabPlacement,
                              int tabIndex,
                              int x,
                              int y,
                              int w,
                              int h,
                              boolean isSelected)
Paints the border for one tab. Gets the bounds of the tab as parameters. Note that the result is not clipped so you can paint outside that rectangle. Tabs painted later on have a chance to overwrite though.

Overrides:
paintTabBorder in class MetalTabbedPaneUI

shouldRotateTabRuns

protected boolean shouldRotateTabRuns(int tabPlacement)
Answers wheather tab runs should be rotated. If true, the layout mechanism will move the run containing the selected tab so that it touches the content pane.

Overrides:
shouldRotateTabRuns in class BasicTabbedPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticPasswordFieldUI.html0000644000175000017500000007337312003555446027317 0ustar tonytony PlasticPasswordFieldUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticPasswordFieldUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextFieldUI
                  extended by javax.swing.plaf.basic.BasicPasswordFieldUI
                      extended by com.jgoodies.looks.plastic.PlasticPasswordFieldUI
All Implemented Interfaces:
ViewFactory

public final class PlasticPasswordFieldUI
extends BasicPasswordFieldUI

The JGoodies PlasticXP Look&Feel implementation of a password field UI delegate. It differs from its superclass in that it utilizes a custom caret.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
PlasticPasswordFieldUI()
           
 
Method Summary
protected  Caret createCaret()
          Creates the caret for a field.
static ComponentUI createUI(JComponent c)
          Creates a UI for a JPasswordField.
 
Methods inherited from class javax.swing.plaf.basic.BasicPasswordFieldUI
create, getPropertyPrefix, installDefaults
 
Methods inherited from class javax.swing.plaf.basic.BasicTextFieldUI
getBaseline, getBaselineResizeBehavior
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getMinimumSize, getNextVisualPositionFrom, getPreferredSize, getRootView, getToolTipText, getVisibleEditorRect, installKeyboardActions, installListeners, installUI, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, propertyChange, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticPasswordFieldUI

public PlasticPasswordFieldUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JPasswordField.

Parameters:
c - the password field component
Returns:
the UI

createCaret

protected Caret createCaret()
Creates the caret for a field.

Overrides:
createCaret in class BasicTextUI
Returns:
the caret


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticFormattedTextFieldUI.html0000644000175000017500000007317412003555446030306 0ustar tonytony PlasticFormattedTextFieldUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticFormattedTextFieldUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.TextUI
          extended by javax.swing.plaf.basic.BasicTextUI
              extended by javax.swing.plaf.basic.BasicTextFieldUI
                  extended by javax.swing.plaf.basic.BasicFormattedTextFieldUI
                      extended by com.jgoodies.looks.plastic.PlasticFormattedTextFieldUI
All Implemented Interfaces:
ViewFactory

public final class PlasticFormattedTextFieldUI
extends BasicFormattedTextFieldUI

The JGoodies Plastic L&F implementation of TextFieldUI. In addition to its superclass MetalTextFieldUI, it can use a caret that selects all text when the field gains focus via the keyboard.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI
BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
 
Constructor Summary
PlasticFormattedTextFieldUI()
           
 
Method Summary
protected  Caret createCaret()
          Creates the caret for a field.
static ComponentUI createUI(JComponent c)
          Creates a UI for a JFormattedTextField.
 
Methods inherited from class javax.swing.plaf.basic.BasicFormattedTextFieldUI
getPropertyPrefix
 
Methods inherited from class javax.swing.plaf.basic.BasicTextFieldUI
create, getBaseline, getBaselineResizeBehavior
 
Methods inherited from class javax.swing.plaf.basic.BasicTextUI
create, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getMinimumSize, getNextVisualPositionFrom, getPreferredSize, getRootView, getToolTipText, getVisibleEditorRect, installDefaults, installKeyboardActions, installListeners, installUI, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, propertyChange, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticFormattedTextFieldUI

public PlasticFormattedTextFieldUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Creates a UI for a JFormattedTextField.

Parameters:
c - the formatted text field
Returns:
the UI

createCaret

protected Caret createCaret()
Creates the caret for a field.

Overrides:
createCaret in class BasicTextUI
Returns:
the caret


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/plastic/PlasticSplitPaneUI.html0000644000175000017500000011131612003555446026436 0ustar tonytony PlasticSplitPaneUI (JGoodies Looks 2.5 API)

com.jgoodies.looks.plastic
Class PlasticSplitPaneUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.SplitPaneUI
          extended by javax.swing.plaf.basic.BasicSplitPaneUI
              extended by com.jgoodies.looks.plastic.PlasticSplitPaneUI

public final class PlasticSplitPaneUI
extends BasicSplitPaneUI

The JGoodies Plastic L&F implementation of SplitPaneUI. Uses a special divider that paints modified one-touch buttons.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
PlasticSplitPaneDivider

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicSplitPaneUI
BasicSplitPaneUI.BasicHorizontalLayoutManager, BasicSplitPaneUI.BasicVerticalLayoutManager, BasicSplitPaneUI.FocusHandler, BasicSplitPaneUI.KeyboardDownRightHandler, BasicSplitPaneUI.KeyboardEndHandler, BasicSplitPaneUI.KeyboardHomeHandler, BasicSplitPaneUI.KeyboardResizeToggleHandler, BasicSplitPaneUI.KeyboardUpLeftHandler, BasicSplitPaneUI.PropertyHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicSplitPaneUI
beginDragDividerLocation, divider, dividerResizeToggleKey, dividerSize, downKey, draggingHW, endKey, focusListener, homeKey, KEYBOARD_DIVIDER_MOVE_OFFSET, keyboardDownRightListener, keyboardEndListener, keyboardHomeListener, keyboardResizeToggleListener, keyboardUpLeftListener, layoutManager, leftKey, NON_CONTINUOUS_DIVIDER, nonContinuousLayoutDivider, propertyChangeListener, rightKey, splitPane, upKey
 
Constructor Summary
PlasticSplitPaneUI()
           
 
Method Summary
 BasicSplitPaneDivider createDefaultDivider()
          Creates and returns the modified default divider.
static ComponentUI createUI(JComponent x)
           
 
Methods inherited from class javax.swing.plaf.basic.BasicSplitPaneUI
createDefaultNonContinuousLayoutDivider, createFocusListener, createKeyboardDownRightListener, createKeyboardEndListener, createKeyboardHomeListener, createKeyboardResizeToggleListener, createKeyboardUpLeftListener, createPropertyChangeListener, dragDividerTo, finishDraggingTo, finishedPaintingChildren, getDivider, getDividerBorderSize, getDividerLocation, getInsets, getLastDragLocation, getMaximumDividerLocation, getMaximumSize, getMinimumDividerLocation, getMinimumSize, getNonContinuousLayoutDivider, getOrientation, getPreferredSize, getSplitPane, installDefaults, installKeyboardActions, installListeners, installUI, isContinuousLayout, paint, resetLayoutManager, resetToPreferredSizes, setContinuousLayout, setDividerLocation, setLastDragLocation, setNonContinuousLayoutDivider, setNonContinuousLayoutDivider, setOrientation, startDragging, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticSplitPaneUI

public PlasticSplitPaneUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent x)

createDefaultDivider

public BasicSplitPaneDivider createDefaultDivider()
Creates and returns the modified default divider.

Overrides:
createDefaultDivider in class BasicSplitPaneUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/MicroLayout.html0000644000175000017500000006726412003555444023603 0ustar tonytony MicroLayout (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class MicroLayout

java.lang.Object
  extended by com.jgoodies.looks.MicroLayout

public final class MicroLayout
extends Object

Describes the insets and margins used by a Look&Feel or theme.

Since:
2.1
Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch

Constructor Summary
MicroLayout(InsetsUIResource textInsets, InsetsUIResource wrappedTextInsets, InsetsUIResource comboBoxEditorInsets, int comboBorderSize, int comboPopupBorderSize, Insets buttonBorderInsets, InsetsUIResource buttonMargin, InsetsUIResource commitButtonMargin, InsetsUIResource checkBoxMargin, InsetsUIResource menuItemMargin, InsetsUIResource menuMargin, InsetsUIResource popupMenuSeparatorMargin)
           
 
Method Summary
 Insets getButtonBorderInsets()
          Returns the insets used for button borders.
 InsetsUIResource getButtonMargin()
          Returns the margin used for standard buttons.
 InsetsUIResource getCheckBoxMargin()
           
 int getComboBorderSize()
           
 InsetsUIResource getComboBoxEditorInsets()
           
 int getComboPopupBorderSize()
           
 InsetsUIResource getCommitButtonMargin()
          Returns the margin used for commit buttons in command areas.
 InsetsUIResource getMenuItemMargin()
           
 InsetsUIResource getMenuMargin()
           
 InsetsUIResource getPopupMenuSeparatorMargin()
           
 InsetsUIResource getTextInsets()
           
 InsetsUIResource getWrappedTextInsets()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MicroLayout

public MicroLayout(InsetsUIResource textInsets,
                   InsetsUIResource wrappedTextInsets,
                   InsetsUIResource comboBoxEditorInsets,
                   int comboBorderSize,
                   int comboPopupBorderSize,
                   Insets buttonBorderInsets,
                   InsetsUIResource buttonMargin,
                   InsetsUIResource commitButtonMargin,
                   InsetsUIResource checkBoxMargin,
                   InsetsUIResource menuItemMargin,
                   InsetsUIResource menuMargin,
                   InsetsUIResource popupMenuSeparatorMargin)
Method Detail

getButtonBorderInsets

public Insets getButtonBorderInsets()
Returns the insets used for button borders.

Returns:
the insets used for button borders.

getButtonMargin

public InsetsUIResource getButtonMargin()
Returns the margin used for standard buttons. These insets describe buttons that are arranged with other components in a row of a form. The standard button height will often be the same for text fields, combo boxes, and other components that are arranged in a row.

Toolbar buttons may have a different height, as well as commit buttons that are placed in a special command bar area, for example OK, Cancel, Apply.

Returns:
the margin for standard buttons.
See Also:
getCommitButtonMargin()

getCommitButtonMargin

public InsetsUIResource getCommitButtonMargin()
Returns the margin used for commit buttons in command areas. Such command areas are often at the bottom or side of a dialog or pane; frequently used labels are OK, Cancel, Apply, Yes, No, Retry. The height of a commit button may differ from the height used for buttons that are arranged in a row with other components in a form.

Returns:
the margin for commit buttons in command areas.
See Also:
getButtonMargin()

getComboBorderSize

public int getComboBorderSize()

getComboPopupBorderSize

public int getComboPopupBorderSize()

getComboBoxEditorInsets

public InsetsUIResource getComboBoxEditorInsets()

getCheckBoxMargin

public InsetsUIResource getCheckBoxMargin()

getMenuItemMargin

public InsetsUIResource getMenuItemMargin()

getMenuMargin

public InsetsUIResource getMenuMargin()

getPopupMenuSeparatorMargin

public InsetsUIResource getPopupMenuSeparatorMargin()

getTextInsets

public InsetsUIResource getTextInsets()

getWrappedTextInsets

public InsetsUIResource getWrappedTextInsets()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/FontPolicy.html0000644000175000017500000002436612003555444023416 0ustar tonytony FontPolicy (JGoodies Looks 2.5 API)

com.jgoodies.looks
Interface FontPolicy


public interface FontPolicy

Looks up and returns a FontSet.

Since:
2.0
Version:
$Revision: 1.6 $
Author:
Karsten Lentzsch
See Also:
FontSet, FontPolicies

Method Summary
 FontSet getFontSet(String lafName, UIDefaults table)
          Looks up and returns a set of fonts that will be used by a Look&Feel to set the default fonts for its components.
 

Method Detail

getFontSet

FontSet getFontSet(String lafName,
                   UIDefaults table)
Looks up and returns a set of fonts that will be used by a Look&Feel to set the default fonts for its components.

This method is invoked during the L&F component initialization. And the invoker hands over the UIDefaults object used to define the component settings. Hence, the UIDefaults object may be used to look up a font as initialized by a super Look&Feel. For example the JGoodies Windows L&F could use the defaults set by the super L&F, the Sun Windows L&F.

Parameters:
lafName - the name of the Look&Feel that requests the fonts
table - the UIDefaults table that can be used to look up fonts of a super L&F
Returns:
a set of fonts used as default for the component.


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/0000755000175000017500000000000012003555446022330 5ustar tonytonyjgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/FontPolicies.html0000644000175000017500000001364512003555446025625 0ustar tonytony Uses of Class com.jgoodies.looks.FontPolicies (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.FontPolicies

No usage of com.jgoodies.looks.FontPolicies



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/MicroLayoutPolicies.html0000644000175000017500000001375312003555446027166 0ustar tonytony Uses of Class com.jgoodies.looks.MicroLayoutPolicies (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.MicroLayoutPolicies

No usage of com.jgoodies.looks.MicroLayoutPolicies



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/FontSets.html0000644000175000017500000001357512003555446024776 0ustar tonytony Uses of Class com.jgoodies.looks.FontSets (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.FontSets

No usage of com.jgoodies.looks.FontSets



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/Options.html0000644000175000017500000001356312003555446024661 0ustar tonytony Uses of Class com.jgoodies.looks.Options (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.Options

No usage of com.jgoodies.looks.Options



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/LookUtils.html0000644000175000017500000001360712003555446025152 0ustar tonytony Uses of Class com.jgoodies.looks.LookUtils (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.LookUtils

No usage of com.jgoodies.looks.LookUtils



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/MicroLayoutPolicy.html0000644000175000017500000002775112003555446026661 0ustar tonytony Uses of Interface com.jgoodies.looks.MicroLayoutPolicy (JGoodies Looks 2.5 API)

Uses of Interface
com.jgoodies.looks.MicroLayoutPolicy

Packages that use MicroLayoutPolicy
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs 
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F 
 

Uses of MicroLayoutPolicy in com.jgoodies.looks
 

Methods in com.jgoodies.looks that return MicroLayoutPolicy
static MicroLayoutPolicy MicroLayoutPolicies.getDefaultPlasticPolicy()
          Returns the default MicroLayoutPolicy for the Plastic L&fs.
static MicroLayoutPolicy MicroLayoutPolicies.getDefaultWindowsPolicy()
          Returns the default MicroLayoutPolicy for the Windows L&f.
 

Uses of MicroLayoutPolicy in com.jgoodies.looks.plastic
 

Methods in com.jgoodies.looks.plastic that return MicroLayoutPolicy
static MicroLayoutPolicy PlasticLookAndFeel.getMicroLayoutPolicy()
          Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs.
 

Uses of MicroLayoutPolicy in com.jgoodies.looks.windows
 

Methods in com.jgoodies.looks.windows that return MicroLayoutPolicy
static MicroLayoutPolicy WindowsLookAndFeel.getMicroLayoutPolicy()
          Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Windows Look&Feel.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/HeaderStyle.html0000644000175000017500000002372712003555446025442 0ustar tonytony Uses of Class com.jgoodies.looks.HeaderStyle (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.HeaderStyle

Packages that use HeaderStyle
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs 
 

Uses of HeaderStyle in com.jgoodies.looks
 

Fields in com.jgoodies.looks declared as HeaderStyle
static HeaderStyle HeaderStyle.BOTH
           
static HeaderStyle HeaderStyle.SINGLE
           
 

Methods in com.jgoodies.looks that return HeaderStyle
static HeaderStyle HeaderStyle.from(JMenuBar menuBar)
          Looks up the client property for the HeaderStyle from the JToolBar.
static HeaderStyle HeaderStyle.from(JToolBar toolBar)
          Looks up the client property for the HeaderStyle from the JToolBar.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/MicroLayout.html0000644000175000017500000004547412003555446025503 0ustar tonytony Uses of Class com.jgoodies.looks.MicroLayout (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.MicroLayout

Packages that use MicroLayout
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs 
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F 
 

Uses of MicroLayout in com.jgoodies.looks
 

Methods in com.jgoodies.looks that return MicroLayout
static MicroLayout MicroLayouts.createPlasticHiResMicroLayout()
           
static MicroLayout MicroLayouts.createPlasticLowResMicroLayout()
           
static MicroLayout MicroLayouts.createPlasticVistaClassicMicroLayout()
           
static MicroLayout MicroLayouts.createPlasticVistaMicroLayout()
           
static MicroLayout MicroLayouts.createPlasticXPHiResMicroLayout()
           
static MicroLayout MicroLayouts.createPlasticXPLowResMicroLayout()
           
static MicroLayout MicroLayouts.createPlasticXPVistaClassicMicroLayout()
           
static MicroLayout MicroLayouts.createPlasticXPVistaMicroLayout()
           
static MicroLayout MicroLayouts.createWindowsClassicHiResMicroLayout()
           
static MicroLayout MicroLayouts.createWindowsClassicLowResMicroLayout()
           
static MicroLayout MicroLayouts.createWindowsVistaHiResMicroLayout()
           
static MicroLayout MicroLayouts.createWindowsVistaLowResMicroLayout()
           
static MicroLayout MicroLayouts.createWindowsXPHiResMicroLayout()
           
static MicroLayout MicroLayouts.createWindowsXPLowResMicroLayout()
           
 MicroLayout MicroLayoutPolicy.getMicroLayout(String lafName, UIDefaults table)
          Looks up and returns insets, margins, and gaps that will be used by a Look&Feel to set the component insets, margins and gaps.
 

Uses of MicroLayout in com.jgoodies.looks.plastic
 

Methods in com.jgoodies.looks.plastic with parameters of type MicroLayout
static void PlasticLookAndFeel.setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
          Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs.
 

Uses of MicroLayout in com.jgoodies.looks.windows
 

Methods in com.jgoodies.looks.windows with parameters of type MicroLayout
static void WindowsLookAndFeel.setMicroLayoutPolicy(MicroLayout microLayoutPolicy)
          Sets the MicroLayoutPolicy to be used with the JGoodies Windows L&F.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/FontPolicy.html0000644000175000017500000004664412003555446025322 0ustar tonytony Uses of Interface com.jgoodies.looks.FontPolicy (JGoodies Looks 2.5 API)

Uses of Interface
com.jgoodies.looks.FontPolicy

Packages that use FontPolicy
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs 
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F 
 

Uses of FontPolicy in com.jgoodies.looks
 

Methods in com.jgoodies.looks that return FontPolicy
static FontPolicy FontPolicies.createFixedPolicy(FontSet fontSet)
          Returns a font policy that in turn always returns the specified FontSet.
static FontPolicy FontPolicies.customSettingsPolicy(FontPolicy defaultPolicy)
          Returns a font policy that checks for a custom FontPolicy and a custom FontSet specified in the System settings or UIManager.
static FontPolicy FontPolicies.getDefaultPlasticOnWindowsPolicy()
          Returns the default font policy for Plastic on the Windows platform.
static FontPolicy FontPolicies.getDefaultPlasticPolicy()
          Returns the default Plastic FontPolicy that may vary with the platform and environment.
static FontPolicy FontPolicies.getDefaultWindowsPolicy()
          Returns the default font policy for the Windows platform.
static FontPolicy FontPolicies.getLogicalFontsPolicy()
          Returns a font policy that returns the logical fonts as specified by the Java runtime environment.
static FontPolicy FontPolicies.getLooks1xPlasticPolicy()
          Returns a font policy for getting a Plastic appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x.
static FontPolicy FontPolicies.getLooks1xWindowsPolicy()
          Returns a font policy for getting a Windows appearance that aims to be visual backward compatible with the JGoodies Looks version 1.x.
static FontPolicy FontPolicies.getTransitionalPlasticPolicy()
          Returns a font policy intended for API users that want to move Plastic code from the Looks 1.x to the Looks 2.0.
 

Methods in com.jgoodies.looks with parameters of type FontPolicy
static FontPolicy FontPolicies.customSettingsPolicy(FontPolicy defaultPolicy)
          Returns a font policy that checks for a custom FontPolicy and a custom FontSet specified in the System settings or UIManager.
 

Uses of FontPolicy in com.jgoodies.looks.plastic
 

Methods in com.jgoodies.looks.plastic that return FontPolicy
static FontPolicy PlasticLookAndFeel.getFontPolicy()
          Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family.
 

Methods in com.jgoodies.looks.plastic with parameters of type FontPolicy
static void PlasticLookAndFeel.setFontPolicy(FontPolicy fontPolicy)
          Sets the FontPolicy to be used with the JGoodies Plastic L&F family.
 

Uses of FontPolicy in com.jgoodies.looks.windows
 

Methods in com.jgoodies.looks.windows that return FontPolicy
static FontPolicy WindowsLookAndFeel.getFontPolicy()
          Looks up and retrieves the FontPolicy used by the JGoodies Windows Look&Feel.
 

Methods in com.jgoodies.looks.windows with parameters of type FontPolicy
static void WindowsLookAndFeel.setFontPolicy(FontPolicy fontPolicy)
          Sets the FontPolicy to be used with the JGoodies Windows L&F.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/BorderStyle.html0000644000175000017500000002543312003555446025463 0ustar tonytony Uses of Class com.jgoodies.looks.BorderStyle (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.BorderStyle

Packages that use BorderStyle
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs 
 

Uses of BorderStyle in com.jgoodies.looks
 

Fields in com.jgoodies.looks declared as BorderStyle
static BorderStyle BorderStyle.EMPTY
           
static BorderStyle BorderStyle.ETCHED
           
static BorderStyle BorderStyle.SEPARATOR
           
 

Methods in com.jgoodies.looks that return BorderStyle
static BorderStyle BorderStyle.from(JMenuBar menuBar, String clientPropertyKey)
          Looks up the client property for the header style from the JMenuBar.
static BorderStyle BorderStyle.from(JToolBar toolBar, String clientPropertyKey)
          Looks up the client property for the header style from the JToolBar.
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/MicroLayouts.html0000644000175000017500000001364512003555446025661 0ustar tonytony Uses of Class com.jgoodies.looks.MicroLayouts (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.MicroLayouts

No usage of com.jgoodies.looks.MicroLayouts



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/Fonts.html0000644000175000017500000001353712003555446024320 0ustar tonytony Uses of Class com.jgoodies.looks.Fonts (JGoodies Looks 2.5 API)

Uses of Class
com.jgoodies.looks.Fonts

No usage of com.jgoodies.looks.Fonts



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/class-use/FontSet.html0000644000175000017500000003737612003555446024620 0ustar tonytony Uses of Interface com.jgoodies.looks.FontSet (JGoodies Looks 2.5 API)

Uses of Interface
com.jgoodies.looks.FontSet

Packages that use FontSet
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs 
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs 
 

Uses of FontSet in com.jgoodies.looks
 

Methods in com.jgoodies.looks that return FontSet
static FontSet FontSets.createDefaultFontSet(Font controlFont)
          Creates and returns a FontSet that is based only on the given control font.
static FontSet FontSets.createDefaultFontSet(Font controlFont, Font menuFont)
          Creates and returns a FontSet that is based on the given control font and menu font.
static FontSet FontSets.createDefaultFontSet(Font controlFont, Font menuFont, Font titleFont)
          Creates and returns a FontSet that is based on the given control font and menu font.
static FontSet FontSets.createDefaultFontSet(Font controlFont, Font menuFont, Font titleFont, Font messageFont, Font smallFont, Font windowTitleFont)
          Creates and returns a FontSet for the given fonts.
 FontSet FontPolicy.getFontSet(String lafName, UIDefaults table)
          Looks up and returns a set of fonts that will be used by a Look&Feel to set the default fonts for its components.
static FontSet FontSets.getLogicalFontSet()
          Lazily creates and returns the FontSet that returns the logical fonts specified by the Java runtime environment.
 

Methods in com.jgoodies.looks with parameters of type FontSet
static FontPolicy FontPolicies.createFixedPolicy(FontSet fontSet)
          Returns a font policy that in turn always returns the specified FontSet.
 

Uses of FontSet in com.jgoodies.looks.plastic
 

Methods in com.jgoodies.looks.plastic that return FontSet
protected  FontSet PlasticTheme.getFontSet()
           
 



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/package-summary.html0000644000175000017500000002525012003555446024411 0ustar tonytony com.jgoodies.looks (JGoodies Looks 2.5 API)

Package com.jgoodies.looks

Contains classes to configure the JGoodies L&Fs

See:
          Description

Interface Summary
FontPolicy Looks up and returns a FontSet.
FontSet Returns the Fonts used by a Look&Feel or theme.
MicroLayoutPolicy Looks up and returns a MicroLayout.
 

Class Summary
BorderStyle Describes the border styles for JMenuBar and JToolBar.
FontPolicies Provides predefined FontPolicy implementations.
Fonts Provides static access to popular Windows fonts.
FontSets Provides predefined FontSet implementations.
HeaderStyle Describes the header styles for JMenuBar and JToolBar.
LookUtils Provides convenience behavior used by the JGoodies Looks.
MicroLayout Describes the insets and margins used by a Look&Feel or theme.
MicroLayoutPolicies Provides predefined MicroLayoutPolicy implementations.
MicroLayouts A factory that vends predefined MicroLayout instances.
Options Provides access to optional features of the JGoodies L&Fs via a key to the system properties, via a key for the UIDefaults table, via a method, or all of them.
 

Package com.jgoodies.looks Description

Contains classes to configure the JGoodies L&Fs.

Related Documentation

For more information see:

See Also:
com.jgoodies.looks.common, com.jgoodies.looks.plastic, com.jgoodies.looks.plastic.theme, com.jgoodies.looks.windows


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/BorderStyle.html0000644000175000017500000004323512003555444023562 0ustar tonytony BorderStyle (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class BorderStyle

java.lang.Object
  extended by com.jgoodies.looks.BorderStyle

public final class BorderStyle
extends Object

Describes the border styles for JMenuBar and JToolBar. Border styles are look-dependent and shadow look-independent HeaderStyles.

Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch
See Also:
HeaderStyle

Field Summary
static BorderStyle EMPTY
           
static BorderStyle ETCHED
           
static BorderStyle SEPARATOR
           
 
Method Summary
static BorderStyle from(JMenuBar menuBar, String clientPropertyKey)
          Looks up the client property for the header style from the JMenuBar.
static BorderStyle from(JToolBar toolBar, String clientPropertyKey)
          Looks up the client property for the header style from the JToolBar.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY

public static final BorderStyle EMPTY

SEPARATOR

public static final BorderStyle SEPARATOR

ETCHED

public static final BorderStyle ETCHED
Method Detail

from

public static BorderStyle from(JToolBar toolBar,
                               String clientPropertyKey)
Looks up the client property for the header style from the JToolBar.

Parameters:
toolBar - the tool bar to inspect
clientPropertyKey - the key used to lookup the property
Returns:
the border style used to choose a border in the UI delegate

from

public static BorderStyle from(JMenuBar menuBar,
                               String clientPropertyKey)
Looks up the client property for the header style from the JMenuBar.

Parameters:
menuBar - the menu bar to inspect
clientPropertyKey - the key used to lookup the property
Returns:
the border style used to choose a border in the UI delegate

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/MicroLayouts.html0000644000175000017500000005405712003555444023762 0ustar tonytony MicroLayouts (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class MicroLayouts

java.lang.Object
  extended by com.jgoodies.looks.MicroLayouts

public final class MicroLayouts
extends Object

A factory that vends predefined MicroLayout instances.

Since:
2.1
Version:
$Revision: 1.6 $
Author:
Karsten Lentzsch
See Also:
MicroLayout, MicroLayoutPolicy, MicroLayoutPolicies

Method Summary
static MicroLayout createPlasticHiResMicroLayout()
           
static MicroLayout createPlasticLowResMicroLayout()
           
static MicroLayout createPlasticVistaClassicMicroLayout()
           
static MicroLayout createPlasticVistaMicroLayout()
           
static MicroLayout createPlasticXPHiResMicroLayout()
           
static MicroLayout createPlasticXPLowResMicroLayout()
           
static MicroLayout createPlasticXPVistaClassicMicroLayout()
           
static MicroLayout createPlasticXPVistaMicroLayout()
           
static MicroLayout createWindowsClassicHiResMicroLayout()
           
static MicroLayout createWindowsClassicLowResMicroLayout()
           
static MicroLayout createWindowsVistaHiResMicroLayout()
           
static MicroLayout createWindowsVistaLowResMicroLayout()
           
static MicroLayout createWindowsXPHiResMicroLayout()
           
static MicroLayout createWindowsXPLowResMicroLayout()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createPlasticLowResMicroLayout

public static MicroLayout createPlasticLowResMicroLayout()

createPlasticHiResMicroLayout

public static MicroLayout createPlasticHiResMicroLayout()

createPlasticVistaMicroLayout

public static MicroLayout createPlasticVistaMicroLayout()

createPlasticVistaClassicMicroLayout

public static MicroLayout createPlasticVistaClassicMicroLayout()

createPlasticXPLowResMicroLayout

public static MicroLayout createPlasticXPLowResMicroLayout()

createPlasticXPHiResMicroLayout

public static MicroLayout createPlasticXPHiResMicroLayout()

createPlasticXPVistaMicroLayout

public static MicroLayout createPlasticXPVistaMicroLayout()

createPlasticXPVistaClassicMicroLayout

public static MicroLayout createPlasticXPVistaClassicMicroLayout()

createWindowsClassicLowResMicroLayout

public static MicroLayout createWindowsClassicLowResMicroLayout()

createWindowsClassicHiResMicroLayout

public static MicroLayout createWindowsClassicHiResMicroLayout()

createWindowsXPLowResMicroLayout

public static MicroLayout createWindowsXPLowResMicroLayout()

createWindowsXPHiResMicroLayout

public static MicroLayout createWindowsXPHiResMicroLayout()

createWindowsVistaLowResMicroLayout

public static MicroLayout createWindowsVistaLowResMicroLayout()

createWindowsVistaHiResMicroLayout

public static MicroLayout createWindowsVistaHiResMicroLayout()


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/Fonts.html0000644000175000017500000010010012003555444022376 0ustar tonytony Fonts (JGoodies Looks 2.5 API)

com.jgoodies.looks
Class Fonts

java.lang.Object
  extended by com.jgoodies.looks.Fonts

public final class Fonts
extends Object

Provides static access to popular Windows fonts. The sizes of the font constants are specified in typographic points, approximately 1/72 of an inch.

TODO: Consider changing the visibility of the package private methods to public. As an alternative we may provide a FontPolicy that can emulate the font choice on Windows XP/2000 and Windows Vista for different software resolutions (96dpi/120dpi) and desktop font size settings (Normal/Large/Extra Large).

Since:
2.0
Version:
$Revision: 1.22 $
Author:
Karsten Lentzsch
See Also:
FontSet, FontSets, FontPolicy, FontPolicies

Field Summary
static Font SEGOE_UI_12PT
          This is Segoe UI 9pt, the default font on western Vista with 96dpi.
static Font SEGOE_UI_13PT
          Ascent=14, descent=4, height=18, dbuX=8, dbuY=14, 13dluY=22.75px.
static Font SEGOE_UI_15PT
          Ascent=16, descent=5, height=21, dbuX=9, dbuY=16, 13dluY=26px.
static String SEGOE_UI_NAME
          The name of the default dialog font on western Windows Vista.
static Font TAHOMA_11PT
          This is the default font on western XP with 96dpi and normal fonts.
static Font TAHOMA_13PT
          Ascent=13, descent=3, height=16, dbuX=8, dbuY=13, 14dluY=22.75px.
static Font TAHOMA_14PT
          Ascent=14, descent=3, height=17, dbuX=8, dbuY=14, 14dluY=24.5px.
static String TAHOMA_NAME
          The name of the default dialog font on western Windows XP.
static Font WINDOWS_VISTA_120DPI_NORMAL
          The default icon font on western Windows Vista with 120dpi and the dialog font desktop setting "Normal".
static Font WINDOWS_VISTA_96DPI_LARGE
          The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Large".
static Font WINDOWS_VISTA_96DPI_NORMAL
          The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Normal".
static Font WINDOWS_XP_120DPI_DEFAULT_GUI
          The default GUI font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".
static Font WINDOWS_XP_120DPI_NORMAL
          The default icon font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".
static Font WINDOWS_XP_96DPI_DEFAULT_GUI
          The default GUI font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".
static Font WINDOWS_XP_96DPI_LARGE
          The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Large".
static Font WINDOWS_XP_96DPI_NORMAL
          The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".
 
Method Summary
static Boolean canDisplayLocalizedText(Font font, Locale locale)
          Checks and answers whether the given font can display text that is localized for the specified locale.
static Font getWindowsControlFont()
          Looks up and returns the Windows control font.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TAHOMA_NAME

public static final String TAHOMA_NAME
The name of the default dialog font on western Windows XP.

See Also:
Constant Field Values

SEGOE_UI_NAME

public static final String SEGOE_UI_NAME
The name of the default dialog font on western Windows Vista.

See Also:
Constant Field Values

TAHOMA_11PT

public static final Font TAHOMA_11PT
This is the default font on western XP with 96dpi and normal fonts. Ascent=11, descent=3, height=14, dbuX=6, dbuY=12, 14dluY=21px.


TAHOMA_13PT

public static final Font TAHOMA_13PT
Ascent=13, descent=3, height=16, dbuX=8, dbuY=13, 14dluY=22.75px.


TAHOMA_14PT

public static final Font TAHOMA_14PT
Ascent=14, descent=3, height=17, dbuX=8, dbuY=14, 14dluY=24.5px.


SEGOE_UI_12PT

public static final Font SEGOE_UI_12PT
This is Segoe UI 9pt, the default font on western Vista with 96dpi. Ascent=13, descent=4, height=17, dbuX=7, dbuY=13, 13dluY=21.125px.


SEGOE_UI_13PT

public static final Font SEGOE_UI_13PT
Ascent=14, descent=4, height=18, dbuX=8, dbuY=14, 13dluY=22.75px.


SEGOE_UI_15PT

public static final Font SEGOE_UI_15PT
Ascent=16, descent=5, height=21, dbuX=9, dbuY=16, 13dluY=26px.


WINDOWS_XP_96DPI_NORMAL

public static final Font WINDOWS_XP_96DPI_NORMAL
The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".


WINDOWS_XP_96DPI_DEFAULT_GUI

public static final Font WINDOWS_XP_96DPI_DEFAULT_GUI
The default GUI font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".


WINDOWS_XP_96DPI_LARGE

public static final Font WINDOWS_XP_96DPI_LARGE
The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Large".


WINDOWS_XP_120DPI_NORMAL

public static final Font WINDOWS_XP_120DPI_NORMAL
The default icon font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".


WINDOWS_XP_120DPI_DEFAULT_GUI

public static final Font WINDOWS_XP_120DPI_DEFAULT_GUI
The default GUI font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".


WINDOWS_VISTA_96DPI_NORMAL

public static final Font WINDOWS_VISTA_96DPI_NORMAL
The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Normal".


WINDOWS_VISTA_96DPI_LARGE

public static final Font WINDOWS_VISTA_96DPI_LARGE
The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Large".


WINDOWS_VISTA_120DPI_NORMAL

public static final Font WINDOWS_VISTA_120DPI_NORMAL
The default icon font on western Windows Vista with 120dpi and the dialog font desktop setting "Normal".

Method Detail

getWindowsControlFont

public static Font getWindowsControlFont()
Looks up and returns the Windows control font. Returns the Windows icon title font unless it is inappropriate for the Windows version, Java renderer, or locale.

The icon title font scales with the resolution (96dpi, 101dpi, 120dpi, etc) and the desktop font size settings (normal, large, extra large). Older versions may return a poor font. Also, since Java 1.4 and Java 5 render the Windows Vista icon font Segoe UI poorly, we return the default GUI font in these environments.

The last check is, if the icon font can display text in the default locale. Therefore we test if the locale's localized display name can be displayed by the icon font. For example, Tahoma can display "English", "Deutsch", but not the display name for "Chinese" in Chinese.

Returns:
the Windows control font
Throws:
UnsupportedOperationException - on non-Windows platforms

canDisplayLocalizedText

public static Boolean canDisplayLocalizedText(Font font,
                                              Locale locale)
Checks and answers whether the given font can display text that is localized for the specified locale. Returns null if we can't test it.

First checks, if the locale's display language is available in localized form, for example "Deutsch" for the German locale. If so, we check if the given font can display the localized display language.

Otherwise we check some known combinations of fonts and locales and return the associated results. For all other combinations, null is returned to indicate that we don't know whether the font can display text in the given locale.

Parameters:
font - the font to be tested
locale - the locale to be used
Returns:
Boolean.TRUE if the font can display the locale's text, Boolean.FALSE if not, null if we don't know
Since:
2.0.4


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/com/jgoodies/looks/FontSet.html0000644000175000017500000003317612003555444022711 0ustar tonytony FontSet (JGoodies Looks 2.5 API)

com.jgoodies.looks
Interface FontSet


public interface FontSet

Returns the Fonts used by a Look&Feel or theme. These Fonts must implement the UIResource marker interface.

Since:
2.0
Version:
$Revision: 1.9 $
Author:
Karsten Lentzsch

Method Summary
 FontUIResource getControlFont()
          Returns the font used for all dialog components.
 FontUIResource getMenuFont()
          Returns the font used for the menu.
 FontUIResource getMessageFont()
          Returns the font used for message dialogs.
 FontUIResource getSmallFont()
          Returns the font used for tool tips.
 FontUIResource getTitleFont()
          Returns the font used for the title label in TitledBorders.
 FontUIResource getWindowTitleFont()
          Returns the font used for internal frame titles.
 

Method Detail

getControlFont

FontUIResource getControlFont()
Returns the font used for all dialog components.

Returns:
the font used for all dialog components.

getMenuFont

FontUIResource getMenuFont()
Returns the font used for the menu.

Returns:
the font used for the menu.

getTitleFont

FontUIResource getTitleFont()
Returns the font used for the title label in TitledBorders. This font is also used by JGoodies Forms titles, and titled separators.

Returns:
the font used for TitledBorder titles.

getWindowTitleFont

FontUIResource getWindowTitleFont()
Returns the font used for internal frame titles.

Returns:
the font used for internal frame titles.

getSmallFont

FontUIResource getSmallFont()
Returns the font used for tool tips.

Returns:
the tool tip font.

getMessageFont

FontUIResource getMessageFont()
Returns the font used for message dialogs.

Returns:
the font used for message dialogs.


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/index.html0000644000175000017500000000264312003555450016716 0ustar tonytony JGoodies Looks 2.5 API <H2> Frame Alert</H2> <P> This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. <BR> Link to<A HREF="overview-summary.html">Non-frame version.</A> jgoodies-looks-2.5.2/docs/api/deprecated-list.html0000644000175000017500000001234212003555450020655 0ustar tonytony Deprecated List (JGoodies Looks 2.5 API)

Deprecated API


Contents


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/overview-summary.html0000644000175000017500000001772712003555450021161 0ustar tonytony Overview (JGoodies Looks 2.5 API)

JGoodies Looks 2.5 API

This document describes the API of the JGoodies Looks, a library that makes your Swing applications and applets look better.

See:
          Description

Packages
com.jgoodies.looks Contains classes to configure the JGoodies L&Fs
com.jgoodies.looks.common Contains classes shared by all JGoodies Looks implementations
com.jgoodies.looks.plastic Contains the classes for the JGoodies Plastic L&Fs
com.jgoodies.looks.plastic.theme Contains theme classes for the JGoodies Plastic L&Fs
com.jgoodies.looks.windows Contains the classes for the JGoodies Windows L&F

 

This document describes the API of the JGoodies Looks, a library that makes your Swing applications and applets look better. The package consists of a Windows look&feel and the Plastic look&feel family. These have been optimized for readability, precise micro-design and usability.

The JGoodies Looks require Java 6 or later. Versions for older Java runtimes are available at here.

Getting Started

First, download and run the JGoodies Looks Demo. Then follow the Quick Start and read the user's guide. If you want to use a JGoodies l&f in NetBeans read here. As a next step you can study the JGoodies articles and presentations.



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/serialized-form.html0000644000175000017500000002607712003555446020717 0ustar tonytony Serialized Form (JGoodies Looks 2.5 API)

Serialized Form


Package com.jgoodies.looks.common

Class com.jgoodies.looks.common.ComboBoxEditorTextField extends JTextField implements Serializable

Class com.jgoodies.looks.common.PopupMenuLayout extends BoxLayout implements Serializable


Package com.jgoodies.looks.plastic

Class com.jgoodies.looks.plastic.Plastic3DLookAndFeel extends PlasticLookAndFeel implements Serializable

Class com.jgoodies.looks.plastic.PlasticInternalFrameTitlePane extends MetalInternalFrameTitlePane implements Serializable

Serialized Fields

paletteBumps

com.jgoodies.looks.plastic.PlasticBumps paletteBumps

activeBumps

com.jgoodies.looks.plastic.PlasticBumps activeBumps

inactiveBumps

com.jgoodies.looks.plastic.PlasticBumps inactiveBumps

Class com.jgoodies.looks.plastic.PlasticLookAndFeel extends MetalLookAndFeel implements Serializable

Class com.jgoodies.looks.plastic.PlasticXPLookAndFeel extends Plastic3DLookAndFeel implements Serializable


Package com.jgoodies.looks.windows

Class com.jgoodies.looks.windows.WindowsLookAndFeel extends com.sun.java.swing.plaf.windows.WindowsLookAndFeel implements Serializable



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/overview-frame.html0000644000175000017500000000314712003555446020552 0ustar tonytony Overview List (JGoodies Looks 2.5 API)
All Classes

Packages
com.jgoodies.looks
com.jgoodies.looks.common
com.jgoodies.looks.plastic
com.jgoodies.looks.plastic.theme
com.jgoodies.looks.windows

  jgoodies-looks-2.5.2/docs/api/help-doc.html0000644000175000017500000002350512003555450017302 0ustar tonytony API Help (JGoodies Looks 2.5 API)



How This API Document Is Organized

This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

Overview

The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

Package

Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

  • Interfaces (italic)
  • Classes
  • Enums
  • Exceptions
  • Errors
  • Annotation Types

Class/Interface

Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary

  • Field Detail
  • Constructor Detail
  • Method Detail
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

Annotation Type

Each annotation type has its own separate page with the following sections:

  • Annotation Type declaration
  • Annotation Type description
  • Required Element Summary
  • Optional Element Summary
  • Element Detail

Enum

Each enum has its own separate page with the following sections:

  • Enum declaration
  • Enum description
  • Enum Constant Summary
  • Enum Constant Detail

Use

Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

Tree (Class Hierarchy)

There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.

Deprecated API

The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

Index

The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

Prev/Next

These links take you to the next or previous class, interface, package, or related page.

Frames/No Frames

These links show and hide the HTML frames. All pages are available with or without frames.

Serialized Form

Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

Constant Field Values

The Constant Field Values page lists the static final fields and their values.

This help file applies to API documentation generated using the standard doclet.



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/api/overview-tree.html0000644000175000017500000014013212003555450020406 0ustar tonytony Class Hierarchy (JGoodies Looks 2.5 API)

Hierarchy For All Packages

Package Hierarchies:
com.jgoodies.looks, com.jgoodies.looks.common, com.jgoodies.looks.plastic, com.jgoodies.looks.plastic.theme, com.jgoodies.looks.windows

Class Hierarchy

Interface Hierarchy



Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. jgoodies-looks-2.5.2/docs/guide/0000755000175000017500000000000012003555452015242 5ustar tonytonyjgoodies-looks-2.5.2/docs/guide/bars.html0000644000175000017500000001347112003555452017065 0ustar tonytony JGoodies Looks :: User's Guide :: Menu- & Tool Bar
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Menu Bar and Tool Bar Options ::

The following JGoodies options enable you to tweak the visual appearance of your menu- and tool bars.

Setting Header Style

Setting a header style is the recommended way to tell the JGoodies looks, that a menu bar or tool bar is in the application header. Each JGoodies look will look for a header style and then choose an appropriate look-specific border and 3D effect.
   JMenuBar menuBar = new JMenuBar();
   menuBar.putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.BOTH);
   
   JToolBar toolBar = new JToolBar();
   toolBar.putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.BOTH);
Use the HeaderStyle.BOTH if both, menu bar and tool bar are in the application's header. The look may then wrap both components with a border. Use HeaderStyle.SINGLE in case, you have just a menu bar or tool bar in the header.

Border Style

You can override the header style by setting a look-specific BorderStyle: EMPTY, ETCHED, or SEPARATOR. For example:
   JMenuBar menuBar = new JMenuBar();
   menuBar.putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.SINGLE);
   menuBar.putClientProperty(PlasticLookAndFeel.BORDER_STYLE_KEY, BorderStyle.SEPARATOR);

Plastic 3D Hint

Plastic chooses an appropriate default pseudo 3D effect for the specified header and border style. You can override the default by setting a Plastic 3D hint:
   JMenuBar menuBar = new JMenuBar();
   menuBar.putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.SINGLE);
   menuBar.putClientProperty(PlasticLookAndFeel.IS_3D_KEY, Boolean.FALSE);
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/guide/lookandtheme.html0000644000175000017500000001346412003555452020612 0ustar tonytony JGoodies Looks :: User's Guide :: Look and Theme
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Look and Theme ::

Setting a JGoodies Look

This is the preferred way, if you are allowed to import third party libraries:
   try {
      UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
   } catch (Exception e) {}
The class can be one of:
  • com.jgoodies.looks.windows.WindowsLookAndFeel
  • com.jgoodies.looks.plastic.PlasticLookAndFeel
  • com.jgoodies.looks.plastic.Plastic3DLookAndFeel
  • com.jgoodies.looks.plastic.PlasticXPLookAndFeel

Java Web Start

If you use a third party l&f in a network launchable environment such as Java Web Start, you must indicate where to find the l&f classes:
   UIManager.put("ClassLoader", LookUtils.class.getClassLoader());

Setting a JGoodies Look by Name

You can set a JGoodies look using its class name:
   try {
      UIManager.setLookAndFeel("com.jgoodies.looks.windows.WindowsLookAndFeel");
   } catch (Exception e) {}

Setting a Plastic Theme

Plastic, Plastic3D and PlasticXP support color themes much like Sun's Java Look&Feel. At startup the Plastic l&fs automatically choose a default color theme that is appropriate for the current operating system. You can override this default theme via:
   PlasticLookAndFeel.setPlasticTheme(new DesertBlue());
   try {
      UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
   } catch (Exception e) {}
To make use of the new color theme, you must set the theme before you set the look&feel. Find color themes in package com.jgoodies.looks.plastic.theme.
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/guide/plastic.html0000644000175000017500000001267212003555452017577 0ustar tonytony JGoodies Looks :: User's Guide :: Plastic Options
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Plastic Options ::

Plastic Tabbed Pane Style

You can choose between two styles for Plastic tabs: a flat Plastic style vs. the Metal L&F tabs. The default is the Plastic style. Make sure you set the style before you set the Plastic l&f in the UIManager! You can choose one of:
   PlasticLookAndFeel.setTabStyle(PlasticLookAndFeel.TAB_STYLE_DEFAULT_VALUE);
   PlasticLookAndFeel.setTabStyle("Default");
   PlasticLookAndFeel.setTabStyle(PlasticLookAndFeel.TAB_STYLE_METAL_VALUE);
   PlasticLookAndFeel.setTabStyle("Metal");
Also, you can preset this option under the System property key Plastic.tabStyle, in a command line:
   java -DPlastic.tabStyle=Metal -jar ...

Plastic Focus Color Contrast

You can choose between two styles for Plastic focus colors: low vs. high contrast; the default is low. You can choose one of:
   PlasticLookAndFeel.setHighContrastFocusColorsEnabled(true);

Custom Color Themes

You can create and use custom Plastic themes; they must subclass com.jgoodies.looks.plastic.PlasticTheme.

Plastic Scroll Bar Max Bump Width

You can set a global property to set a maximum width for the Plastic scroll bar bumps. For example, the Plastic theme Desert Bluer uses this effect.
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/guide/index.html0000644000175000017500000001551212003555452017243 0ustar tonytony JGoodies Looks :: User's Guide :: Introduction
:: JGOODIES Looks :: Professional Swing Look&Feels

:: User's Guide :: Introduction ::

The JGoodies Looks distribution provides four Swing look&feel implementations. This guide explains how to install and configure these looks.

Before You Start

To use the JGoodies look&feels add jgoodies-looks-x.x.x.jar to your user classpath.
Do not put the jar into the extension directory! Learn why...

As an alternative, you can import the sources or extract the class files from the JAR for inclusion in one of your application JARs.

Class References vs. Name References

There are two ways to work with the JGoodies l&f and optional settings:

1) You refer to JGoodies classes. This is compile-time safe and less error-prone. But it requires to import JGoodies classes; and so this can be used only if you can ensure that the JGoodies Looks are in the classpath at runtime.

2) You can use names/strings. If you are not sure whether the JGoodies Looks will be available at runtime, you can choose the l&f and options using names.

UIManager vs. JGoodies Classes

You can either specify JGoodies options via the UIManager class or via JGoodies classes, most noticably the Options class.

You can put values for specific keys in the UIManager. This decouples your application code from the JGoodies implementations, and so avoids the need to import JGoodies classes in your code. This is the recommended way, if you cannot (easily) modify your code, or if you are not allowed to import third party libraries.

Calling the JGoodies methods enables static compiler checks and will be the preferred way to set options, if you have full control over your application code.

Global vs. Look-Specific Settings

The JGoodies Windows L&F and the JGoodies Plastic L&F introduce and share several optional settings. You can find all global options in class com.jgoodies.looks.Options, and look-specific settings in the particular LookAndFeel subclasses: WindowsLookAndFeel, PlasticLookAndFeel, Plastic3DLookAndFeel and PlasticXPLookAndFeel.

Optional Settings

The JGoodies l&fs introduce several optional l&f properties and JComponent client properties that enable you to tweak your application's visual appearance. You can find keys and/or accessors to this optional behavior in class com.jgoodies.looks.Options.

The Simple Looks Demo uses several of these settings. Beyond that, the JGoodies Looks Demo let's you play around with these options.

(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/guide/3d.html0000644000175000017500000001141612003555452016441 0ustar tonytony JGoodies Looks :: User's Guide :: Plastic 3D Effects
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Plastic 3D Effects and 3D Hints ::

You can enable or disable the pseudo 3D effect in the JGoodies Plastic and Plastic3D looks for a widget type and for individual widgets:
   UIManager.put("ScrollBar.is3DEnabled", Boolean.FALSE);
   
   JButton button = new JButton("Flat");
   button.putClientProperty("is3DEnabled", Boolean.FALSE);

The Plastic3D look differs from the Plastic look in that it enables the 3D effects per default for all widgets. However, some Plastic themes, override this default, for example, to use flat scroll bars.

In some conditions Plastic will refuse to use a 3D effect, for example, if a JButton paints no border.

(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/guide/fonts.html0000644000175000017500000002147312003555452017270 0ustar tonytony JGoodies Looks :: User's Guide :: Font Settings
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Font Settings ::

The JGoodies Looks 2.0 use a completely overhauled font lookup. On Windows this mechanism aims to use the native originals. On other platforms it uses the logical fonts defined by the Java environment. It is recommended to use the fonts suggested by the JGoodies Looks - at least on Windows.

You can customize the fonts used by the JGoodies Windows L&f and the Plastic L&f family. You can set a fixed control and menu fonts, provide a set of fonts, or replace the default font lookup with a custom font policy.

Setting the Control and Menu Font

If you just want to set a specific font for the components and menu, set it in the system properties, either as a runtime argument or during the application start.
    java -DWindows.controlFont="Segoe UI-plain-15" 
         -DPlastic.controlFont="Segoe UI-plain-15" 
         ...

    java -DWindows.controlFont=Tahoma-plain-11 
         -DWindows.menuFont=Tahoma-plain-12
         -DPlastic.controlFont=Tahoma-plain-11 
         -DPlastic.menuFont=Tahoma-bold-11 
	     ...
	     
    System.setProperty("Windows.controlFont", "Segoe UI-plain-15");
    System.setProperty("Plastic.controlFont", "Segoe UI-plain-15");

FontSet and FontSets

The JGoodies L&fs use instances of FontSet to describe the fonts used for the components, menus, tool tips, etc. The class FontSets vends predefined FontSet instances. Here's an example how to use a custom FontSet:
FontSet fontSet = FontSets.createDefaultFontSet(
    new Font("Tahoma", Font.PLAIN, 11),    // control font
    new Font("Tahoma", Font.PLAIN, 12),    // menu font
    new Font("Tahoma", Font.BOLD, 11),     // title font
    );
FontPolicy fixedPolicy = FontPolicies.createFixedPolicy(fontSet);
PlasticLookAndFeel.setFontPolicy(fixedPolicy);

FontPolicy and FontPolicies

The JGoodies Windows L&f and the Plastic L&f family use a FontPolicy to determine the FontSet to be used. Typically a FontPolicy returns a FontSet that varies with the L&f, locale, platform, and platform settings such as the software display resolution or user desktop settings. Class FontPolicies vends predefined FontPolicy instances. Here's an example for a custom FontPolicy that sets custom fonts on a special platform:
public final class MyPlasticFontPolicy implements FontPolicy {

    public FontSet getFontSet(String lafName, UIDefaults table) {
        if (MyFontUtils.IS_TAHOMA_AVAILABE) {
            Font controlFont = MyFonts.getTahoma();
            return FontSets.createDefaultFontSet(controlFont);
        } 
        if (MySystemUtils.IS_OS_LINUX_UBUNTU) {
            return MyFontSets.getUbuntuFontSet();
        } 
        FontPolicy default = FontPolicies.getDefaultPlasticFontPolicy().
        return default.getFontSet(lafName, table);
    }
}

// Instantiate my Plastic font policy.
FontPolicy myPlasticFontPolicy = new MyPlasticFontPolicy();

// Wrap the above to honor the System properties (Plastic.controlFont, etc).
FontPolicy myFontPolicy = FontPolicies.customSettingsPolicy(
    myPlasticFontPolicy);
    
// Set the wrapped policy.
PlasticLookAndFeel.setFontPolicy(myFontPolicy);

Fonts

The Fonts class provides fonts and font names For popular Windows fonts. For example Fonts.WINDOWS_XP_96DPI_NORMAL is the default font on Windows XP with a 96dpi software resolution and a desktop font size Normal. This can be used to preview how your application looks in different environments:
Font controlFont = Fonts.WINDOWS_VISTA_96DPI_NORMAL;
FontSet fontSet = FontSets.createDefaultFontSet(controlFont);
FontPolicy fontPolicy = FontPolicies.createFixedPolicy(fontSet);
WindowsLookAndFeel.setFontPolicy(fontPolicy);

Visual Backward Compatibility

The JGoodies Looks 2.0 include FontPolicies that mimic the font lookup of the JGoodies Looks 1.x and one that can be used during a transition from 1.x to 2.0:
WindowsLookAndFeel.setFontPolicy(FontPolicies.getLooks1xWindowsPolicy());
PlasticLookAndFeel.setFontPolicy(FontPolicies.getLooks1xPlasticPolicy());

PlasticLookAndFeel.setFontPolicy(FontPolicies.getTransitionalPlasticPolicy());

(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/guide/other.html0000644000175000017500000002377612003555452017270 0ustar tonytony JGoodies Looks :: User's Guide :: Other Options
:: JGOODIES Looks :: Professional Swing Look&Feels

:: Other Options ::

Narrow Button Margins

Sun's Java l&f and Sun's Windows l&f use wide button margins of 14 pixel on each side, where most native toolkits use small margins like 4 or 5 pixel. Wide margins make buttons with a short label ("OK") a bit wider, which makes it easier to hit the button with the mouse. But it leads to a poor appearance if you use long labels. Most style guides recommend to use a button minimum widths that is independent of the button label. For example the MS Windows Layout Specifications recommend to use a minimum width of 50 Dialog Units (dlu) for command buttons.

The JGoodies l&fs allow you to use narrow button margins. See the Narrow page in the (Simple) Looks Demo. Since the Looks 2.0 the default is to use narrow buttons. Using narrow margins may significantly change your panel layout, if your layout management doesn't care about minimum button sizes. To turn off the use of narrow buttons you can use one of:

   Options.setUseNarrowButtons(false);
   UIManager.put("jgoodies.useNarrowButtons", Boolean.FALSE);
   
   java -Djgoodies.useNarrowButtons=false ...

Popup Menu Drop Shadow

You can enable or disable drop shadows for popup menus. As of the Looks 2.0 this feature is enabled on modern Windows (98/ME/2000/2003/XP/Vista) and disabled otherwise.

Note that this feature may be inactive even though it is enabled. For example drop shadows are always inactive on the Mac OS X, because this platform already uses native drop shadows. See also Options#isPopupDropShadowActive().

   Options.setPopupDropShadowEnabled(true);
   
   UIManager.put("jgoodies.popupDropShadowEnabled", Boolean.TRUE);
Also, you can enable or disable this feature in the system properties. This will override the UIManager setting.
java -Djgoodies.popupDropShadowEnabled=true ...

ComboBox Popup Menu Width

By default a JComboBox's popup menu is as wide as the combo box. You can change the popup menu by setting a popup prototype display value using one of:
   aJComboBox.putClientProperty(
        Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY,
        "The longest text in the combo popup menu");
        
   aJComboBox.putClientProperty(     
        "ComboBox.popupPrototypeDisplayValue",
        "The longest text in the combo popup menu");

Default Icon Size

The JGoodies l&fs try to vertically align menu item labels. Therefore a default icon size is is used if no icon is set. You should set this default size using one of the following methods:
     
   Options.setDefaultIconSize(new Dimension(18, 18));

   UIManager.put(
      com.jgoodies.looks.Options.DEFAULT_ICON_SIZE_KEY, 
      new Dimension(18, 18));

Tabbed Panes without Content Border

You can set a hint to paint tabbed panes without content border:
   a JTabbedPane.putClientProperty(Options.NO_CONTENT_BORDER_KEY, Boolean.TRUE);

Tabbed Panes with Embbedded Tabs

You can set a hint to render tabbed pane tab in an embedded style:
   aJTabbedPane.putClientProperty(Options.EMBEDDED_TABS_KEY, Boolean.TRUE);

Tab Icons

You can disable tab icons in the JGoodies looks:
   Options.setTabIconsEnabled(false);

No Tree Lines

Since Looks 1.1 you can hide the lines in trees by setting a client property. The property key and values are a subset of the Metal lines style properties.
   aJTree.putClientProperty(Options.TREE_LINE_STYLE_KEY, 
                            Options.TREE_LINE_STYLE_NONE_VALUE);

No Icon in Menu

You can set a client property for JMenus to indicate that no item in this menu has an icon. You can see this effect in the File->New submenu and in the backward button popup-menu of this help viewer.
   aJMenu.putClientProperty(Options.NO_ICONS_KEY, Boolean.TRUE);

No Popup Menu Margin

By default the JGoodies L&fs popup menus have a non-empty margin. You can set an empty margin using:
   aJPopupMenu.putClientProperty(Options.NO_MARGIN_KEY, Boolean.TRUE);

Text Field Selection on Keyboard Focus Traversal

If users are more likely going to reenter the entire value in a text field, all text shall be selected on focus gain. If users are more likely to edit a text, the caret shall be placed at the end of the text. You can enable or disable this feature globally, and can override it per component. This feature is enabled by default. By default the JGoodies L&fs popup menus have a non-empty margin. You can set an empty margin using:
   // Globally turn of the text selection on keyboard focus gain
   Options.setSelectOnFocusGainEnabled(false); 
    
   // Turn select on focus gain on for an individual text field
   Options.setSelectOnFocusGainEnabled(aTextField, Boolean.TRUE);
   // Turn this feature on for a text field without linking to the Looks
   aTextField.putClientProperty("JGoodies.selectAllOnFocusGain", Boolean.TRUE);
   
   // Select from end to start on keyboard focus gain.
   // Useful if the lead text shall be visible on focus gain
   // in a short field that often has a quite long text.
   aTextField.putClientProperty(Options.INVERT_SELECTION_CLIENT_KEY, Boolean.TRUE);
   // or:
   aTextField.putClientProperty("JGoodies.invertSelection", Boolean.TRUE);
   
   // Set the caret to start on focus lost.
   // Useful if the lead text shall be visible after focus lost
   // in a short field that often has a quite long text.
   aTextField.putClientProperty(Options.SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY, Boolean.TRUE);
   // or:
   aTextField.putClientProperty("JGoodies.setCaretToStartOnFocusLost", Boolean.TRUE);
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/docs/tips.html0000644000175000017500000001255412003555452016021 0ustar tonytony JGoodies Looks :: Tips & Tricks
:: JGOODIES :: Forms

:: Tips & Tricks ::

See also the Quick Start and the JGoodies articles and presentations.

8 Steps to a Better Swing UI

  • Choose a look&feel that uses appropriate fonts and colors.
  • Choose an appropriate icon set.
  • Remove clutter.
  • Align, group, relate and balance.
  • Learn to work with negative space.
  • Take care of aspect ratios.
  • Be consistent.
  • Comply with style guides.

Don'ts

  • Don't change colors.
  • Don't change fonts.
  • Don't break the icon design.

Do's

  • Remove clutter.
  • Use TitledBorders carefully.
  • Add negative space.
  • Align.
  • Be consistent.
  • Balance the design.
  • Use contrast effectively.
  • Use aesthetic aspect ratios.

Tips

  • Benefit from the powerful JFC: Java2D, translucency, etc.
  • Carefully add color, advanced typography, images, animation.
  • Enable problem analysis.
  • Know critical performance issues.
  • Take care of the application startup.
  • Construct lazily ... and prepare eagerly!
  • Check your UI via ClearLook.
(c) 2012 JGoodies
 
jgoodies-looks-2.5.2/src/0000755000175000017500000000000012054046230013777 5ustar tonytonyjgoodies-looks-2.5.2/src/main/0000755000175000017500000000000012054223675014735 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/0000755000175000017500000000000012054223725016743 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/0000755000175000017500000000000012054223725017521 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/0000755000175000017500000000000012054223725021324 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/0000755000175000017500000000000012054245156022455 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/0000755000175000017500000000000012054224051024136 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/0000755000175000017500000000000011731047234025260 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/xp/0000755000175000017500000000000011731047234025707 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/xp/TreeOpen.png0000644000175000017500000000101711731047234030135 0ustar tonytonyPNG  IHDRagAMA|Q cHRMz%u0`:oIDATxb?% asQL2^W|\3:86Kd5s @ ρ̹hR gKbd:dTS!2F6@i'7O. ~_ X7 `" S *```AaQ{66߿`9YC9xX5?B~$ l 2 ?u?> @`޾'!d}g`%0aǟ ?c2d@ 4MQ w (@ `dbbVf`qAg ?> ? QKxԉY@ @IA CH3@  7T3| )簹IENDB`jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/xp/TreeClosed.png0000644000175000017500000000101511731047234030443 0ustar tonytonyPNG  IHDRagAMA|Q cHRMz%u0`:oIDATxbd(F `@bi>;??0̹~  ~ftp_ds``@ igYh1Ve/\b4 ~LbʠTzk@TxrP߿Y5~ǰpmx@, g1|pl&؃wU`@,Pï_ *!db:a0逨RL'JD%;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/FloppyDrive.gif0000644000175000017500000000024311731047234030211 0ustar tonytonyGIF89atrt!,Pp94;ȓ8R !rGy] `H4 Q.`AtX! -Ћ5:H‚͸$;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/Directory.gif0000644000175000017500000000161111731047234027712 0ustar tonytonyGIF89acΜ𠠤!,@fH (\AC l!! "\c $ɓ CndѡJ0cʌq8q,`&̜9ZdRP}T"–LիW;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/HardDrive.gif0000644000175000017500000000157011731047234027622 0ustar tonytonyGIF89asss𠠤!,U%H*\ؠÇ6x@E 4PG26I,xR#ɓ(- "K>~OJt£H;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/UpFolder.gif0000644000175000017500000000162111731047234027467 0ustar tonytonyGIF89acΜ𠠤!,@nH (AÇ 8@ŋ"Ndǎ'6pAȂ`СƔ*W|@(4sG;wLPц/\aM0!tjXi\ʕ+N;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/File.gif0000644000175000017500000000020011731047234026616 0ustar tonytonyGIF89a!,Ex'ܮpXĴS q exdaJj+Fhj 0F?x 6܉rga|`e;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/Computer.gif0000644000175000017500000000176411731047234027555 0ustar tonytonyGIF89a1c11cc!!!)))111c11999BBBJJJc11cc1cccccccccccΜΜΜ𠠤!5,@k(AAjԘ0!  "JCB )Zpc,(8aa*d1 1P@B 6JxX'.H!B@V<@j,R +WF`Yh޸E &nzqi!޶Hqݤ!xG+8hT!C0ҦQ 2Xppa  \C*cnQBn@;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/HomeFolder.gif0000644000175000017500000000164211731047234027776 0ustar tonytonyGIF89aBBcΜc𠠤! ,@H@ سC :PdЁB4(p 2pH'rlh2ܩdI(H&CKRTxPL#CX0)Ъ$hU*8X֧;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/TreeClosed.gif0000644000175000017500000000161211731047234030000 0ustar tonytonyGIF89acΜ𠠤!,@gH (TBÆ 8@ŋ"Ndǎ'6pAȂ|QbJc>xѠM r#G:&TIˡDej|RQPg@U7o;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/TreeLeaf.gif0000644000175000017500000000156611731047234027446 0ustar tonytonyGIF89a𠠤!,@S[@A*XȰ!4aD!  9bQH\Ƒ @ fIoDK0u,iQ;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/windows/icons/TreeOpen.gif0000644000175000017500000000161711731047234027475 0ustar tonytonyGIF89acΜ𠠤! ,@lH` (|@aC@@ M(@?ATb f ~bv f o ~?W II~яxIކ O $Z\ #\IENDB`jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/HomeFolder.gif0000644000175000017500000000033511731047364027745 0ustar tonytonyGIF89aߟ_???_??{9߿!,Z $diId 2rQ+tL٨2R xv h[ ΋prtW+" !;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/TreeClosed.gif0000644000175000017500000000162111731047364027751 0ustar tonytonyGIF89aZZ9ZZZ99{޽9޽ZZޜ!,n H(p`  P \\p@ dA(  r cȗ1gةK2iTΡ+_=zP9իXxlȵW;jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/TreeExpanded.png0000644000175000017500000000044011731047364030305 0ustar tonytonyPNG  IHDR oGgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbܶm۩S0@1444TFFA_?@~@6@͏lۗ$@AÛ߿?3P @r޿۟߿%2  ܻϾ|zׯP+33 sG=IENDB`jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/TreeCollapsed.png0000644000175000017500000000047211731047364030470 0ustar tonytonyPNG  IHDR oGgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbܶm۩S0@1444TFFZff?~30' @ ߿Ŀ~lbprrsr\\<~b[XX?3P @r޿o^<2le ܻϾ|zׯ;~Hff8@nA0pYIENDB`jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/32x32/0000755000175000017500000000000011731047364026012 5ustar tonytonyjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/32x32/dialog-help.png0000644000175000017500000000426711731047364030716 0ustar tonytonyPNG  IHDR szzsBIT|dnIDATXŗ{pU{snnn޹ G^"D (Luv3:cgӇm+}MhV)vE ZÃ$JBBrܳw8$i359wo}kK^Jn]ّaFCq#6z_qxHCCmh[mO1Y+披Y>AXke<z h·!\(OՌ_"8ap$MǟY^:9|O>[O8ΆXm}UOIX~7i<ۍ4$!R )/Zk,(d-WS:'X_},>V|hSep'{K!Lba`)1 iHCr)dҨ,+Jpɖk['>@.7ܒn=ʞaibYnpmƤIe0${E\[15ˊ3}sCC-L V˛vT2di PQ GnV:}aZ?A(V V$lݛr .^eûGw47߼zÐyL,Ϫٜj'.IIa8]0rM x]meʻm<8Ri;@LO(  3? ,ebY&4ؽ#4pk 4Z6[^],9K'A<s4 [q|?5; s{Mi \|?$!m\ttssʢk-n^[C1N 7I0xy,,ٮA)1KI, ƕ>!ŎhU45d*,$4ncY N"`͒TZs?ek֠¥!*K Z/ gN_n=Wrf*2 NsRJc8 4?2@m<\tkO nhg0iN`%1lO$ Ȝ̴Td7H!RLc8Ջ(PJa6u^1;NoLR 3S-HM( @ χ8I).+I/+82DWedR/G X8/Թ@ "UfRӍJ)"):{yGHy"CݱWt.MhLB<c4⟲ce=)HH5<thMɲX;'5^>֏Ra$va|FC~Ebu47Ԇ /uMuBיS{4VXXұDMV([9SwI۶d>c|?XWN՝pS">1ĄM"amlN=ZSFia.}wl8KMMhN3\ܪ, M=(ZH"kJs&a;>h&a+D%l]]JV`W}%훪7҄j`sH)q[fZ 7.%h` /5շ63 8 fW[FUK .+ 8o(@v'<#a,([+*0>a_k:v=>>gYHx|ƧW~^<ʩ~Z O0# 'K/\8s0?hSw{p_t-D ~Aov;7,~k+W^Qˣ\;b8JeoOI3iaPwBW< AiqnqqJ<-ͺw|s:boG)`[QDXu5d RP4T{C((?OYJmt *+ۤAg/18#Ѐс/'.p*~8|z2ʬYhaԹs]J6ߕBt¡ PԔmm-[~?B\.WbBLIUTD&'K7 B5kx[UpwLyqՑ Nm᫤ٳsܦ)څLJJ8r8((躞ĵw/OR&M]C8 TSav G/,L8IdӉ|o^sSi#+'GSwg [`k)={xb4\$`4nɏw0 M@ k耝}@L i( p M/IENDB`././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/32x32/dialog-information.pngjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/32x32/dialog-information.pn0000644000175000017500000000356611731047364032145 0ustar tonytonyPNG  IHDR szzbKGD pHYs  tIME38fIDATXŖ[lTgnό_0cCp 8$&R,RUmU+%@ EMUZE}$C%6JmriJۤb<_>s݇ <U}_3y੧B 2ܦ&r=j6yg{ZWS]V:4F=tqibV+/z BΘNiش6D9"!7Bٲ_ɹ?|p:3k՚칳 kO㤋7{(iM:41rAA2"D(/PWٜ9sd }ntscړ$HD0N6'KdrFVXxC(NlKslMun? l\U,l)@A9D9#1f2N,3s2U:^Δ}ݧ;߄Z E.É9Ĕd 3RW]cDŠ UV4u(E5S6LsBsal`A O|WT W7]|?Z71e'^Z!͈,8#sA*_Yӝw ""1ֽXESTw -Ze6ld&dh Gz%%̚U˛ZX&<.W67z\#b5D*ϕtN-V쉹9\1qY6b27h@h3 mTr_={jl i]koY昮,'BH%#-Mn\% Cx/Yр}bW^͟o՗u|H6u6 FJ  k_8t=ӆ7ėXXT-gIbL2];ڞ5Qڮ\&yv)sR\e ՆS}ᱯ]{.~rt'VJpb=N}>XJnm{۳cU%/L 8vn5+E:Uuzq;nX籇lAOZ4F#\# [;oС;6ڲنxO.J A>7/xMKY@z?]+= d YvՓ3 z@G"C])8qcSp]{;00ch\G….B[ugrwwӚaL\6ALCX蹏05y\RbPg29|Y q@EpzdNNf;;{essw?6mze;8rdj喝׃jPK Btz㞱Q?Ϗ?~yuT_s%^E Dhooo}g2bM`B`l [՜^PJqˍoMJ2k-Lu׿"J5VWN78e&+K6s;FB8 EM5{}Ǟ勅)֟n 3R.}{90+kl3>?~֓P@Z_84m]F0JdD%}X&QG>{'dRb!',ucq[> KUĽO|V<7х H Sv F1uZ!:=Ċ0P /1X!V u; 5JnJ)|Gk镰!ˠBێo{T7;6ΟǫV;+!656[J%7[G5*=kCGc6N_.]qJ={:46hs<hKG2=MS*Vۯ ɱ61z\ج[O1[-nDd 2$۲!85![}cxu[󅢸o͡^CC_ޘW./&F䳷E>U`\3SZGDF,#kWxx& `oQP'NӝzG*lE'`Yzoյ)}c`k v0_(Gƿv$朿Rm-:<K9gyoZ[nƒ[}ny{M}8e. QNs0k8Mjr_?nzn{ O>խ|m{1xU b~ymѺSV.Ml,[:wůZp$ 42LNÏH2PٱB*YbxNVA{ukMmYpMpNd  G=0$"D1$!1~yyy_q?޽/yD+kfYks}~{>Rcn ૶?zڵb#Ր6P E! J R> :w-֥ݱR҂7ϛ9QGa7044uC4'b{ԟhyu+\NjַJcO6g_9~rZ,/E`;m|bމu2N L#]Gc:GFgo5'P~G1t~hgm[9>YW0p@.s+dTR= gvpw//mf*O{Gw-/o"Nd|O7.c)e_[8]L/?;}jTn>W&Pf GXj ]H<m 10F`D b` dePJA)FuuQȩfl}`t$|"W%0$b | ?<6.["\TJAJ9Eؾ9Y6< 9ߛ cʃ)NX;p^^hk ơ1%yODkg׊co>I3%n_~6,?q8CwnZXp]yǧ`({G-;gdT8uo>2-#s]s|Ѕ .8g Y=#gbִ,Y|?|ihH a{[ TR*H BJ\_VJpb UJ6ys*.6k3᧛W0'>/Gc"O.c0pך8?s;LH@@۲Fu> m7{жy <%E&)% Ұj%5D)74ëϾY'AmXyS% {t&c/9%m=!tF0uA)&sYw TI!kT{4[q]>sWqC!_tH%n7>/7Uh87 S`J1¥~G<U%;p}#I1b kc ;3Ʊj4,,A,@,ͻ,m`P@ a3b8ڛcɜbh s(8>%0`PRS`^C35NLdc\j%既,+$" E$^ ]]$K(4V İc1~<.Tٹ{xm^04O{yM9@73mT'2 r!Uue3۱g{PwVjB͟}?_YxO} @޹Sw%.6Oo,%jfcJdρy|Cǟ8;}ٔ9x[T>iEZNf^_ /u|sZFcެp!0}r* Q]9Ag_<oa5ثМd2KYҚ{[WSNSs\D&jqlz;::_xu I#Yj( |O]tnN٢uʩEUiU3JXA95 G1(z#{pɡ+' _9 ҒHr/n$N:zKҲo\ϟ4o pEJ*=6 7:A8Gq1?!D,[XaI?0A¨5{M$/E 3[$[SH88 * \1-o-$DuS os+-IENDB`jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/48x48/dialog-warning.png0000644000175000017500000000430311731047364031440 0ustar tonytonyPNG  IHDR00WsBIT|dtEXtSoftwarewww.inkscape.org<UIDATh[lT9{v]6Y5_`jb(&&HN %)TC$$*)J) jCSB$\L8xa/nPι||3ߜ]QJC.oQ.?xT9;!/6>T(ݮEEk˖,4]\K˯{_Wڇл"?15O>i'ᇔ/[f:<,O Û3,Ng:\E@*kT+#>x r4ǪU~ v&9L؜Oxczmѣ:fc#"`>'UVb_|H0?n"QUUW@L&YAhLǽ~qT$eK b(乁yn] ԒKlo&X5eJބ,zN`Gz֭[GQQѰb2\Owa 7b*񪈭._2/vv2͛7,|~%DahGW.Dٜhm jXop#F甔xLøYYtLw簾3"`+(6vu!]]|z v8fKyt"gwKK|(e˨"ÇPJqᓖysj{ ޵xi̙-JmVuu**FN3gΈɺN ;1s`Hi=;;:@IR( (wzt( AW)s}hL^@_!>Pv5{z5l(S5}o\&IENDB`././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/48x48/dialog-information.pngjgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/48x48/dialog-information.pn0000644000175000017500000000637611731047364032165 0ustar tonytonyPNG  IHDR00WsBIT|dtEXtSoftwarewww.inkscape.org< IDAThՙkp\y=ZV-˲ Q1% nmҠt&KC~I')L82!nm3l8 _uV{;+TDhߙgλ3{yvba~ ׳p\\ﶻZZW`` 'M;Xݒ:MLOT!]m.p_4yrUV[ ceg u@/B%H06`3Mkq+GKɟ~k}髟wR>5Cԥ z|4g% 3 Xk-P&l9T\*ṧ}?p/>DKo3?LbOŝ7`AZka5@4^~{DG[6'v?Z6y,ct׮]> 7BmYx0"@AYEbA )OJi]v$o:)Org_{n׮]&P ӹεWhO&k,"bfJ@ 3'3!ikȘ#Gpp?_Ԗ۶+[ ?o=7ޖ4bcg mjVA'LT a M)aA4eĕje'I_J0-w"B9Agc jY m »13J(1 J)nH{'%eIw_3ۗ] mkN(DP{$`0Q"  5D]Б:wK7oIpDcf*1Z5x@)U JD-cr>fX#fXZ۲q8rCuD/k῅nRĺ fk%&m-4TRveT)z9)bP$ҥ2=%M,$S˦[׶߶{nT,rO>1n>3AZWZLD)䧝 3%!]+9L{8L(6BR$))m{Ǐm.޻C/.B{~oPvԪFE4b<^TȁQ"$ł8$*c#B3 c!8iOŋއ~z%,Wڻ##&B`(*D%A9.'w.MMM\"@]q+XRgNѓԐvZ b31Ϸ2X -LΜ|]i}65 kvȉ }XRgN@=3鍽ׯҧTMJы/W3iUd\oM`Q*ow_hO˛GFg-P~׵C`||Wx'@NǑm /a]'=;kM5R6Rsn%JBu"c^c۾|۩'No/KowǒnehRP*!Jݺ#/abr9BcFfƍLO2/w>POOy絯 Fہݟ Bh ZAT. /-{s-68-Hy+!y`"X(*; K߁Lq8f'$f8.84\u LO:f.r,y<=Y,F/;Bր5zuW,P8B೟]֜aU ׼Ի)$ADP 68sΝݫz%PyNkR`jɉ)TU[׎$ΜY Zw^W$@D<{.(v[:4QO^.cu:dQ(dbKT7 MDzvfA,&"1 >(G:]繛|?juZRYDF'gfy``z@_V[.@DrzHmٲ妮Gt.C$8tPxsDzK\cAO>{ Ga9 tL _oX{Do{*#_hKVf !A8/'ZifDܺ~܄,,kÏO3Ll&p'59wے22 Gׁ4 !,^-1fsq2;#;jlH-0ڮs+l-wP퀦˃̈́QTm+6g-R=25ց݉ҹkNFmG*/}2nh#QA!x)/M.RH'“9#CپkiG2C62l'O5gtv},2Rl`ߺ`Tjh^$̇eiӻؗt: ][ ctH>T^̿L5Pƫ|$!ϯ7i; {w8nMNҪlcP;Ot-~B؝1:wrk&yrs1&N<>oHuQmw]6$JIІzS˥y<!D0|sFj`WY7mHۅgWVb1" jO`/(^ksRaO~\P`23 "@Jܨ;6^~ޭN ! xenنWʗd~v)/ pc >QV:o*bCk|A؞ qPP*+܇2Dn ɷU>Xիzjjje^:Z rUGt2)D6^Z 5DQ0Q:3;mywߧ*HHVTk=y!^3/*l[IENDB`jgoodies-looks-2.5.2/src/main/resources/com/jgoodies/looks/plastic/icons/TreeOpen.gif0000644000175000017500000000160211731047364027440 0ustar tonytonyGIF89aZZ9ZZZ9{9޽9ޜ!,@_ H pÆLH $Ǐb 9“ (È$cʌDPLx J@ K7(iӞ3 ;jgoodies-looks-2.5.2/src/main/java/0000755000175000017500000000000012054046247015654 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/overview.html0000644000175000017500000000545111731047400020406 0ustar tonytony This document describes the API of the JGoodies Looks, a library that makes your Swing applications and applets look better. The package consists of a Windows look&feel and the Plastic look&feel family. These have been optimized for readability, precise micro-design and usability.

The JGoodies Looks require Java 6 or later. Versions for older Java runtimes are available at here.

Getting Started

First, download and run the JGoodies Looks Demo. Then follow the Quick Start and read the user's guide. If you want to use a JGoodies l&f in NetBeans read here. As a next step you can study the JGoodies articles and presentations. jgoodies-looks-2.5.2/src/main/java/META-INF/0000755000175000017500000000000012003474272017011 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/META-INF/MANIFEST.MF0000644000175000017500000000014712003474270020443 0ustar tonytonyManifest-Version: 1.0 Ant-Version: Apache Ant 1.8.2 Created-By: 1.7.0_05-b05 (Oracle Corporation) jgoodies-looks-2.5.2/src/main/java/com/0000755000175000017500000000000011731047134016427 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/com/jgoodies/0000755000175000017500000000000011731047134020232 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/0000755000175000017500000000000011731047400021355 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/BorderStyle.java0000644000175000017500000001111111731047400024451 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import javax.swing.JComponent; import javax.swing.JMenuBar; import javax.swing.JToolBar; /** * Describes the border styles for JMenuBar and JToolBar. Border styles are * look-dependent and shadow look-independent {@code HeaderStyle}s. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see HeaderStyle */ public final class BorderStyle { public static final BorderStyle EMPTY = new BorderStyle("Empty"); public static final BorderStyle SEPARATOR = new BorderStyle("Separator"); public static final BorderStyle ETCHED = new BorderStyle("Etched"); private final String name; // Instance Creation ****************************************************** private BorderStyle(String name) { this.name = name; } // ************************************************************************ /** * Looks up the client property for the header style from the JToolBar. * * @param toolBar the tool bar to inspect * @param clientPropertyKey the key used to lookup the property * @return the border style used to choose a border in the UI delegate */ public static BorderStyle from(JToolBar toolBar, String clientPropertyKey) { return from0(toolBar, clientPropertyKey); } /** * Looks up the client property for the header style from the JMenuBar. * * @param menuBar the menu bar to inspect * @param clientPropertyKey the key used to lookup the property * @return the border style used to choose a border in the UI delegate */ public static BorderStyle from(JMenuBar menuBar, String clientPropertyKey) { return from0(menuBar, clientPropertyKey); } /** * Looks up the client property for the header style from the specified * JComponent. * * @param c the compoent to inspect * @param clientPropertyKey * the key used to lookup the property * @return the border style used to choose a border in the UI delegate */ private static BorderStyle from0(JComponent c, String clientPropertyKey) { Object value = c.getClientProperty(clientPropertyKey); if (value instanceof BorderStyle) { return (BorderStyle) value; } if (value instanceof String) { return BorderStyle.valueOf((String) value); } return null; } private static BorderStyle valueOf(String name) { if (name.equalsIgnoreCase(EMPTY.name)) { return EMPTY; } else if (name.equalsIgnoreCase(SEPARATOR.name)) { return SEPARATOR; } else if (name.equalsIgnoreCase(ETCHED.name)) { return ETCHED; } else { throw new IllegalArgumentException("Invalid BorderStyle name " + name); } } @Override public String toString() { return name; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/package.html0000644000175000017500000000463011731047400023641 0ustar tonytony Contains classes to configure the JGoodies L&Fs.

Related Documentation

For more information see: @see com.jgoodies.looks.common @see com.jgoodies.looks.plastic @see com.jgoodies.looks.plastic.theme @see com.jgoodies.looks.windows jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/FontPolicy.java0000644000175000017500000000540411731047400024311 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import javax.swing.UIDefaults; /** * Looks up and returns a FontSet. * * @author Karsten Lentzsch * @version $Revision: 1.6 $ * * @see FontSet * @see FontPolicies * * @since 2.0 */ public interface FontPolicy { /** * Looks up and returns a set of fonts that will be used * by a Look&Feel to set the default fonts for its components.

* * This method is invoked during the L&F component initialization. * And the invoker hands over the UIDefaults object used to define * the component settings. Hence, the UIDefaults object may be used * to look up a font as initialized by a super Look&Feel. * For example the JGoodies Windows L&F could use the * defaults set by the super L&F, the Sun Windows L&F. * * @param lafName the name of the Look&Feel that requests the fonts * @param table the UIDefaults table that can be used * to look up fonts of a super L&F * * @return a set of fonts used as default for the component. */ FontSet getFontSet(String lafName, UIDefaults table); } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/HeaderStyle.java0000644000175000017500000001014211731047400024427 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import javax.swing.JComponent; import javax.swing.JMenuBar; import javax.swing.JToolBar; /** * Describes the header styles for JMenuBar and JToolBar. * Header styles are look-independent and can be shadowed by a look-dependent * {@code BorderStyle}. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see BorderStyle */ public final class HeaderStyle { public static final HeaderStyle SINGLE = new HeaderStyle("Single"); public static final HeaderStyle BOTH = new HeaderStyle("Both"); private final String name; private HeaderStyle(String name) { this.name = name; } /** * Looks up the client property for the {@code HeaderStyle} * from the JToolBar. * * @param menuBar the menu bar to inspect * @return the menu bar's header style */ public static HeaderStyle from(JMenuBar menuBar) { return from0(menuBar); } /** * Looks up the client property for the {@code HeaderStyle} * from the JToolBar. * * @param toolBar the tool bar to inspect * @return the tool bar's header style */ public static HeaderStyle from(JToolBar toolBar) { return from0(toolBar); } /** * Looks up the client property for the {@code HeaderStyle} * from the specified JComponent. * * @param c the component to inspect * @return the header style for the given component */ private static HeaderStyle from0(JComponent c) { Object value = c.getClientProperty(Options.HEADER_STYLE_KEY); if (value instanceof HeaderStyle) { return (HeaderStyle) value; } if (value instanceof String) { return HeaderStyle.valueOf((String) value); } return null; } /** * Looks up and answers the {@code HeaderStyle} with the specified name. * * @param name the name of the HeaderStyle object to lookup * @return the associated HeaderStyle */ private static HeaderStyle valueOf(String name) { if (name.equalsIgnoreCase(SINGLE.name)) { return SINGLE; } else if (name.equalsIgnoreCase(BOTH.name)) { return BOTH; } else { throw new IllegalArgumentException("Invalid HeaderStyle name " + name); } } @Override public String toString() { return name; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/Fonts.java0000644000175000017500000003614211731047400023317 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import java.awt.Font; import java.awt.Toolkit; import java.util.Locale; import com.jgoodies.common.base.SystemUtils; /** * Provides static access to popular Windows fonts. * The sizes of the font constants are specified in * typographic points, approximately 1/72 of an inch.

* * TODO: Consider changing the visibility of the package private methods * to public. As an alternative we may provide a FontPolicy that can * emulate the font choice on Windows XP/2000 and Windows Vista for * different software resolutions (96dpi/120dpi) and desktop font size settings * (Normal/Large/Extra Large). * * @author Karsten Lentzsch * @version $Revision: 1.22 $ * * @see FontSet * @see FontSets * @see FontPolicy * @see FontPolicies * * @since 2.0 */ public final class Fonts { /** * The name of the default dialog font on western Windows XP. */ public static final String TAHOMA_NAME = "Tahoma"; /** * The name of the default dialog font on western Windows Vista. */ public static final String SEGOE_UI_NAME = "Segoe UI"; // Physical Fonts ********************************************************* /** * This is the default font on western XP with 96dpi and normal fonts. * Ascent=11, descent=3, height=14, dbuX=6, dbuY=12, 14dluY=21px. */ public static final Font TAHOMA_11PT = new Font(TAHOMA_NAME, Font.PLAIN, 11); /** * Ascent=13, descent=3, height=16, dbuX=8, dbuY=13, 14dluY=22.75px. */ public static final Font TAHOMA_13PT = new Font(TAHOMA_NAME, Font.PLAIN, 13); /** * Ascent=14, descent=3, height=17, dbuX=8, dbuY=14, 14dluY=24.5px. */ public static final Font TAHOMA_14PT = new Font(TAHOMA_NAME, Font.PLAIN, 14); /** * This is Segoe UI 9pt, the default font on western Vista with 96dpi. * Ascent=13, descent=4, height=17, dbuX=7, dbuY=13, 13dluY=21.125px. */ public static final Font SEGOE_UI_12PT = new Font(SEGOE_UI_NAME, Font.PLAIN, 12); /** * Ascent=14, descent=4, height=18, dbuX=8, dbuY=14, 13dluY=22.75px. */ public static final Font SEGOE_UI_13PT = new Font(SEGOE_UI_NAME, Font.PLAIN, 13); /** * Ascent=16, descent=5, height=21, dbuX=9, dbuY=16, 13dluY=26px. */ public static final Font SEGOE_UI_15PT = new Font(SEGOE_UI_NAME, Font.PLAIN, 15); // Default Windows Fonts ************************************************** /** * The default icon font on western Windows XP with 96dpi * and the dialog font desktop setting "Normal". */ public static final Font WINDOWS_XP_96DPI_NORMAL = TAHOMA_11PT; /** * The default GUI font on western Windows XP with 96dpi * and the dialog font desktop setting "Normal". */ public static final Font WINDOWS_XP_96DPI_DEFAULT_GUI = TAHOMA_11PT; /** * The default icon font on western Windows XP with 96dpi * and the dialog font desktop setting "Large". */ public static final Font WINDOWS_XP_96DPI_LARGE = TAHOMA_13PT; /** * The default icon font on western Windows XP with 120dpi * and the dialog font desktop setting "Normal". */ public static final Font WINDOWS_XP_120DPI_NORMAL = TAHOMA_14PT; /** * The default GUI font on western Windows XP with 120dpi * and the dialog font desktop setting "Normal". */ public static final Font WINDOWS_XP_120DPI_DEFAULT_GUI = TAHOMA_13PT; /** * The default icon font on western Windows Vista with 96dpi * and the dialog font desktop setting "Normal". */ public static final Font WINDOWS_VISTA_96DPI_NORMAL = SEGOE_UI_12PT; /** * The default icon font on western Windows Vista with 96dpi * and the dialog font desktop setting "Large". */ public static final Font WINDOWS_VISTA_96DPI_LARGE = SEGOE_UI_15PT; /** * The default icon font on western Windows Vista with 101dpi * and the dialog font desktop setting "Normal".

* * TODO: Check if this shall be removed or not. */ static final Font WINDOWS_VISTA_101DPI_NORMAL = SEGOE_UI_13PT; /** * The default icon font on western Windows Vista with 120dpi * and the dialog font desktop setting "Normal". */ public static final Font WINDOWS_VISTA_120DPI_NORMAL = SEGOE_UI_15PT; // Desktop Property Font Keys ********************************************* /** * The desktop property key used to lookup the DEFAULTGUI font. * This font scales with the software resolution only * but works in western and non-western Windows environments. * * @see #getWindowsControlFont() */ static final String WINDOWS_DEFAULT_GUI_FONT_KEY = "win.defaultGUI.font"; /** * The desktop property key used to lookup Windows' icon font. * This font scales with the software resolution and * the desktop font size setting (Normal/Large/Extra Large). * However, in some non-western Windows environments * this font cannot display the locale's glyphs.

* * Implementation Note: Windows uses the icon font to label icons * in the Windows Explorer and other places. It seems to me that * this works in non-western environments due to font chaining. * * @see #getWindowsControlFont() */ static final String WINDOWS_ICON_FONT_KEY = "win.icon.font"; // Instance Creation ****************************************************** private Fonts() { // Override default constructor; prevents instantation. } // Font Lookup ************************************************************ static Font getDefaultGUIFontWesternModernWindowsNormal() { return SystemUtils.IS_LOW_RESOLUTION ? WINDOWS_XP_96DPI_DEFAULT_GUI : WINDOWS_XP_120DPI_DEFAULT_GUI; } static Font getDefaultIconFontWesternModernWindowsNormal() { return SystemUtils.IS_LOW_RESOLUTION ? WINDOWS_XP_96DPI_NORMAL : WINDOWS_XP_120DPI_NORMAL; } static Font getDefaultIconFontWesternWindowsVistaNormal() { return SystemUtils.IS_LOW_RESOLUTION ? WINDOWS_VISTA_96DPI_NORMAL : WINDOWS_VISTA_120DPI_NORMAL; } /** * Returns the Windows control font used by the JGoodies Looks version 1.x. * It is intended for visual backward compatibility only. * The font returned is the default GUI font that scales with the resolution * (96dpi, 120dpi, etc) but not with the desktop font size settings * (normal, large, extra large).

* * On Windows Vista, the font may be completely wrong. * * @return the Windows default GUI font that scales with the resolution, * but not the desktop font size setting * * @throws UnsupportedOperationException on non-Windows platforms */ static Font getLooks1xWindowsControlFont() { if (!SystemUtils.IS_OS_WINDOWS) { throw new UnsupportedOperationException(); } return getDesktopFont(WINDOWS_DEFAULT_GUI_FONT_KEY); } /** * Looks up and returns the Windows control font. Returns the Windows icon * title font unless it is inappropriate for the Windows version, * Java renderer, or locale.

* * The icon title font scales with the resolution (96dpi, 101dpi, 120dpi, etc) * and the desktop font size settings (normal, large, extra large). * Older versions may return a poor font. Also, since Java 1.4 and Java 5 * render the Windows Vista icon font Segoe UI poorly, * we return the default GUI font in these environments.

* * The last check is, if the icon font can display text in the * default locale. Therefore we test if the locale's localized display name * can be displayed by the icon font. For example, Tahoma can display * "English", "Deutsch", but not the display name for "Chinese" in Chinese. * * @return the Windows control font * * @throws UnsupportedOperationException on non-Windows platforms */ public static Font getWindowsControlFont() { if (!SystemUtils.IS_OS_WINDOWS) { throw new UnsupportedOperationException(); } Font defaultGUIFont = getDefaultGUIFont(); // Return the default GUI font on older Windows versions. if (LookUtils.IS_OS_WINDOWS_95 || SystemUtils.IS_OS_WINDOWS_98 || LookUtils.IS_OS_WINDOWS_NT || SystemUtils.IS_OS_WINDOWS_ME) { return defaultGUIFont; } Font iconFont = getDesktopFont(WINDOWS_ICON_FONT_KEY); return Boolean.TRUE.equals(canDisplayLocalizedText(iconFont, Locale.getDefault())) ? iconFont : defaultGUIFont; } /** * Looks up and returns the Windows defaultGUI font. * Works around a bug with Java 1.4.2_17, 1.5.0_15, and 1.6.0 * on Vista, where the win.defaultGUI.font desktop property * returns {@code null}. In this case a logical "Dialog" font * is used as fallback. * * @return the Windows defaultGUI font, or a dialog font as fallback. */ private static Font getDefaultGUIFont() { Font font = getDesktopFont(WINDOWS_DEFAULT_GUI_FONT_KEY); if (font != null) { return font; } return new Font("Dialog", Font.PLAIN, 12); } /** * Checks and answers whether the given font can display text * that is localized for the specified locale. * Returns {@code null} if we can't test it.

* * First checks, if the locale's display language is available * in localized form, for example "Deutsch" for the German locale. * If so, we check if the given font can display the localized * display language.

* * Otherwise we check some known combinations of fonts and locales * and return the associated results. For all other combinations, * {@code null} is returned to indicate that we don't know * whether the font can display text in the given locale. * * @param font the font to be tested * @param locale the locale to be used * @return {@code Boolean.TRUE} if the font can display the locale's text, * {@code Boolean.FALSE} if not, * {@code null} if we don't know * * @since 2.0.4 */ public static Boolean canDisplayLocalizedText(Font font, Locale locale) { if (localeHasLocalizedDisplayLanguage(locale)) { return Boolean.valueOf(canDisplayLocalizedDisplayLanguage(font, locale)); } String fontName = font.getName(); String language = locale.getLanguage(); if ("Tahoma".equals(fontName)) { if ("hi".equals(language)) { return Boolean.FALSE; } else if ("ja".equals(language)) { return Boolean.FALSE; } else if ("ko".equals(language)) { return Boolean.FALSE; } else if ("zh".equals(language)) { return Boolean.FALSE; } } if ("Microsoft Sans Serif".equals(fontName)) { if ("ja".equals(language)) { return Boolean.FALSE; } else if ("ko".equals(language)) { return Boolean.FALSE; } else if ("zh".equals(language)) { return Boolean.FALSE; } } return null; } /** * Checks and answers if the given font can display the locale's * localized display language, for example "English" for English, * "Deutsch" for German, etc. * The test invokes {@code Font#canDisplayUpTo} on the localized * display language. In a Chinese locale this test * will check if the font can display Chinese glyphs. * * @param font the font to be tested * @param locale the locale to be used * @return true if the font can display the locale's localized display language, * false otherwise */ private static boolean canDisplayLocalizedDisplayLanguage(Font font, Locale locale) { String testString = locale.getDisplayLanguage(locale); int index = font.canDisplayUpTo(testString); return index == -1; } /** * Checks and answers whether the locale's display language * is available in a localized form, for example "Deutsch" for the * German locale. * * @param locale the Locale to test * @return true if the display language is localized, false if not */ private static boolean localeHasLocalizedDisplayLanguage(Locale locale) { if (locale.getLanguage().equals(Locale.ENGLISH.getLanguage())) { return true; } String englishDisplayLanguage = locale.getDisplayLanguage(Locale.ENGLISH); String localizedDisplayLanguage = locale.getDisplayLanguage(locale); return !englishDisplayLanguage.equals(localizedDisplayLanguage); } /** * Looks up and returns a font using the default toolkit's * desktop properties. * * @param fontName the name of the font to return * @return the font */ private static Font getDesktopFont(String fontName) { Toolkit toolkit = Toolkit.getDefaultToolkit(); return (Font) toolkit.getDesktopProperty(fontName); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/0000755000175000017500000000000012054224051023045 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsMenuItemUI.java0000644000175000017500000000610111731047240027246 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Font; import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.plaf.ComponentUI; import com.jgoodies.looks.common.ExtBasicMenuItemUI; import com.jgoodies.looks.common.MenuItemRenderer; /** * The JGoodies Windows look&feel implementation of {@code MenuItemUI}.

* * It differs from the superclass in that it uses a Windows specific * menu item renderer that checks if mnemonics shall be shown or hidden * and may paint disabled text with a shadow. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class WindowsMenuItemUI extends ExtBasicMenuItemUI { public static ComponentUI createUI(JComponent b) { return new WindowsMenuItemUI(); } @Override protected MenuItemRenderer createRenderer( JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground) { return new WindowsMenuItemRenderer( menuItem, iconBorderEnabled(), acceleratorFont, selectionForeground, disabledForeground, acceleratorForeground, acceleratorSelectionForeground); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/package.html0000644000175000017500000000462211731047240025336 0ustar tonytony Contains the classes for the JGoodies Windows L&F.

Related Documentation

For more information see: @see com.jgoodies.looks @see com.jgoodies.looks.common @see com.jgoodies.looks.plastic @see com.jgoodies.looks.plastic.theme jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsMenuItemRenderer.java0000644000175000017500000000575211731047240030512 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Font; import javax.swing.JMenuItem; import javax.swing.UIManager; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.common.MenuItemRenderer; /** * Renders and lays out Windows menu items. * It overrides superclass behavior for the mnemonic check * and the text shadow feature. * * @author Karsten Lentzsch * @version $Revision: 1.7 $ */ final class WindowsMenuItemRenderer extends MenuItemRenderer { /** * Constructs a WindowsMenuItemRenderer for the specified menu item and settings. */ public WindowsMenuItemRenderer(JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground) { super(menuItem, iconBorderEnabled, acceleratorFont, selectionForeground, disabledForeground, acceleratorForeground, acceleratorSelectionForeground); } @Override protected boolean isMnemonicHidden() { return com.sun.java.swing.plaf.windows.WindowsLookAndFeel.isMnemonicHidden(); } @Override protected boolean disabledTextHasShadow() { return (!SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) || (UIManager.getColor("MenuItem.disabledForeground") == null); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsComboBoxEditor.java0000644000175000017500000000561111731047240030151 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import javax.swing.plaf.basic.BasicComboBoxEditor; import com.jgoodies.looks.common.ComboBoxEditorTextField; /** * The default editor for editable combo boxes in the * JGoodies Windows Look&Feel.

* * It differs from its superclass in that the border is quite the same as for * text fields: a compound border with an inner {@code MarginBorder}. * * @author Karsten Lentzsch * @version $Revision: 1.12 $ */ class WindowsComboBoxEditor extends BasicComboBoxEditor { WindowsComboBoxEditor(boolean isTableCellEditor) { editor = new ComboBoxEditorTextField(isTableCellEditor); } @Override public void setItem(Object item) { super.setItem(item); editor.selectAll(); } /** * A subclass of BasicComboBoxEditor that implements UIResource. * BasicComboBoxEditor and WindowsComboBoxEditor don't implement UIResource * directly so that applications can safely override the cellRenderer * property with BasicListCellRenderer subclasses. */ static final class UIResource extends WindowsComboBoxEditor implements javax.swing.plaf.UIResource { UIResource(boolean isTableCellEditor) { super(isTableCellEditor); } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsToolBarUI.java0000644000175000017500000001302611731047240027071 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Component; import java.awt.Container; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.border.Border; import javax.swing.event.MouseInputListener; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalToolBarUI; import com.jgoodies.looks.BorderStyle; import com.jgoodies.looks.HeaderStyle; import com.jgoodies.looks.Options; /** * Corrects superclass behavior for rollover borders * and adds behavior for handling different types of borders. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public final class WindowsToolBarUI extends MetalToolBarUI { private PropertyChangeListener listener; public static ComponentUI createUI(JComponent b) { return new WindowsToolBarUI(); } // Handling Special Borders ********************************************* @Override protected void installDefaults() { super.installDefaults(); installSpecialBorder(); } @Override protected void installListeners() { super.installListeners(); listener = createBorderStyleListener(); toolBar.addPropertyChangeListener(listener); } @Override protected void uninstallListeners() { toolBar.removePropertyChangeListener(listener); super.uninstallListeners(); } private PropertyChangeListener createBorderStyleListener() { return new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (prop.equals(Options.HEADER_STYLE_KEY) || prop.equals(WindowsLookAndFeel.BORDER_STYLE_KEY)) { WindowsToolBarUI.this.installSpecialBorder(); } } }; } /** * Installs a special border, if either a look-dependent * {@code BorderStyle} or a look-independent * {@code HeaderStyle} has been specified. * A look specific BorderStyle shadows a HeaderStyle.

* * Specifying a HeaderStyle is recommend. */ private void installSpecialBorder() { String suffix; BorderStyle borderStyle = BorderStyle.from(toolBar, WindowsLookAndFeel.BORDER_STYLE_KEY); if (borderStyle == BorderStyle.EMPTY) { suffix = "emptyBorder"; } else if (borderStyle == BorderStyle.SEPARATOR) { suffix = "separatorBorder"; } else if (borderStyle == BorderStyle.ETCHED) { suffix = "etchedBorder"; } else if (HeaderStyle.from(toolBar) == HeaderStyle.BOTH) { suffix = "headerBorder"; } else { return; } LookAndFeel.installBorder(toolBar, "ToolBar." + suffix); } // Misc ***************************************************************** /** * Unlike the superclass MetalToolBarUI, * this class uses the docking listener from the BasicToolBarUI. */ @Override protected MouseInputListener createDockingListener( ) { return new DockingListener(toolBar); } // Handling Rollover Borders ******************************************** @Override protected Border createRolloverBorder() { return WindowsBorders.getRolloverButtonBorder(); } @Override protected void setBorderToRollover(Component c) { if (c instanceof AbstractButton) { super.setBorderToRollover(c); } else if (c instanceof Container) { Container cont = (Container) c; for (int i = 0; i < cont.getComponentCount(); i++) { super.setBorderToRollover(cont.getComponent(i)); } } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsIconFactory.java0000644000175000017500000001634511731047240027520 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Component; import java.awt.Graphics; import java.io.Serializable; import javax.swing.*; import javax.swing.plaf.UIResource; /** * Factory class that vends {@code Icon}s used in the JGoodies Windows look&feel. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ final class WindowsIconFactory { private WindowsIconFactory() { // Overrides default constructor; prevents instantiation. } // Accessing and Creating Icons ***************************************************** private static Icon checkBoxIcon; private static Icon radioButtonIcon; /** * Returns an {@code Icon} for a {@code JCheckBox}. */ static Icon getCheckBoxIcon() { if (checkBoxIcon == null) { checkBoxIcon = new CheckBoxIcon(); } return checkBoxIcon; } /** * Returns an {@code Icon} for a {@code JCheckBox}. */ static Icon getRadioButtonIcon() { if (radioButtonIcon == null) { radioButtonIcon = new RadioButtonIcon(); } return radioButtonIcon; } // Helper Classes ******************************************************************* // Paints the icon for a check box. private static class CheckBoxIcon implements Icon, Serializable { private static final int SIZE = 13; @Override public void paintIcon(Component c, Graphics g, int x, int y) { JCheckBox cb = (JCheckBox) c; ButtonModel model = cb.getModel(); // outer bevel if (!cb.isBorderPaintedFlat()) { // Outer top/left g.setColor(UIManager.getColor("CheckBox.shadow")); g.drawLine(x, y, x+11, y); g.drawLine(x, y+1, x, y+11); // Outer bottom/right g.setColor(UIManager.getColor("CheckBox.highlight")); g.drawLine(x+12, y, x+12, y+12); g.drawLine(x, y+12, x+11, y+12); // Inner top.left g.setColor(UIManager.getColor("CheckBox.darkShadow")); g.drawLine(x+1, y+1, x+10, y+1); g.drawLine(x+1, y+2, x+1, y+10); // Inner bottom/right g.setColor(UIManager.getColor("CheckBox.light")); g.drawLine(x+1, y+11, x+11, y+11); g.drawLine(x+11, y+1, x+11, y+10); } else { g.setColor(UIManager.getColor("CheckBox.shadow")); g.drawRect(x+1, y+1, SIZE-3, SIZE-3); } // inside box g.setColor(UIManager.getColor( (model.isPressed() && model.isArmed()) || !model.isEnabled() ? "CheckBox.background" : "CheckBox.interiorBackground")); g.fillRect(x+2, y+2, SIZE-4, SIZE-4); g.setColor(UIManager.getColor(model.isEnabled() ? "CheckBox.checkColor" // Modified by JGoodies : "CheckBox.shadow")); // paint check if (model.isSelected()) { g.drawLine(x+9, y+3, x+9, y+3); g.drawLine(x+8, y+4, x+9, y+4); g.drawLine(x+7, y+5, x+9, y+5); g.drawLine(x+6, y+6, x+8, y+6); g.drawLine(x+3, y+7, x+7, y+7); g.drawLine(x+4, y+8, x+6, y+8); g.drawLine(x+5, y+9, x+5, y+9); g.drawLine(x+3, y+5, x+3, y+5); g.drawLine(x+3, y+6, x+4, y+6); } } @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } } // Paints the icon for a radio button. private static class RadioButtonIcon implements Icon, UIResource, Serializable { private static final int SIZE = 13; @Override public void paintIcon(Component c, Graphics g, int x, int y) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); // fill interior g.setColor(UIManager.getColor( (model.isPressed() && model.isArmed()) || !model.isEnabled() ? "RadioButton.background" : "RadioButton.interiorBackground")); g.fillRect(x+2, y+2, 8, 8); // outter left arc g.setColor(UIManager.getColor("RadioButton.shadow")); g.drawLine(x+4, y+0, x+7, y+0); g.drawLine(x+2, y+1, x+3, y+1); g.drawLine(x+8, y+1, x+9, y+1); g.drawLine(x+1, y+2, x+1, y+3); g.drawLine(x+0, y+4, x+0, y+7); g.drawLine(x+1, y+8, x+1, y+9); // outter right arc g.setColor(UIManager.getColor("RadioButton.highlight")); g.drawLine(x+2, y+10, x+3, y+10); g.drawLine(x+4, y+11, x+7, y+11); g.drawLine(x+8, y+10, x+9, y+10); g.drawLine(x+10, y+9, x+10, y+8); g.drawLine(x+11, y+7, x+11, y+4); g.drawLine(x+10, y+3, x+10, y+2); // inner left arc g.setColor(UIManager.getColor("RadioButton.darkShadow")); g.drawLine(x+4, y+1, x+7, y+1); g.drawLine(x+2, y+2, x+3, y+2); g.drawLine(x+8, y+2, x+9, y+2); g.drawLine(x+2, y+3, x+2, y+3); g.drawLine(x+1, y+4, x+1, y+7); g.drawLine(x+2, y+8, x+2, y+8); // inner right arc g.setColor(UIManager.getColor("RadioButton.light")); g.drawLine(x+2, y+9, x+3, y+9); g.drawLine(x+4, y+10, x+7, y+10); g.drawLine(x+8, y+9, x+9, y+9); g.drawLine(x+9, y+8, x+9, y+8); g.drawLine(x+10, y+7, x+10, y+4); g.drawLine(x+9, y+3, x+9, y+3); // indicate whether selected or not if(model.isSelected()) { g.setColor(UIManager.getColor("RadioButton.checkColor")); // Modified by JGoodies g.fillRect(x+4, y+5, 4, 2); g.fillRect(x+5, y+4, 2, 4); } } @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsLookAndFeel.java0000644000175000017500000007173011731047240027422 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import java.lang.reflect.Method; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.UIDefaults; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.plaf.IconUIResource; import javax.swing.plaf.InsetsUIResource; import javax.swing.plaf.basic.BasicBorders; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.FontPolicies; import com.jgoodies.looks.FontPolicy; import com.jgoodies.looks.FontSet; import com.jgoodies.looks.LookUtils; import com.jgoodies.looks.MicroLayout; import com.jgoodies.looks.MicroLayoutPolicies; import com.jgoodies.looks.MicroLayoutPolicy; import com.jgoodies.looks.Options; import com.jgoodies.looks.common.MinimumSizedIcon; import com.jgoodies.looks.common.RGBGrayFilter; import com.jgoodies.looks.common.ShadowPopupFactory; /** * The main class of the JGoodies Windows Look&Feel. * This look provides several corrections and extensions to Sun's Windows L&F. * In addition it tries to provide a unified look for the J2SE 1.4.0x, 1.4.1x, * 1.4.2, and 1.5 environments. * * @author Karsten Lentzsch * @version $Revision: 1.48 $ */ public class WindowsLookAndFeel extends com.sun.java.swing.plaf.windows.WindowsLookAndFeel { /** * An optional client property key for JMenu and JToolBar * to set a border style - shadows the header style. */ public static final String BORDER_STYLE_KEY = "jgoodies.windows.borderStyle"; /** * Returns the String "JGoodies Windows". * Note that this L&f's ID ("Windows") is inherited * from the superclass, because we don't do any fundamental changes. * * @see LookAndFeel#getID() */ @Override public String getName() { return "JGoodies Windows"; } @Override public String getDescription() { return "The JGoodies Windows Look and Feel" + " - \u00a9 2001-2012 JGoodies Karsten Lentzsch"; } // Optional Settings ****************************************************** /** * Looks up and retrieves the FontPolicy used by * the JGoodies Windows Look&Feel. * If a FontPolicy has been set for this look, it'll be returned. * Otherwise, this method checks if a FontPolicy or FontSet is defined * in the system properties or UIDefaults. If so, it is returned. * If no FontPolicy has been set for this look, in the system * properties or UIDefaults, the default Windows font policy * will be returned. * * @return the FontPolicy set for this Look&feel - if any, * the FontPolicy specified in the system properties or UIDefaults * - if any, or the default Windows font policy. * * @see #setFontPolicy * @see Options#WINDOWS_FONT_POLICY_KEY * @see FontPolicies * @see FontPolicies#customSettingsPolicy(FontPolicy) * @see FontPolicies#getDefaultWindowsPolicy() */ public static FontPolicy getFontPolicy() { FontPolicy policy = (FontPolicy) UIManager.get(Options.WINDOWS_FONT_POLICY_KEY); if (policy != null) { return policy; } FontPolicy defaultPolicy = FontPolicies.getDefaultWindowsPolicy(); return FontPolicies.customSettingsPolicy(defaultPolicy); } /** * Sets the FontPolicy to be used with the JGoodies Windows L&F. * If the specified policy is {@code null}, the default will be reset. * * @param fontPolicy the FontPolicy to be used with the JGoodies Windows * L&F, or {@code null} to reset to the default * * @see #getFontPolicy() * @see Options#WINDOWS_FONT_POLICY_KEY */ public static void setFontPolicy(FontPolicy fontPolicy) { UIManager.put(Options.WINDOWS_FONT_POLICY_KEY, fontPolicy); } /** * Looks up and retrieves the MicroLayoutPolicy used by * the JGoodies Windows Look&Feel. * If a MicroLayoutPolicy has been set for this look, it'll be returned. * Otherwise, the default Windows micro layout policy will be returned. * * @return the MicroLayoutPolicy set for this Look&feel - if any, * or the default Windows MicroLayoutPolicy. * * @see #setMicroLayoutPolicy * @see Options#WINDOWS_MICRO_LAYOUT_POLICY_KEY * @see MicroLayoutPolicies * @see MicroLayoutPolicies#getDefaultWindowsPolicy() */ public static MicroLayoutPolicy getMicroLayoutPolicy() { MicroLayoutPolicy policy = (MicroLayoutPolicy) UIManager.get(Options.WINDOWS_MICRO_LAYOUT_POLICY_KEY); return policy != null ? policy : MicroLayoutPolicies.getDefaultWindowsPolicy(); } /** * Sets the MicroLayoutPolicy to be used with the JGoodies Windows L&F. * If the specified policy is {@code null}, the default will be reset. * * @param microLayoutPolicy the MicroLayoutPolicy to be used with * the JGoodies Windows L&F, or {@code null} to reset * to the default * * @see #getMicroLayoutPolicy() * @see Options#WINDOWS_MICRO_LAYOUT_POLICY_KEY */ public static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy) { UIManager.put(Options.WINDOWS_MICRO_LAYOUT_POLICY_KEY, microLayoutPolicy); } // Overriding Superclass Behavior *************************************** /** * Invoked during {@code UIManager#setLookAndFeel}. In addition * to the superclass behavior, we install the ShadowPopupFactory. * * @see #uninitialize */ @Override public void initialize() { super.initialize(); ShadowPopupFactory.install(); } /** * Invoked during {@code UIManager#setLookAndFeel}. In addition * to the superclass behavior, we uninstall the ShadowPopupFactory. * * @see #initialize */ @Override public void uninitialize() { super.uninitialize(); ShadowPopupFactory.uninstall(); } /** * Returns an icon with a disabled appearance. This method is used * to generate a disabled icon when one has not been specified.

* * This method will be used only on JDK 5.0 and later. * * @param component the component that will display the icon, may be null. * @param icon the icon to generate disabled icon from. * @return disabled icon, or null if a suitable icon can not be generated. */ @Override public Icon getDisabledIcon(JComponent component, Icon icon) { Icon disabledIcon = RGBGrayFilter.getDisabledIcon(component, icon); return disabledIcon != null ? new IconUIResource(disabledIcon) : null; } /** * Initializes the class defaults, that is, overrides some UI delegates * with JGoodies Windows implementations. */ @Override protected void initClassDefaults(UIDefaults table) { super.initClassDefaults(table); final String windowsPrefix = "com.jgoodies.looks.windows.Windows"; final String commonPrefix = "com.jgoodies.looks.common.ExtBasic"; // Overwrite some of the uiDefaults. Object[] uiDefaults = { // Modified size "ComboBoxUI", windowsPrefix + "ComboBoxUI", // Modified preferred height: can be even or odd "ButtonUI", windowsPrefix + "ButtonUI", // Can installs an optional etched border "ScrollPaneUI", windowsPrefix + "ScrollPaneUI", // Optional style and optional special borders "MenuBarUI", windowsPrefix + "MenuBarUI", // Provides an option for a no margin border "PopupMenuUI", windowsPrefix + "PopupMenuUI", // Honors the screen resolution and uses a minimum button width "OptionPaneUI", windowsPrefix + "OptionPaneUI", // 1.4.1 has ugly one touch triangles "SplitPaneUI", windowsPrefix + "SplitPaneUI", // Work in progress: Can have a flat presentation "TabbedPaneUI", windowsPrefix + "TabbedPaneUI", // Selects text after focus gained via keyboard "TextFieldUI", windowsPrefix + "TextFieldUI", "FormattedTextFieldUI", windowsPrefix + "FormattedTextFieldUI", // Selects text after focus gained via keyboard // Renders a dot, not the star ("*") character on Java 1.4 and 5 "PasswordFieldUI", windowsPrefix + "PasswordFieldUI", // Updates the disabled and inactive background "TextAreaUI", windowsPrefix + "TextAreaUI", // Corrected position of the tree button icon "TreeUI", windowsPrefix + "TreeUI", // Just to use shared UI delegate "SeparatorUI", windowsPrefix + "SeparatorUI", "SpinnerUI", windowsPrefix + "SpinnerUI"}; // Aligned menu items if ( !SystemUtils.IS_OS_WINDOWS_6_OR_LATER || !SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) { uiDefaults = append(uiDefaults, "MenuItemUI", windowsPrefix + "MenuItemUI"); uiDefaults = append(uiDefaults, "CheckBoxMenuItemUI", commonPrefix + "CheckBoxMenuItemUI"); uiDefaults = append(uiDefaults, "RadioButtonMenuItemUI", commonPrefix + "RadioButtonMenuItemUI"); // Has padding above and below the separator lines uiDefaults = append(uiDefaults, "PopupMenuSeparatorUI", commonPrefix + "PopupMenuSeparatorUI"); } if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) { // Aligned menu items if (!SystemUtils.IS_OS_WINDOWS_6_OR_LATER) { uiDefaults = append(uiDefaults, "MenuUI", windowsPrefix + "XPMenuUI"); } // Optional style and optional special borders; // rollover borders for compound buttons uiDefaults = append(uiDefaults, "ToolBarUI", windowsPrefix + "XPToolBarUI"); // Honors XP table header style for custom user renderers. uiDefaults = append(uiDefaults, "TableHeaderUI", windowsPrefix + "XPTableHeaderUI"); } else { // Aligned menu items uiDefaults = append(uiDefaults, "MenuUI", commonPrefix + "MenuUI"); // Optional style and optional special borders; // rollover borders corrected uiDefaults = append(uiDefaults, "ToolBarUI", windowsPrefix + "ToolBarUI"); // Black arrows uiDefaults = append(uiDefaults, "ScrollBarUI", windowsPrefix + "ScrollBarUI"); } table.putDefaults(uiDefaults); } /** * Initializes the component defaults. */ @Override protected void initComponentDefaults(UIDefaults table) { super.initComponentDefaults(table); final boolean isXP = SystemUtils.IS_LAF_WINDOWS_XP_ENABLED; final boolean isClassic = !isXP; final boolean isVista = SystemUtils.IS_OS_WINDOWS_6_OR_LATER; initFontDefaults(table); if (isClassic) { initComponentDefaultsClassic(table); } MicroLayout microLayout = getMicroLayoutPolicy().getMicroLayout("Windows", table); if (!isVista || !SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) { initMenuItemDefaults(table, microLayout); } Object marginBorder = new BasicBorders.MarginBorder(); Object checkBoxMargin = microLayout.getCheckBoxMargin(); Object etchedBorder = new UIDefaults.ProxyLazyValue( "javax.swing.plaf.BorderUIResource", "getEtchedBorderUIResource"); Object buttonBorder = new SimpleProxyLazyValue( "com.jgoodies.looks.windows.WindowsLookAndFeel", "getButtonBorder"); Object menuBorder = isXP ? WindowsBorders.getXPMenuBorder() : WindowsBorders.getMenuBorder(); Object menuBarEmptyBorder = marginBorder; Object menuBarSeparatorBorder = WindowsBorders.getSeparatorBorder(); Object menuBarEtchedBorder = WindowsBorders.getEtchedBorder(); Object menuBarHeaderBorder = WindowsBorders.getMenuBarHeaderBorder(); Object toolBarEmptyBorder = marginBorder; Object toolBarSeparatorBorder = WindowsBorders.getSeparatorBorder(); Object toolBarEtchedBorder = WindowsBorders.getEtchedBorder(); Object toolBarHeaderBorder = WindowsBorders.getToolBarHeaderBorder(); Object buttonMargin = microLayout.getButtonMargin(); Object toolBarSeparatorSize = null; Object textInsets = microLayout.getTextInsets(); Object wrappedTextInsets = microLayout.getWrappedTextInsets(); Insets comboEditorInsets = microLayout.getComboBoxEditorInsets(); int comboBorderSize = microLayout.getComboBorderSize(); int comboPopupBorderSize = microLayout.getComboPopupBorderSize(); int comboRendererGap = comboEditorInsets.left + comboBorderSize - comboPopupBorderSize; Object comboRendererBorder = new EmptyBorder(1, comboRendererGap, 1, comboRendererGap); Object comboTableEditorInsets = new Insets(0, 0, 0, 0); Object popupMenuSeparatorMargin = microLayout.getPopupMenuSeparatorMargin(); // Should be active. int treeFontSize = table.getFont("Tree.font").getSize(); Integer rowHeight = new Integer(treeFontSize + 6); Color controlColor = table.getColor("control"); Object disabledTextBackground = table.getColor("TextField.disabledBackground"); Object inactiveTextBackground = table.getColor("TextField.inactiveBackground"); Object comboBoxDisabledBackground = isVista && isXP ? table.getColor("ComboBox.background") : disabledTextBackground; Object menuBarBackground = isXP ? table.get("control") : table.get("menu"); Object menuSelectionBackground = isXP ? table.get("MenuItem.selectionBackground") : table.get("Menu.background"); Object menuSelectionForeground = isXP ? table.get("MenuItem.selectionForeground") : table.get("Menu.foreground"); Character passwordEchoChar = new Character(isXP ? '\u25CF' : '*'); Object[] defaults = { "Button.border", buttonBorder, "Button.margin", buttonMargin, // Sun's 14px margin is too wide // 1.4.2 uses a 2 pixel non-standard border that leads to bad // alignment in the typical case that the border is not painted "CheckBox.border", marginBorder, "CheckBox.margin", checkBoxMargin, "ComboBox.disabledBackground", comboBoxDisabledBackground, "ComboBox.editorBorder", marginBorder, "ComboBox.editorColumns", new Integer(5), "ComboBox.editorInsets", comboEditorInsets, // Added by JGoodies "ComboBox.tableEditorInsets", comboTableEditorInsets, "ComboBox.rendererBorder", comboRendererBorder, // Added by JGoodies "EditorPane.margin", wrappedTextInsets, // Begin 1.3 und 1.4.0 "Menu.border", menuBorder, // Fixed in 1.4.1 "Menu.borderPainted", Boolean.TRUE, "Menu.background", menuBarBackground, "Menu.selectionForeground", menuSelectionForeground, "Menu.selectionBackground", menuSelectionBackground, // End 1.3 und 1.4.0 "MenuBar.background", menuBarBackground, "MenuBar.border", menuBarSeparatorBorder, // 1.4.1 Separator wrong "MenuBar.emptyBorder", menuBarEmptyBorder, // Added by JGoodies "MenuBar.separatorBorder", menuBarSeparatorBorder, // Added by JGoodies "MenuBar.etchedBorder", menuBarEtchedBorder, // Added by JGoodies "MenuBar.headerBorder", menuBarHeaderBorder, // Added by JGoodies "FormattedTextField.disabledBackground", disabledTextBackground, // for readonly "FormattedTextField.inactiveBackground", inactiveTextBackground, // for readonly "FormattedTextField.margin", textInsets, // Poor in 1.6 "PasswordField.margin", textInsets, // Poor in 1.6 "PasswordField.echoChar", passwordEchoChar, "PopupMenu.border", WindowsBorders.getPopupMenuBorder(), "PopupMenu.noMarginBorder", WindowsBorders.getNoMarginPopupMenuBorder(), "PopupMenuSeparator.margin", popupMenuSeparatorMargin, "ScrollPane.etchedBorder", etchedBorder, // Added by JGoodies "Spinner.defaultEditorInsets", textInsets, // Added by JGoodies // 1.4.1 uses a 2 pixel non-standard border, that leads to bad // alignment in the typical case that the border is not painted "RadioButton.border", marginBorder, "RadioButton.margin", checkBoxMargin, "Spinner.border", table.get("TextField.border"), "Table.gridColor", controlColor, // 1.4.1 Bug; active "TextArea.margin", wrappedTextInsets, // 1.4.1 Bug "TextArea.disabledBackground", disabledTextBackground, "TextArea.inactiveBackground", inactiveTextBackground, "TextField.margin", textInsets, // 1.4.1 Bug "ToggleButton.margin", buttonMargin, // Sun's 14px margin is too wide "ToolBar.emptyBorder", toolBarEmptyBorder, // Added by JGoodies "ToolBar.separatorBorder", toolBarSeparatorBorder, // Added by JGoodies "ToolBar.etchedBorder", toolBarEtchedBorder, // Added by JGoodies "ToolBar.headerBorder", toolBarHeaderBorder, // Added by JGoodies "ToolBar.separatorSize", toolBarSeparatorSize, "ToolBar.margin", new InsetsUIResource(0, 10, 0, 0), "Tree.selectionBorderColor", controlColor, // 1.4.1 Bug; active "Tree.rowHeight", rowHeight, // 1.4.1 Bug }; table.putDefaults(defaults); } /** * Initializes component defaults required in classic mode only. */ private static void initComponentDefaultsClassic(UIDefaults table) { Object checkBoxIcon = new SimpleProxyLazyValue( "com.jgoodies.looks.windows.WindowsLookAndFeel", "getCheckBoxIcon"); Object radioButtonIcon = new SimpleProxyLazyValue( "com.jgoodies.looks.windows.WindowsLookAndFeel", "getRadioButtonIcon"); Border winInsetBorder = new BasicBorders.FieldBorder(table .getColor("controlShadow"), table .getColor("controlDkShadow"), table.getColor("controlHighlight"), table .getColor("controlLtHighlight")); Object[] defaults = { "CheckBox.checkColor", table.get("controlText"), // kind-of black "CheckBox.icon", checkBoxIcon, "RadioButton.checkColor", table.get("controlText"), // kind-of black "RadioButton.icon", radioButtonIcon, "Table.scrollPaneBorder", winInsetBorder, // 1.4.1 Bug }; table.putDefaults(defaults); } /** * Looks up the correct control font and sets it for all controls. */ private static void initFontDefaults(UIDefaults table) { FontPolicy fontChoicePolicy = getFontPolicy(); FontSet fontSet = fontChoicePolicy.getFontSet("Windows", table); initFontDefaults(table, fontSet); } private static void initMenuItemDefaults(UIDefaults table, MicroLayout microLayout) { Object menuMargin = microLayout.getMenuMargin(); Object menuItemMargin = microLayout.getMenuItemMargin(); Icon menuItemCheckIcon = new MinimumSizedIcon(); Object[] defaults = { "Menu.margin", menuMargin, // 1.4.1 Bug "MenuItem.borderPainted", Boolean.TRUE, "MenuItem.checkIcon", menuItemCheckIcon, // Aligns menu items "MenuItem.margin", menuItemMargin, // 1.4.1 Bug "CheckBoxMenuItem.margin", menuItemMargin, // 1.4.1 Bug "RadioButtonMenuItem.margin", menuItemMargin, // 1.4.1 Bug }; table.putDefaults(defaults); } /** * Sets Fonts in the given FontSet as defaults for all known * component types in the given UIDefaults table. * * @param table the UIDefaults table used to set fonts * @param fontSet describes the set of Fonts to be installed */ private static void initFontDefaults(UIDefaults table, FontSet fontSet) { Font controlFont = fontSet.getControlFont(); Font menuFont = fontSet.getMenuFont(); Font messageFont = fontSet.getMessageFont(); Font toolTipFont = fontSet.getSmallFont(); Font titleFont = fontSet.getTitleFont(); Font windowFont = fontSet.getWindowTitleFont(); Object[] defaults = { "Button.font", controlFont, "CheckBox.font", controlFont, "ColorChooser.font", controlFont, "ComboBox.font", controlFont, "EditorPane.font", controlFont, "FormattedTextField.font", controlFont, "Label.font", controlFont, "List.font", controlFont, "Panel.font", controlFont, "PasswordField.font", controlFont, "ProgressBar.font", controlFont, "RadioButton.font", controlFont, "ScrollPane.font", controlFont, "Spinner.font", controlFont, "TabbedPane.font", controlFont, "Table.font", controlFont, "TableHeader.font", controlFont, "TextArea.font", controlFont, "TextField.font", controlFont, "TextPane.font", controlFont, "ToolBar.font", controlFont, "ToggleButton.font", controlFont, "Tree.font", controlFont, "Viewport.font", controlFont, "InternalFrame.titleFont", windowFont, // controlBold "OptionPane.font", messageFont, "OptionPane.messageFont", messageFont, "OptionPane.buttonFont", messageFont, "TitledBorder.font", titleFont, "ToolTip.font", toolTipFont, "CheckBoxMenuItem.font", menuFont, "CheckBoxMenuItem.acceleratorFont", menuFont, // 1.3 only ? "Menu.font", menuFont, "Menu.acceleratorFont", menuFont, "MenuBar.font", menuFont, "MenuItem.font", menuFont, "MenuItem.acceleratorFont", menuFont, "PopupMenu.font", menuFont, "RadioButtonMenuItem.font", menuFont, "RadioButtonMenuItem.acceleratorFont", menuFont, // 1.3 only ? }; table.putDefaults(defaults); } // Getters for Proxy Access (Referred classes can stay package visible) *** public static Border getButtonBorder() { return WindowsBorders.getButtonBorder(); } public static Icon getCheckBoxIcon() { return WindowsIconFactory.getCheckBoxIcon(); } public static Icon getRadioButtonIcon() { return WindowsIconFactory.getRadioButtonIcon(); } // Helper Code ************************************************************ /** * Appends the key and value to the given source array and returns * a copy that has the two new elements at its end. * * @return an array with the key and value appended */ private static Object[] append(Object[] source, String key, Object value) { int length = source.length; Object[] destination = new Object[length + 2]; System.arraycopy(source, 0, destination, 0, length); destination[length] = key; destination[length + 1] = value; return destination; } // Helper Class *********************************************************** /** * This class provides an implementation of {@code LazyValue} that * can be used to delay loading of the Class for the instance to be created. * It also avoids creation of an anonymous inner class for the * {@code LazyValue} * subclass. Both of these improve performance at the time that a * a Look and Feel is loaded, at the cost of a slight performance * reduction the first time {@code createValue} is called * (since Reflection APIs are used). */ private static class SimpleProxyLazyValue implements UIDefaults.LazyValue { private final String className; private final String methodName; /** * Creates a {@code LazyValue} which will construct an instance * when asked. * * @param c a {@code String} specifying the classname of the class * containing a static method to be called for instance creation * @param m a {@code String} specifying the static * method to be called on class c */ public SimpleProxyLazyValue(String c, String m) { className = c; methodName = m; } /** * Creates the value retrieved from the {@code UIDefaults} table. * The object is created each time it is accessed. * * @param table a {@code UIDefaults} table * @return the created {@code Object} */ @Override public Object createValue(UIDefaults table) { Object instance = null; try { Class c; // We use a separate ClassLoader ClassLoader classLoader = table != null ? (ClassLoader) table.get("ClassLoader") : Thread.currentThread().getContextClassLoader(); if (classLoader == null) { classLoader = getClass().getClassLoader(); } c = Class.forName(className, true, classLoader); Method m = c.getMethod(methodName, (Class[]) null); instance = m.invoke(c, (Object[]) null); } catch (Throwable t) { LookUtils.log("Problem creating " + className + " with method " + methodName + t); } return instance; } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsArrowButton.java0000644000175000017500000001216711731047240027564 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.UIManager; import javax.swing.plaf.basic.BasicArrowButton; /** * The JGoodies Windows Look&Feel implementation for * arrow buttons used in scrollbars and comboboxes. *

* It differs from {@code BasicArrowButton} in that the preferred size * is always a square. * It differs from {@code WindowsScrollBarUI.WindowsArrowButton} * in that the triangle is black and positioned correctly. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ final class WindowsArrowButton extends BasicArrowButton { public WindowsArrowButton(int direction) { super(direction); } @Override public Dimension getPreferredSize() { int width = Math.max(5, UIManager.getInt("ScrollBar.width")); return new Dimension(width, width); } @Override public void paintTriangle( Graphics g, int x, int y, int size, int triangleDirection, boolean enabled) { Color oldColor = g.getColor(); int mid, i, j; j = 0; size = Math.max(size, 2); mid = (size - 1) / 2; // Modified by JGoodies g.translate(x, y); g.setColor(UIManager.getColor(enabled ? "controlText" : "controlShadow")); switch (triangleDirection) { case NORTH : for (i = 0; i < size; i++) { g.drawLine(mid - i, i, mid + i, i); } if (!enabled) { g.setColor(UIManager.getColor("controlLtHighlight")); g.drawLine(mid - i + 2, i, mid + i, i); } break; case SOUTH : if (!enabled) { g.translate(1, 1); g.setColor(UIManager.getColor("controlLtHighlight")); for (i = size - 1; i >= 0; i--) { g.drawLine(mid - i, j, mid + i, j); j++; } g.translate(-1, -1); g.setColor(UIManager.getColor("controlShadow")); } j = 0; for (i = size - 1; i >= 0; i--) { g.drawLine(mid - i, j, mid + i, j); j++; } break; case WEST : for (i = 0; i < size; i++) { g.drawLine(i, mid - i, i, mid + i); } if (!enabled) { g.setColor(UIManager.getColor("controlLtHighlight")); g.drawLine(i, mid - i + 2, i, mid + i); } break; case EAST : if (!enabled) { g.translate(1, 1); g.setColor(UIManager.getColor("controlLtHighlight")); for (i = size - 1; i >= 0; i--) { g.drawLine(j, mid - i, j, mid + i); j++; } g.translate(-1, -1); g.setColor(UIManager.getColor("controlShadow")); } j = 0; for (i = size - 1; i >= 0; i--) { g.drawLine(j, mid - i, j, mid + i); j++; } break; } g.translate(-x, -y); g.setColor(oldColor); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsSplitPaneDivider.java0000644000175000017500000003440311731047240030501 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.*; import javax.swing.JButton; import javax.swing.JSplitPane; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; /** * Paints nicely rendered one touch triangles. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see WindowsSplitPaneUI */ final class WindowsSplitPaneDivider extends BasicSplitPaneDivider { private static final int EXT_ONE_TOUCH_SIZE = 5; private static final int EXT_ONE_TOUCH_OFFSET = 2; private static final int EXT_BLOCKSIZE = 6; /** * Used to lay out a WindowsSplitPaneDivider. Layout for the divider * involves appropriately moving the left/right buttons around. *

* This inner class is marked "public" due to a compiler bug. * This class should be treated as a "protected" inner class. * Instantiate it only within subclasses of MetalSplitPaneDivider. */ public final class ExtWindowsDividerLayout implements LayoutManager { @Override public void layoutContainer(Container c) { JButton theLeftButton = getLeftButtonFromSuper(); JButton theRightButton = getRightButtonFromSuper(); JSplitPane theSplitPane = getSplitPaneFromSuper(); int theOrientation = getOrientationFromSuper(); int oneTouchSize = getOneTouchSize(); int oneTouchOffset = getOneTouchOffset(); int blockSize = 5; //getBlockSize(); //Math.min(getDividerSize(), oneTouchSize); // This layout differs from the one used in BasicSplitPaneDivider. // It does not center justify the oneTouchExpadable buttons. // This was necessary in order to meet the spec of the Metal // splitpane divider. if (theLeftButton != null && theRightButton != null && c == WindowsSplitPaneDivider.this) { if (theSplitPane.isOneTouchExpandable()) { if (theOrientation == JSplitPane.VERTICAL_SPLIT) { theLeftButton.setBounds( oneTouchOffset, 0, blockSize * 2, blockSize); theRightButton.setBounds( oneTouchOffset + oneTouchSize * 2, 0, blockSize * 2, blockSize); } else { theLeftButton.setBounds( 0, oneTouchOffset, blockSize, blockSize * 2); theRightButton.setBounds( 0, oneTouchOffset + oneTouchSize * 2, blockSize, blockSize * 2); } } else { theLeftButton.setBounds(-5, -5, 1, 1); theRightButton.setBounds(-5, -5, 1, 1); } } } @Override public Dimension minimumLayoutSize(Container c) { return new Dimension(0, 0); } @Override public Dimension preferredLayoutSize(Container c) { return new Dimension(0, 0); } @Override public void removeLayoutComponent(Component c) { // Unused method; implements LayoutManager. } @Override public void addLayoutComponent(String string, Component c) { // Unused method; implements LayoutManager. } } public WindowsSplitPaneDivider(BasicSplitPaneUI ui) { super(ui); setLayout(new ExtWindowsDividerLayout()); } /** * Creates and return an instance of JButton that can be used to * collapse the left component in the metal split pane. */ @Override protected JButton createLeftOneTouchButton() { JButton b = new JButton() { // Sprite buffer for the arrow image of the left button int[][] buffer = { { 0, 0, 0, 2, 2, 0, 0, 0, 0 }, { 0, 0, 2, 1, 1, 1, 0, 0, 0 }, { 0, 2, 1, 1, 1, 1, 1, 0, 0 }, { 2, 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 3, 3, 3, 3, 3, 3, 3, 3 } }; @Override public void setBorder(Border border) { // Ignore borders } @Override public void paint(Graphics g) { JSplitPane theSplitPane = getSplitPaneFromSuper(); if (theSplitPane != null) { int theOrientation = getOrientationFromSuper(); int blockSize = buffer.length + 1; //Math.min(getDividerSize(), oneTouchSize); // Initialize the color array Color[] colors = { this.getBackground(), UIManager.getColor("controlDkShadow"), Color.black, //UIManager.getColor(), UIManager.getColor("controlLtHighlight")}; // Fill the background first ... g.setColor(this.getBackground()); g.fillRect(0, 0, this.getWidth(), this.getHeight()); // ... then draw the arrow. if (getModel().isPressed()) { // Adjust color mapping for pressed button state colors[1] = colors[2]; } if (theOrientation == JSplitPane.VERTICAL_SPLIT) { // Draw the image for a vertical split for (int i = 1; i <= buffer[0].length; i++) { for (int j = 1; j < blockSize; j++) { if (buffer[j - 1][i - 1] == 0) { continue; } g.setColor(colors[buffer[j - 1][i - 1]]); g.drawLine(i - 1, j, i - 1, j); } } } else { // Draw the image for a horizontal split // by simply swaping the i and j axis. // Except the drawLine() call this code is // identical to the code block above. This was done // in order to remove the additional orientation // check for each pixel. for (int i = 1; i <= buffer[0].length; i++) { for (int j = 1; j < blockSize; j++) { if (buffer[j - 1][i - 1] == 0) { // Nothing needs // to be drawn continue; } // Set the color from the // color map g.setColor(colors[buffer[j - 1][i - 1]]); // Draw a pixel g.drawLine(j - 1, i, j - 1, i); } } } } } }; b.setFocusPainted(false); b.setBorderPainted(false); b.setFocusable(false); b.setOpaque(false); return b; } /** * Creates and return an instance of JButton that can be used to * collapse the right component in the metal split pane. */ @Override protected JButton createRightOneTouchButton() { JButton b = new JButton() { // Sprite buffer for the arrow image of the right button int[][] buffer = { { 2, 2, 2, 2, 2, 2, 2, 2 }, { 0, 1, 1, 1, 1, 1, 1, 3 }, { 0, 0, 1, 1, 1, 1, 3, 0 }, { 0, 0, 0, 1, 1, 3, 0, 0 }, { 0, 0, 0, 0, 3, 0, 0, 0 } }; @Override public void setBorder(Border border) { // Ignore borders } @Override public void paint(Graphics g) { JSplitPane theSplitPane = getSplitPaneFromSuper(); if (theSplitPane != null) { int theOrientation = getOrientationFromSuper(); int blockSize = buffer.length + 1; //Math.min(getDividerSize(), oneTouchSize); // Initialize the color array Color[] colors = { this.getBackground(), UIManager.getColor("controlDkShadow"), Color.black, //UIManager.getColor("controlDkShadow"), UIManager.getColor("controlLtHighlight")}; // Fill the background first ... g.setColor(this.getBackground()); g.fillRect(0, 0, this.getWidth(), this.getHeight()); // ... then draw the arrow. if (getModel().isPressed()) { // Adjust color mapping for pressed button state colors[1] = colors[2]; } if (theOrientation == JSplitPane.VERTICAL_SPLIT) { // Draw the image for a vertical split for (int i = 1; i <= buffer[0].length; i++) { for (int j = 1; j < blockSize; j++) { if (buffer[j - 1][i - 1] == 0) { continue; } g.setColor(colors[buffer[j - 1][i - 1]]); g.drawLine(i, j, i, j); } } } else { // Draw the image for a horizontal split // by simply swaping the i and j axis. // Except the drawLine() call this code is // identical to the code block above. This was done // in order to remove the additional orientation // check for each pixel. for (int i = 1; i <= buffer[0].length; i++) { for (int j = 1; j < blockSize; j++) { if (buffer[j - 1][i - 1] == 0) { // Nothing needs // to be drawn continue; } // Set the color from the // color map g.setColor(colors[buffer[j - 1][i - 1]]); // Draw a pixel g.drawLine(j - 1, i, j - 1, i); } } } } } }; b.setFocusPainted(false); b.setBorderPainted(false); b.setFocusable(false); b.setOpaque(false); return b; } static int getBlockSize() { return EXT_BLOCKSIZE; } static int getOneTouchOffset() { return EXT_ONE_TOUCH_OFFSET; } static int getOneTouchSize() { return EXT_ONE_TOUCH_SIZE; } int getOrientationFromSuper() { return super.orientation; } JButton getLeftButtonFromSuper() { return super.leftButton; } JButton getRightButtonFromSuper() { return super.rightButton; } JSplitPane getSplitPaneFromSuper() { return super.splitPane; } @Override public void paint(Graphics g) { if (splitPane.isOpaque()) { Color bgColor = splitPane.hasFocus() ? UIManager.getColor("SplitPane.shadow") : getBackground(); if (bgColor != null) { g.setColor(bgColor); g.fillRect(0, 0, getWidth(), getHeight()); } } super.paint(g); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsFormattedTextFieldUI.java0000644000175000017500000000511111731047240031261 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicFormattedTextFieldUI; import javax.swing.text.Caret; /** * The JGoodies Windows L&F implementation of {@code FormattedTextFieldUI}. * It uses a caret that selects all text if the field gains focus * after a keyboard focus traversal. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class WindowsFormattedTextFieldUI extends BasicFormattedTextFieldUI { /** * Creates a UI for a JFormattedTextField. * * @param c the formatted text field * @return the UI */ public static ComponentUI createUI(JComponent c) { return new WindowsFormattedTextFieldUI(); } /** * Creates the caret for a field. * * @return the caret */ @Override protected Caret createCaret() { return new WindowsFieldCaret(); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsPopupMenuUI.java0000644000175000017500000001037511731047240027463 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.BoxLayout; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import com.jgoodies.looks.Options; import com.jgoodies.looks.common.PopupMenuLayout; /** * The JGoodies Windows look&feel implementation of {@code PopMenuUI}. * It differs from the superclass in that it provides an option to get a * narrow border. You can set a client property * {@link Options#NO_MARGIN_KEY} to indicate that this popup menu * has a border without margin. That is useful in the special case * where the popup contains only a single component, for example * a JScrollPane. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ * * @see com.jgoodies.looks.Options#NO_MARGIN_KEY */ public final class WindowsPopupMenuUI extends com.sun.java.swing.plaf.windows.WindowsPopupMenuUI { private PropertyChangeListener borderListener; public static ComponentUI createUI(JComponent b) { return new WindowsPopupMenuUI(); } @Override public void installDefaults() { super.installDefaults(); installBorder(); if ( (popupMenu.getLayout() == null) || (popupMenu.getLayout() instanceof UIResource)) { popupMenu.setLayout(new PopupMenuLayout(popupMenu, BoxLayout.Y_AXIS)); } } @Override public void installListeners() { super.installListeners(); borderListener = new BorderStyleChangeHandler(); popupMenu.addPropertyChangeListener(Options.NO_MARGIN_KEY, borderListener); } @Override protected void uninstallListeners() { popupMenu.removePropertyChangeListener(Options.NO_MARGIN_KEY, borderListener); super.uninstallListeners(); } // Narrow Border ********************************************************** private final class BorderStyleChangeHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent e) { installBorder(); } } /** * Installs a border without margin, iff the client property * {@code Options.NO_MARGIN_KEY} is set to {@code Boolean.TRUE}. */ private void installBorder() { boolean useNarrowBorder = Boolean.TRUE.equals( popupMenu.getClientProperty(Options.NO_MARGIN_KEY)); String suffix = useNarrowBorder ? "noMarginBorder" : "border"; LookAndFeel.installBorder(popupMenu, "PopupMenu." + suffix); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsMenuBarUI.java0000644000175000017500000001044611731047240027063 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.plaf.ComponentUI; import com.jgoodies.looks.BorderStyle; import com.jgoodies.looks.HeaderStyle; import com.jgoodies.looks.Options; /** * The JGoodies Windows look and feel implemenation of {@code MenuBarUI}.

* * Can handle optional {@code Border} types as specified by the * {@code BorderStyle} or {@code HeaderStyle} client properties. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class WindowsMenuBarUI extends com.sun.java.swing.plaf.windows.WindowsMenuBarUI { private PropertyChangeListener listener; public static ComponentUI createUI(JComponent b) { return new WindowsMenuBarUI(); } // Handling Special Borders ********************************************************* @Override protected void installDefaults() { super.installDefaults(); installSpecialBorder(); } @Override protected void installListeners() { super.installListeners(); listener = createBorderStyleListener(); menuBar.addPropertyChangeListener(listener); } @Override protected void uninstallListeners() { menuBar.removePropertyChangeListener(listener); super.uninstallListeners(); } private PropertyChangeListener createBorderStyleListener() { return new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (prop.equals(Options.HEADER_STYLE_KEY) || prop.equals(WindowsLookAndFeel.BORDER_STYLE_KEY)) { WindowsMenuBarUI.this.installSpecialBorder(); } } }; } /** * Installs a special border, if either a look-dependent * {@code BorderStyle} or a look-independent * {@code HeaderStyle} has been specified. * A look specific BorderStyle shadows * a HeaderStyle.

* * Specifying a HeaderStyle is recommend. */ private void installSpecialBorder() { String suffix; BorderStyle borderStyle = BorderStyle.from(menuBar, WindowsLookAndFeel.BORDER_STYLE_KEY); if (borderStyle == BorderStyle.EMPTY) { suffix = "emptyBorder"; } else if (borderStyle == BorderStyle.ETCHED) { suffix = "etchedBorder"; } else if (borderStyle == BorderStyle.SEPARATOR) { suffix = "separatorBorder"; } else if (HeaderStyle.from(menuBar) == HeaderStyle.BOTH) { suffix = "headerBorder"; } else { return; } LookAndFeel.installBorder(menuBar, "MenuBar." + suffix); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsTreeUI.java0000644000175000017500000001227011731047240026426 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Component; import java.awt.Graphics; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import com.jgoodies.looks.Options; /** * The JGoodies Windows Look&Feel implementation of {@code TreeUI}. * Corrects the position of the tree button icon and provides two line styles: * angled dashed lines, or no lines at all. By default, lines are drawn.

* * You can change the line style by setting a client property. * The property key and values are a subset of the values used * by the Metal L&F tree. To hide lines use one of the following: *

 * JTree tree1 = new JTree();
 * tree1.putClientProperty("JTree.lineStyle", "None");
 *
 * JTree tree2 = new JTree();
 * tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
 *                         Options.TREE_LINE_STYLE_NONE_VALUE);
 * 
* * Although lines are shown by default, you could code: *
 * JTree tree1 = new JTree();
 * tree1.putClientProperty("JTree.lineStyle", "Angled");
 *
 * JTree tree2 = new JTree();
 * tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
 *                         Options.TREE_LINE_STYLE_ANGLED_VALUE);
 * 
* * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class WindowsTreeUI extends com.sun.java.swing.plaf.windows.WindowsTreeUI { private boolean linesEnabled = true; private PropertyChangeListener lineStyleHandler; public static ComponentUI createUI(JComponent b) { return new WindowsTreeUI(); } // Installation *********************************************************** @Override public void installUI(JComponent c) { super.installUI(c); updateLineStyle(c.getClientProperty(Options.TREE_LINE_STYLE_KEY)); lineStyleHandler = new LineStyleHandler(); c.addPropertyChangeListener(lineStyleHandler); } @Override public void uninstallUI(JComponent c) { c.removePropertyChangeListener(lineStyleHandler); super.uninstallUI(c); } // Painting *************************************************************** @Override protected void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom) { if (linesEnabled) { super.paintVerticalLine(g, c, x, top, bottom); } } @Override protected void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right) { if (linesEnabled) { super.paintHorizontalLine(g, c, y, left, right); } } // Draws the icon centered at (x,y) @Override protected void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y) { icon.paintIcon(c, graphics, x - icon.getIconWidth() / 2 - 1, y - icon.getIconHeight() / 2); } // Helper Code ************************************************************ private void updateLineStyle(Object lineStyle) { linesEnabled = !Options.TREE_LINE_STYLE_NONE_VALUE.equals(lineStyle); } // Listens for changes of the line style property private class LineStyleHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent e) { String name = e.getPropertyName(); Object value = e.getNewValue(); if (name.equals(Options.TREE_LINE_STYLE_KEY)) { updateLineStyle(value); } } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsSplitPaneUI.java0000644000175000017500000000476211731047240027435 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicSplitPaneDivider; /** * The JGoodies Windows L&F implementation of {@code SplitPaneUI}. * Uses a special divider that paints modified one-touch buttons. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see com.jgoodies.looks.windows.WindowsSplitPaneDivider */ public final class WindowsSplitPaneUI extends com.sun.java.swing.plaf.windows.WindowsSplitPaneUI { /** * Creates and returns a {@code WindowsSplitPaneUI} instance. */ public static ComponentUI createUI(JComponent x) { return new WindowsSplitPaneUI(); } /** * Creates and returns the modified default divider. */ @Override public BasicSplitPaneDivider createDefaultDivider() { return new WindowsSplitPaneDivider(this); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsSeparatorUI.java0000644000175000017500000000457311731047240027476 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicSeparatorUI; /** * The JGoodies Windows L&F implementation of {@code SeparatorUI}. * It differs from its superclass in that it uses a shared UI delegate.

* * Thanks to Andrej Golovnin for his feedback and suggestions. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class WindowsSeparatorUI extends BasicSeparatorUI { /** Shared UI object. */ private static ComponentUI separatorUI; public static ComponentUI createUI(JComponent c) { if (separatorUI == null) { separatorUI = new WindowsSeparatorUI(); } return separatorUI; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsButtonUI.java0000644000175000017500000000540111731047240027000 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Dimension; import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicGraphicsUtils; /** * The JGoodies Windows look&feel implementation of {@code ButtonUI}.

* * Unlike its superclass it returns even and odd preferred heights. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class WindowsButtonUI extends com.sun.java.swing.plaf.windows.WindowsButtonUI { public static ComponentUI createUI(JComponent b) { return new WindowsButtonUI(); } @Override public Dimension getPreferredSize(JComponent c) { AbstractButton b = (AbstractButton) c; Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, b .getIconTextGap()); /* Ensure that the width of the button is odd, * to improve the painting of the dashed focus line */ if (d != null && b.isFocusPainted()) { if (d.width % 2 == 0) { d.width += 1; } } return d; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsSpinnerUI.java0000644000175000017500000001735411731047240027155 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Component; import java.awt.Insets; import java.awt.LayoutManager; import javax.swing.*; import javax.swing.border.EmptyBorder; import javax.swing.plaf.ComponentUI; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.common.ExtBasicSpinnerLayout; /** * The JGoodies Windows L&F implementation of {@code SpinnerUI}. * Configures the default editor to adjust font baselines and component * bounds, by setting an empty border with the default text insets. * * @author Karsten Lentzsch * @version $Revision: 1.13 $ */ public final class WindowsSpinnerUI extends com.sun.java.swing.plaf.windows.WindowsSpinnerUI { public static ComponentUI createUI(JComponent b) { return new WindowsSpinnerUI(); } /** * Create a component that will replace the spinner models value with the * object returned by {@code spinner.getPreviousValue}. By default * the {@code previousButton} is a JButton who's {@code ActionListener} * updates it's {@code JSpinner} ancestors model. If a * previousButton isn't needed (in a subclass) then override this method to * return null. * * @return a component that will replace the spinners model with the next * value in the sequence, or null * @see #installUI * @see #createNextButton */ @Override protected Component createPreviousButton() { if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) { return super.createPreviousButton(); } Component c = new WindowsArrowButton(SwingConstants.SOUTH); installPreviousButtonListeners(c); return c; } /** * Create a component that will replace the spinner models value with the * object returned by {@code spinner.getNextValue}. By default the * {@code nextButton} is a JButton who's {@code ActionListener} * updates it's {@code JSpinner} ancestors model. If a nextButton * isn't needed (in a subclass) then override this method to return null. * * @return a component that will replace the spinners model with the next * value in the sequence, or null * @see #installUI * @see #createPreviousButton */ @Override protected Component createNextButton() { if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) { return super.createNextButton(); } Component c = new WindowsArrowButton(SwingConstants.NORTH); installNextButtonListeners(c); return c; } /** * This method is called by installUI to get the editor component of the * {@code JSpinner}. By default it just returns {@code JSpinner.getEditor()}. * Subclasses can override {@code createEditor} to return a * component that contains the spinner's editor or null, if they're going * to handle adding the editor to the {@code JSpinner} in an {@code installUI} * override. *

* Typically this method would be overridden to wrap the editor with a * container with a custom border, since one can't assume that the editors * border can be set directly. *

* The {@code replaceEditor} method is called when the spinners * editor is changed with {@code JSpinner.setEditor}. If you've * overriden this method, then you'll probably want to override {@code replaceEditor} * as well. * * @return the JSpinners editor JComponent, spinner.getEditor() by default * @see #installUI * @see #replaceEditor * @see JSpinner#getEditor */ @Override protected JComponent createEditor() { JComponent editor = spinner.getEditor(); configureEditorBorder(editor); return editor; } /** * Create a {@code LayoutManager} that manages the {@code editor}, * {@code nextButton}, and {@code previousButton} children * of the JSpinner. These three children must be added with a constraint * that identifies their role: "Editor", "Next", and "Previous". The * default layout manager can handle the absence of any of these children. * * @return a LayoutManager for the editor, next button, and previous * button. * @see #createNextButton * @see #createPreviousButton * @see #createEditor */ @Override protected LayoutManager createLayout() { return new ExtBasicSpinnerLayout(); } /** * Called by the {@code PropertyChangeListener} when the {@code JSpinner} * editor property changes. It's the responsibility of this method to * remove the old editor and add the new one. By default this operation is * just: * *

     *  spinner.remove(oldEditor); spinner.add(newEditor, "Editor");
     * 
* * * The implementation of {@code replaceEditor} should be coordinated * with the {@code createEditor} method. * * @see #createEditor * @see #createPropertyChangeListener */ @Override protected void replaceEditor(JComponent oldEditor, JComponent newEditor) { spinner.remove(oldEditor); configureEditorBorder(newEditor); spinner.add(newEditor, "Editor"); } /** * Sets an empty border with consistent insets. */ private static void configureEditorBorder(JComponent editor) { if (editor instanceof JSpinner.DefaultEditor) { JSpinner.DefaultEditor defaultEditor = (JSpinner.DefaultEditor) editor; JTextField editorField = defaultEditor.getTextField(); Insets insets = UIManager.getInsets("Spinner.defaultEditorInsets"); editorField.setBorder(new EmptyBorder(insets)); } else if ( editor instanceof JPanel && editor.getBorder() == null && editor.getComponentCount() > 0) { JComponent editorField = (JComponent) editor.getComponent(0); Insets insets = UIManager.getInsets("Spinner.defaultEditorInsets"); editorField.setBorder(new EmptyBorder(insets)); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsTabbedPaneUI.java0000644000175000017500000005261511731047240027523 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Insets; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicGraphicsUtils; import javax.swing.plaf.basic.BasicTabbedPaneUI; import javax.swing.text.View; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.Options; /** * The JGoodies Windows L&F implementation of {@code TabbedPaneUI}.

* * The flat appearance is work in progress; currently it works only * for a single line of tabs and paints distored tabs for multiple lines. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ public final class WindowsTabbedPaneUI extends com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI { /** Insets used for the embedded style content border. */ private static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0); /** Insets used if we paint no content border. */ private static final int INSET = SystemUtils.IS_LAF_WINDOWS_XP_ENABLED ? -1 : 1; private static final Insets NO_CONTENT_BORDER_NORTH_INSETS = new Insets(INSET, 0, 0, 0); private static final Insets NO_CONTENT_BORDER_WEST_INSETS = new Insets(0, INSET, 0, 0); private static final Insets NO_CONTENT_BORDER_SOUTH_INSETS = new Insets(0, 0, INSET, 0); private static final Insets NO_CONTENT_BORDER_EAST_INSETS = new Insets(0, 0, 0, INSET); /** Insets used if we paint content border. */ private static final Insets CONTENT_BORDER_NORTH_INSETS = new Insets(0, 2, 4, 4); private static final Insets CONTENT_BORDER_WEST_INSETS = new Insets(2, 0, 4, 4); private static final Insets CONTENT_BORDER_SOUTH_INSETS = new Insets(4, 2, 0, 4); private static final Insets CONTENT_BORDER_EAST_INSETS = new Insets(2, 4, 4, 0); /** * Describes if tabs are painted with or without icons. */ private static boolean isTabIconsEnabled = Options.isTabIconsEnabled(); /** * Describes if we paint no content border or not; this is false by default. * You can disable the content border by setting the client property * Options.NO_CONTENT_BORDER_KEY to Boolean.TRUE; */ private Boolean noContentBorder; /** * Describes if we paint tabs in an embedded style that is with * less decoration; this is false by default. * You can enable the embedded tabs style by setting the client property * Options.EMBEDDED_TABS_KEY to Boolean.TRUE. */ private Boolean embeddedTabs; /** * Creates and answers the {@code WindowsTabbedPaneUI}. * * @see javax.swing.plaf.ComponentUI#createUI(JComponent) */ public static ComponentUI createUI(JComponent x) { return new WindowsTabbedPaneUI(); } /** * Installs the UI. * * @see javax.swing.plaf.ComponentUI#installUI(JComponent) */ @Override public void installUI(JComponent c) { super.installUI(c); embeddedTabs = (Boolean) c.getClientProperty(Options.EMBEDDED_TABS_KEY); noContentBorder = (Boolean) c.getClientProperty(Options.NO_CONTENT_BORDER_KEY); } /** * Checks and answers if content border will be painted. * This is controlled by the component's client property * Options.NO_CONTENT_BORDER or Options.EMBEDDED. */ private boolean hasNoContentBorder() { return hasEmbeddedTabs() || Boolean.TRUE.equals(noContentBorder); } /** * Checks and answers if tabs are painted with minimal decoration. */ private boolean hasEmbeddedTabs() { return embeddedTabs == null ? false : embeddedTabs.booleanValue(); } /** * Creates and answer a handler that listens to property changes. * Unlike the superclass BasicTabbedPane, the PlasticTabbedPaneUI * uses an extended Handler. */ @Override protected PropertyChangeListener createPropertyChangeListener() { return new MyPropertyChangeHandler(); } private void doLayout() { tabPane.revalidate(); tabPane.repaint(); } /** * Updates the embedded tabs property. This message is sent by * my PropertyChangeHandler whenever the embedded tabs property changes. */ private void embeddedTabsPropertyChanged(Boolean newValue) { embeddedTabs = newValue; doLayout(); } /** * Updates the no content border property. This message is sent * by my PropertyChangeHandler whenever the noContentBorder * property changes. */ private void noContentBorderPropertyChanged(Boolean newValue) { noContentBorder = newValue; doLayout(); } /** * Answers the icon for the tab with the specified index. * In case, we have globally switched of the use tab icons, * we answer {@code null} if and only if we have a title. */ @Override protected Icon getIconForTab(int tabIndex) { String title = tabPane.getTitleAt(tabIndex); boolean hasTitle = title != null && title.length() > 0; return !isTabIconsEnabled && hasTitle ? null : super.getIconForTab(tabIndex); } @Override protected Insets getContentBorderInsets(int tabPlacement) { if (!hasNoContentBorder()) { if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) { switch (tabPlacement) { case RIGHT : return CONTENT_BORDER_EAST_INSETS; case LEFT : return CONTENT_BORDER_WEST_INSETS; case TOP : return CONTENT_BORDER_NORTH_INSETS; case BOTTOM : default : return CONTENT_BORDER_SOUTH_INSETS; } } return contentBorderInsets; } else if (hasEmbeddedTabs()) { return EMPTY_INSETS; } else { switch (tabPlacement) { case RIGHT : return NO_CONTENT_BORDER_EAST_INSETS; case LEFT : return NO_CONTENT_BORDER_WEST_INSETS; case TOP : return NO_CONTENT_BORDER_NORTH_INSETS; case BOTTOM : default : return NO_CONTENT_BORDER_SOUTH_INSETS; } } } @Override protected int getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected) { switch (tabPlacement) { case RIGHT : return isSelected ? 2 : 0; case LEFT : return isSelected ? -2 : 0; case TOP : case BOTTOM : default : return 0; } } @Override protected int getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected) { return 0; } @Override protected Insets getSelectedTabPadInsets(int tabPlacement) { if (hasEmbeddedTabs()) { return EMPTY_INSETS; } else if (hasNoContentBorder()) { int inset = SystemUtils.IS_LAF_WINDOWS_XP_ENABLED ? 1 : 0; switch (tabPlacement) { case LEFT: return new Insets(1, 2, 1, inset); case RIGHT: return new Insets(1, inset, 1, 2); case TOP: return new Insets(2, 2, inset, 2); case BOTTOM: return new Insets(inset, 2, 2, 2); default: return EMPTY_INSETS; } } else { Insets superInsets = super.getSelectedTabPadInsets(tabPlacement); int equalized = superInsets.left + superInsets.right / 2; superInsets.left = superInsets.right = equalized; return superInsets; } } @Override protected Insets getTabAreaInsets(int tabPlacement) { return hasEmbeddedTabs() ? /*new Insets(1,1,1,1)*/EMPTY_INSETS : super.getTabAreaInsets(tabPlacement); } /** * Paints the top edge of the pane's content border. */ @Override protected void paintContentBorderTopEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h) { if (hasNoContentBorder() && tabPlacement != TOP) { return; } Rectangle selRect = selectedIndex < 0 ? null : getTabBounds(selectedIndex, calcRect); if (tabPlacement != TOP || selectedIndex < 0 || selRect.y + selRect.height + 1 < y || selRect.x < x || selRect.x > x + w) { // no special case, do the super thing super.paintContentBorderTopEdge(g, tabPlacement, selectedIndex, x, y, w, h); } else { g.setColor(lightHighlight); g.fillRect(x, y, selRect.x + 1-x, 1); g.fillRect(selRect.x + selRect.width, y, x+w-2 -selRect.x-selRect.width, 1); } } /** * Paints the bottom edge of the pane's content border. */ @Override protected void paintContentBorderBottomEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h) { if (!hasNoContentBorder()) { Rectangle selRect = selectedIndex < 0 ? null : getTabBounds(selectedIndex, calcRect); if (tabPlacement != BOTTOM || selectedIndex < 0 || selRect.y - 1 > h + y || selRect.x < x || selRect.x > x + w) { // no special case, do the super thing super.paintContentBorderBottomEdge(g, tabPlacement, selectedIndex, x, y, w, h); } else { g.setColor(lightHighlight); g.fillRect(x,y+h-1,1,1); g.setColor(shadow); g.fillRect(x+1, y+h-2, selRect.x - 1-x, 1); g.fillRect(selRect.x + selRect.width, y+h-2, x+w-2-selRect.x-selRect.width, 1); g.setColor(darkShadow); g.fillRect(x, y+h-1, selRect.x - x, 1); g.fillRect(selRect.x + selRect.width -1, y+h-1, x+w-selRect.x-selRect.width, 1); } } else if (!(tabPlacement == BOTTOM)) { // no content border really means only one content border: // the one edge that touches the tabs } else { g.setColor(shadow); g.fillRect(x,y+h,w,1); } } /** * Paints the left Edge of the pane's content border. */ @Override protected void paintContentBorderLeftEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h) { if (!hasNoContentBorder()) { Rectangle selRect = selectedIndex < 0 ? null : getTabBounds(selectedIndex, calcRect); if (tabPlacement != LEFT || selectedIndex < 0 || selRect.x + selRect.width + 1 < x || selRect.y < y || selRect.y > y + h) { // no special case, do the super thing super.paintContentBorderLeftEdge(g, tabPlacement, selectedIndex, x, y, w, h); } else { g.setColor(lightHighlight); g.fillRect(x, y, 1, selRect.y + 1 - y); g.fillRect(x, selRect.y + selRect.height, 1, y+h-1-selRect.y-selRect.height); } } else if (!(tabPlacement == LEFT)) { // no content border really means only one content border: // the one edge that touches the tabs } else { g.setColor(shadow); g.fillRect(x,y,1,h); } } /** * Paints the right Edge of the pane's content border. */ @Override protected void paintContentBorderRightEdge(Graphics g, int tabPlacement, int selectedIndex, int x, int y, int w, int h) { if (!hasNoContentBorder()) { Rectangle selRect = selectedIndex < 0 ? null : getTabBounds(selectedIndex, calcRect); if (tabPlacement != RIGHT || selectedIndex < 0 || selRect.x - 1 > x+w || selRect.y < y || selRect.y > y + h) { // no special case, do the super thing super.paintContentBorderRightEdge(g, tabPlacement, selectedIndex, x, y, w, h); } else { g.setColor(lightHighlight); g.fillRect(x+w-1, y,1,1); g.setColor(shadow); g.fillRect(x+w-2, y+1, 1, selRect.y - 1-y); g.fillRect(x+w-2, selRect.y + selRect.height, 1, y+h-1-selRect.y- selRect.height); g.setColor(darkShadow); g.fillRect(x+w-1, y, 1, selRect.y - y); g.fillRect(x+w-1, selRect.y + selRect.height-1, 1, y+h-selRect.y-selRect.height); } } else if (!(tabPlacement == RIGHT)) { // no content border really means only one content border: // the one edge that touches the tabs } else { g.setColor(shadow); g.fillRect(x+w,y,1,h); } } /** * Paints the border for a single tab; it does not paint the tab's background. */ @Override protected void paintTabBorder( Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected) { if (!hasEmbeddedTabs()) { super.paintTabBorder(g, tabPlacement, tabIndex, x, y, w, h, isSelected); return; } g.translate(x - 1, y - 1); int w1, w2, w3; int h1, h2, h3; switch (tabPlacement) { case TOP : w1 = 1; w2 = w - 2; w3 = 1; h1 = 1; h2 = h - 1; h3 = 0; break; case BOTTOM : w1 = 1; w2 = w - 2; w3 = 1; h1 = 0; h2 = h - 1; h3 = 1; break; case LEFT : w1 = 1; w2 = w - 1; w3 = 0; h1 = 1; h2 = h - 3; h3 = 1; break; case RIGHT : default : w1 = 0; w2 = w - 1; w3 = 1; h1 = 1; h2 = h - 3; h3 = 1; } if (isSelected) { g.setColor(lightHighlight); g.drawRect(w1, h1, w1 + w2 + w3, h1 + h2 + h3); g.setColor(shadow); g.fillRect(1 + w1, 0, w2, h1); g.fillRect(0, 1 + h1, w1, h2); g.fillRect(2 * w1 + w2 + 2 * w3, 1 + h1, w3, h2); g.fillRect(1 + w1, 2 * h1 + h2 + 2 * h3, w2, h3); g.fillRect(1, 1, w1, h1); g.fillRect(2 * w1 + w2 + w3, 1, w3, h1); g.fillRect(1, 2 * h1 + h2 + h3, w1, h3); g.fillRect(2 * w1 + w2 + w3, 2 * h1 + h2 + h3, w3, h3); } else { g.setColor(shadow); g.fillRect(w1 + w2 + 2 * w3, h3 * h2 /2, w3, h2* 2 /3); g.fillRect(w3*w2 /2, h1 + h2 + 2 * h3, w2/2 +2, h3); } g.translate(-x + 1, -y + 1); } @Override protected void paintFocusIndicator( Graphics g, int tabPlacement, Rectangle[] rectangles, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { if (!hasEmbeddedTabs()) { super.paintFocusIndicator(g, tabPlacement, rectangles, tabIndex, iconRect, textRect, isSelected); return; } if (tabPane.hasFocus() && isSelected) { g.setColor(focus); BasicGraphicsUtils.drawDashedRect(g, textRect.x - 2, textRect.y, textRect.width + 3, textRect.height); } } @Override protected boolean shouldRotateTabRuns(int tabPlacement) { return !hasEmbeddedTabs(); } /** * Copied here from super(super)class to avoid labels being centered on * vertical tab runs if they consist of icon and text. */ @Override protected void layoutLabel( int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected) { textRect.x = textRect.y = iconRect.x = iconRect.y = 0; //fix of issue #4 View v = getTextViewForTab(tabIndex); if (v != null) { tabPane.putClientProperty("html", v); } int xNudge = getTabLabelShiftX(tabPlacement, tabIndex, isSelected); int yNudge = getTabLabelShiftY(tabPlacement, tabIndex, isSelected); if ((tabPlacement == RIGHT || tabPlacement == LEFT) && icon != null && title != null && !title.equals("")) { /* vertical tab runs look ugly if icons and text are centered */ SwingUtilities.layoutCompoundLabel( tabPane, metrics, title, icon, SwingConstants.CENTER, SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.TRAILING, tabRect, iconRect, textRect, textIconGap); xNudge += 4; } else { /* original superclass behavior */ SwingUtilities.layoutCompoundLabel( tabPane, metrics, title, icon, SwingConstants.CENTER, SwingConstants.CENTER, SwingConstants.CENTER, SwingConstants.TRAILING, tabRect, iconRect, textRect, textIconGap); } //fix of issue #4 tabPane.putClientProperty("html", null); iconRect.x += xNudge; iconRect.y += yNudge; textRect.x += xNudge; textRect.y += yNudge; } /** * Catches and handles property change events. In addition to the super * class behavior we listen to changes of the ancestor, tab placement, * and JGoodies options for content border, and embedded tabs. */ private final class MyPropertyChangeHandler extends BasicTabbedPaneUI.PropertyChangeHandler { @Override public void propertyChange(PropertyChangeEvent e) { super.propertyChange(e); String pName = e.getPropertyName(); if (null == pName) { return; } if (pName.equals(Options.EMBEDDED_TABS_KEY)) { embeddedTabsPropertyChanged((Boolean)e.getNewValue()); return; } if (pName.equals(Options.NO_CONTENT_BORDER_KEY)) { noContentBorderPropertyChanged((Boolean)e.getNewValue()); return; } } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsXPTableHeaderUI.java0000644000175000017500000002016711731047240030143 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Component; import java.awt.Graphics; import java.awt.Point; import java.awt.Rectangle; import javax.swing.JComponent; import javax.swing.JTable; import javax.swing.plaf.ComponentUI; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import com.sun.java.swing.plaf.windows.WindowsTableHeaderUI; /** * The JGoodies Windows L&F implementation of {@code TableHeaderUI}. * A Windows table header that honors the XP header style even if the user * uses custom non-opaque renderers. The renderers should be a subclass of * {@code JComponent} because we need to replace the border by the one * specified in the XP style.

* * Thanks to Andrej Golovnin for his feedback and suggestions. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public final class WindowsXPTableHeaderUI extends WindowsTableHeaderUI { private TableCellRenderer xpRenderer; public static ComponentUI createUI(JComponent h) { return new WindowsXPTableHeaderUI(); } @Override public void installUI(JComponent c) { super.installUI(c); xpRenderer = header.getDefaultRenderer(); } @Override public void uninstallUI(JComponent c) { xpRenderer = null; super.uninstallUI(c); } @Override public void paint(Graphics g, JComponent c) { TableColumnModel cm = header.getColumnModel(); if (cm.getColumnCount() <= 0) { return; } boolean ltr = header.getComponentOrientation().isLeftToRight(); Rectangle clip = g.getClipBounds(); Point left = clip.getLocation(); Point right = new Point(clip.x + clip.width - 1, clip.y); int cMin = header.columnAtPoint(ltr ? left : right); int cMax = header.columnAtPoint(ltr ? right : left); // This should never happen. if (cMin == -1) { cMin = 0; } // If the table does not have enough columns to fill the view we'll get // -1. // Replace this with the index of the last column. if (cMax == -1) { cMax = cm.getColumnCount() - 1; } TableColumn draggedColumn = header.getDraggedColumn(); int columnWidth; Rectangle cellRect = header.getHeaderRect(cMin); TableColumn aColumn; if (ltr) { for (int column = cMin; column <= cMax; column++) { aColumn = cm.getColumn(column); columnWidth = aColumn.getWidth(); cellRect.width = columnWidth; if (aColumn != draggedColumn) { paintCell(g, cellRect, column); } cellRect.x += columnWidth; } } else { for (int column = cMax; column >= cMin; column--) { aColumn = cm.getColumn(column); columnWidth = aColumn.getWidth(); cellRect.width = columnWidth; if (aColumn != draggedColumn) { paintCell(g, cellRect, column); } cellRect.x += columnWidth; } } // Paint the dragged column if we are dragging. if (draggedColumn != null) { int draggedColumnIndex = viewIndexForColumn(draggedColumn); Rectangle draggedCellRect = header .getHeaderRect(draggedColumnIndex); // Draw a gray well in place of the moving column. g.setColor(header.getParent().getBackground()); g.fillRect(draggedCellRect.x, draggedCellRect.y, draggedCellRect.width, draggedCellRect.height); draggedCellRect.x += header.getDraggedDistance(); // Fill the background. g.setColor(header.getBackground()); g.fillRect(draggedCellRect.x, draggedCellRect.y, draggedCellRect.width, draggedCellRect.height); paintCell(g, draggedCellRect, draggedColumnIndex); } // Remove all components in the rendererPane. rendererPane.removeAll(); } private void paintCell(Graphics g, Rectangle cellRect, int columnIndex) { TableColumn aColumn = header.getColumnModel().getColumn(columnIndex); TableCellRenderer renderer = aColumn.getHeaderRenderer(); if (renderer == null) { renderer = header.getDefaultRenderer(); } JTable table = header.getTable(); Component background = xpRenderer.getTableCellRendererComponent(table, null, false, false, -1, columnIndex); Component c = renderer.getTableCellRendererComponent(table, aColumn.getHeaderValue(), false, false, -1, columnIndex); if (c != background) { // The DefaultTableCellRenderer is used in the most cases as // the base class for all header renderers. And due to // the optimizations in its #isOpaque method, we have to add // the component to the renderer pane to determine its // non-opaqueness. rendererPane.add(c); if (!c.isOpaque()) { rendererPane.paintComponent(g, background, header, cellRect.x, cellRect.y, cellRect.width, cellRect.height, true); // All custom header renderers will use TableHeader.cellBorder // returned by UIManager#getBorder. But this one does not // comply with the Windows XP style. It is the one used by // Windows Classis L&F. So replace the border of the custom // renderers component by the one which comply with XP style. if (c instanceof JComponent && background instanceof JComponent) { ((JComponent) c).setBorder( ((JComponent) background).getBorder()); } } } rendererPane.paintComponent(g, c, header, cellRect.x, cellRect.y, cellRect.width, cellRect.height, true); } private int viewIndexForColumn(TableColumn aColumn) { TableColumnModel cm = header.getColumnModel(); for (int column = cm.getColumnCount() - 1; column >= 0; column--) { if (cm.getColumn(column) == aColumn) { return column; } } return -1; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsScrollBarUI.java0000644000175000017500000000477311731047240027423 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; /** * The JGoodies Windows L&F implementation of* {@code ScrollBarUI}. * It differs from Sun's Windows Look in that it paints black button triangles * and that it honors the {@code ScrollBar.width} property to determine * the preferred size. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class WindowsScrollBarUI extends com.sun.java.swing.plaf.windows.WindowsScrollBarUI { public static ComponentUI createUI(JComponent b) { return new WindowsScrollBarUI(); } @Override protected JButton createDecreaseButton(int orientation) { return new WindowsArrowButton(orientation); } @Override protected JButton createIncreaseButton(int orientation) { return createDecreaseButton(orientation); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsComboBoxUI.java0000644000175000017500000005626611731047240027254 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Insets; import java.awt.LayoutManager; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.ComboBoxEditor; import javax.swing.DefaultListCellRenderer; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.JTextField; import javax.swing.ListCellRenderer; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicComboBoxRenderer; import javax.swing.plaf.basic.BasicComboBoxUI; import javax.swing.plaf.basic.BasicComboPopup; import javax.swing.plaf.basic.ComboPopup; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.Options; import com.sun.java.swing.plaf.windows.WindowsTextFieldUI; /** * The JGoodies Windows Look&Feel implementation of * {@link javax.swing.plaf.ComboBoxUI}. * Corrects the editor insets for editable combo boxes * as well as the render insets for non-editable combos. And it has * the same height as text fields - unless you change the renderer.

* * Also, this class offers to use the combo's popup prototype display value * to compute the popup menu width. This is an optional feature of * the JGoodies Windows L&f implemented via a client property key. * * @author Karsten Lentzsch * @version $Revision: 1.26 $ * * @see Options#COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY */ public class WindowsComboBoxUI extends com.sun.java.swing.plaf.windows.WindowsComboBoxUI { private static final String CELL_EDITOR_KEY = "JComboBox.isTableCellEditor"; /** * Used to determine the minimum height of a text field, * which in turn is used to answer the combobox's minimum height. */ private static final JTextField PHANTOM = new JTextField("Phantom"); private static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0); private static final Border EMPTY_BORDER = new EmptyBorder(EMPTY_INSETS); private boolean tableCellEditor; private PropertyChangeListener propertyChangeListener; // ************************************************************************ public static ComponentUI createUI(JComponent b) { ensurePhantomHasWindowsUI(); return new WindowsComboBoxUI(); } /** * Ensures that the phantom text field has a Windows text field UI. */ private static void ensurePhantomHasWindowsUI() { if (!(PHANTOM.getUI() instanceof WindowsTextFieldUI)) { PHANTOM.updateUI(); } } // ************************************************************************ @Override public void installUI(JComponent c) { super.installUI(c); tableCellEditor = isTableCellEditor(); } @Override protected void installListeners() { super.installListeners(); propertyChangeListener = new TableCellEditorPropertyChangeHandler(); comboBox.addPropertyChangeListener(CELL_EDITOR_KEY, propertyChangeListener); } @Override protected void uninstallListeners() { super.uninstallListeners(); comboBox.removePropertyChangeListener(CELL_EDITOR_KEY, propertyChangeListener); propertyChangeListener = null; } /** * Creates the arrow button that is to be used in the combo box.

* * Overridden to paint black triangles. */ @Override protected JButton createArrowButton() { return SystemUtils.IS_LAF_WINDOWS_XP_ENABLED ? super.createArrowButton() : new WindowsArrowButton(SwingConstants.SOUTH); } /** * Creates the editor that is to be used in editable combo boxes. * This method only gets called if a custom editor has not already * been installed in the JComboBox. */ @Override protected ComboBoxEditor createEditor() { return new com.jgoodies.looks.windows.WindowsComboBoxEditor.UIResource(tableCellEditor); } /** * Creates a layout manager for managing the components which * make up the combo box.

* * Overriden to use a layout that has a fixed width arrow button. * * @return an instance of a layout manager */ @Override protected LayoutManager createLayoutManager() { return new WindowsComboBoxLayoutManager(); } @Override protected void configureEditor() { super.configureEditor(); if (!comboBox.isEnabled()) { editor.setBackground(UIManager.getColor("ComboBox.disabledBackground")); } } /** * Creates a ComboPopup that honors the optional combo popup display value * that is used to compute the popup menu width. */ @Override protected ComboPopup createPopup() { return new WindowsComboPopup(comboBox); } /** * Creates the default renderer that will be used in a non-editiable combo * box. A default renderer will used only if a renderer has not been * explicitly set with {@code setRenderer}.

* * This method differs from the superclass implementation in that * it uses an empty border with the default left and right text insets, * the same as used by a combo box editor. * * @return a {@code ListCellRender} used for the combo box * @see javax.swing.JComboBox#setRenderer */ @Override protected ListCellRenderer createRenderer() { if (tableCellEditor) { return super.createRenderer(); } BasicComboBoxRenderer renderer = new BasicComboBoxRenderer.UIResource(); renderer.setBorder(UIManager.getBorder("ComboBox.rendererBorder")); return renderer; } /** * The minumum size is the size of the display area plus insets plus the button. */ @Override public Dimension getMinimumSize(JComponent c) { if (!isMinimumSizeDirty) { return new Dimension(cachedMinimumSize); } Dimension size = getDisplaySize(); Insets insets = getInsets(); size.height += insets.top + insets.bottom; int buttonWidth = getEditableButtonWidth(); size.width += insets.left + insets.right + buttonWidth; // The combo editor benefits from extra space for the caret. // To make editable and non-editable equally wide, // we always add 1 pixel. size.width += 1; // Honor corrections made in #paintCurrentValue ListCellRenderer renderer = comboBox.getRenderer(); if (renderer instanceof JComponent) { JComponent component = (JComponent) renderer; Insets rendererInsets = component.getInsets(); Insets editorInsets = UIManager.getInsets("ComboBox.editorInsets"); int offsetLeft = Math.max(0, editorInsets.left - rendererInsets.left); int offsetRight = Math.max(0, editorInsets.right - rendererInsets.right); // int offsetTop = Math.max(0, editorInsets.top - rendererInsets.top); // int offsetBottom = Math.max(0, editorInsets.bottom - rendererInsets.bottom); size.width += offsetLeft + offsetRight; //size.height += offsetTop + offsetBottom; } // The height is oriented on the JTextField height Dimension textFieldSize = PHANTOM.getMinimumSize(); size.height = SystemUtils.IS_OS_WINDOWS_6_OR_LATER && !SystemUtils.IS_LAF_WINDOWS_XP_ENABLED ? textFieldSize.height : Math.max(textFieldSize.height, size.height); cachedMinimumSize.setSize(size.width, size.height); isMinimumSizeDirty = false; return new Dimension(size); } /** * Delegates to #getMinimumSize(Component). * Overridden to return the same result in JDK 1.5 as in JDK 1.4. */ @Override public Dimension getPreferredSize(JComponent c) { return getMinimumSize(c); } /** * Paints the currently selected item. */ @Override public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus) { ListCellRenderer renderer = comboBox.getRenderer(); Component c; boolean isVistaReadOnlyCombo = isVistaXPStyleReadOnlyCombo(); if (hasFocus && !isPopupVisible(comboBox)) { c = renderer.getListCellRendererComponent(listBox, comboBox.getSelectedItem(), -1, true, false); } else { c = renderer.getListCellRendererComponent(listBox, comboBox.getSelectedItem(), -1, false, false ); c.setBackground(UIManager.getColor("ComboBox.background")); } Border oldBorder = null; Rectangle originalBounds = new Rectangle(bounds); if (c instanceof JComponent && !tableCellEditor) { JComponent component = (JComponent) c; if (isRendererBorderRemovable(component)) { oldBorder = component.getBorder(); component.setBorder(EMPTY_BORDER); //new WindowsBorders.DashedBorder(c.getForeground(), 1)); } Insets rendererInsets = component.getInsets(); Insets editorInsets = UIManager.getInsets("ComboBox.editorInsets"); int offsetLeft = Math.max(0, editorInsets.left - rendererInsets.left); int offsetRight = Math.max(0, editorInsets.right - rendererInsets.right); int offsetTop = Math.max(0, editorInsets.top - rendererInsets.top); int offsetBottom = Math.max(0, editorInsets.bottom - rendererInsets.bottom); bounds.x += offsetLeft; bounds.y += offsetTop; bounds.width -= offsetLeft + offsetRight - 1; bounds.height -= offsetTop + offsetBottom; } c.setFont(comboBox.getFont()); if (hasFocus && !isPopupVisible(comboBox) && !isVistaReadOnlyCombo) { c.setForeground(listBox.getSelectionForeground()); c.setBackground(listBox.getSelectionBackground()); } else { if (comboBox.isEnabled()) { c.setForeground(comboBox.getForeground()); c.setBackground(comboBox.getBackground()); } else { c.setForeground(UIManager.getColor("ComboBox.disabledForeground")); c.setBackground(UIManager.getColor("ComboBox.disabledBackground")); } } // Fix for 4238829: should lay out the JPanel. boolean shouldValidate = c instanceof JPanel; Boolean oldOpaque = null; if (isVistaReadOnlyCombo && c instanceof JComponent && !(c instanceof DefaultListCellRenderer)) { oldOpaque = Boolean.valueOf(c.isOpaque()); ((JComponent) c).setOpaque(false); } currentValuePane.paintComponent(g, c, comboBox, bounds.x, bounds.y, bounds.width, bounds.height, shouldValidate); if (hasFocus) { Color oldColor = g.getColor(); g.setColor(comboBox.getForeground()); if (isVistaReadOnlyCombo) { int width = originalBounds.width - 2; if (width % 2 == 0) { width += 1; } WindowsUtils.drawRoundedDashedRect(g, originalBounds.x+1, originalBounds.y+1, width, originalBounds.height-2); } /*else { BasicGraphicsUtils.drawDashedRect(g, bounds.x, bounds.y, bounds.width, bounds.height); }*/ g.setColor(oldColor); } if (oldOpaque != null) { ((JComponent) c).setOpaque(oldOpaque.booleanValue()); } if (oldBorder != null) { ((JComponent) c).setBorder(oldBorder); } } /** * Checks and answer whether the border of the given renderer component * can be removed temporarily, so the combo's selection background will * be consistent with the default renderer and native appearance. * This test is invoked from {@code #paintCurrentValue}.

* * It is safe to remove an EmptyBorder if the component doesn't override * {@code #update}, {@code #paint} and {@code #paintBorder}. * Since we know the default renderer, we can remove its border.

* * Custom renderers may set a hint to make their border removable. * To do so, set the client property "isBorderRemovable" * to {@code Boolean.TRUE}. If this client property is set, * its value will be returned. If it is not set, {@code true} is returned * if and only if the component's border is an EmptyBorder. * * @param rendererComponent the renderer component to check * @return true if the component's border can be removed, false if not * @see #paintCurrentValue(Graphics, Rectangle, boolean) */ protected boolean isRendererBorderRemovable(JComponent rendererComponent) { if (rendererComponent instanceof BasicComboBoxRenderer.UIResource) { return true; } Object hint = rendererComponent.getClientProperty(Options.COMBO_RENDERER_IS_BORDER_REMOVABLE); if (hint != null) { return Boolean.TRUE.equals(hint); } Border border = rendererComponent.getBorder(); return border instanceof EmptyBorder; } private boolean isVistaXPStyleReadOnlyCombo() { return SystemUtils.IS_OS_WINDOWS_6_OR_LATER && SystemUtils.IS_LAF_WINDOWS_XP_ENABLED && !comboBox.isEditable(); } /** * Returns the area that is reserved for drawing the currently selected item. */ @Override protected Rectangle rectangleForCurrentValue() { int width = comboBox.getWidth(); int height = comboBox.getHeight(); Insets insets = getInsets(); int buttonWidth = getEditableButtonWidth(); if (arrowButton != null) { buttonWidth = arrowButton.getWidth(); } if (comboBox.getComponentOrientation().isLeftToRight()) { return new Rectangle( insets.left, insets.top, width - (insets.left + insets.right + buttonWidth), height - (insets.top + insets.bottom)); } return new Rectangle( insets.left + buttonWidth, insets.top , width - (insets.left + insets.right + buttonWidth), height - (insets.top + insets.bottom)); } // Helper Code ************************************************************ /** * Computes and returns the width of the arrow button in editable state. * * @return the width of the arrow button in editable state */ private static int getEditableButtonWidth() { return UIManager.getInt("ScrollBar.width"); } /** * Checks and answers if this UI's combo has a client property * that indicates that the combo is used as a table cell editor. * * @return {@code true} if the table cell editor client property * is set to {@code Boolean.TRUE}, {@code false} otherwise */ private boolean isTableCellEditor() { return Boolean.TRUE.equals(comboBox.getClientProperty(CELL_EDITOR_KEY)); } // Collaborator Classes *************************************************** /** * This layout manager handles the 'standard' layout of combo boxes. * It puts the arrow button to the right and the editor to the left. * If there is no editor it still keeps the arrow button to the right. * * Overriden to use a fixed arrow button width. */ private final class WindowsComboBoxLayoutManager extends BasicComboBoxUI.ComboBoxLayoutManager { @Override public void layoutContainer(Container parent) { JComboBox cb = (JComboBox) parent; int width = cb.getWidth(); int height = cb.getHeight(); Insets insets = getInsets(); int buttonWidth = getEditableButtonWidth(); int buttonHeight = height - (insets.top + insets.bottom); if (arrowButton != null) { if (cb.getComponentOrientation().isLeftToRight()) { arrowButton.setBounds( width - (insets.right + buttonWidth), insets.top, buttonWidth, buttonHeight); } else { arrowButton.setBounds( insets.left, insets.top, buttonWidth, buttonHeight); } } if (editor != null) { editor.setBounds(rectangleForCurrentValue()); } } } /** * Differs from the BasicComboPopup in that it uses the standard * popmenu border and honors an optional popup prototype display value. */ private static final class WindowsComboPopup extends BasicComboPopup { private WindowsComboPopup(JComboBox combo) { super(combo); } /** * Calculates the placement and size of the popup portion * of the combo box based on the combo box location and * the enclosing screen bounds. If no transformations are required, * then the returned rectangle will have the same values * as the parameters.

* * In addition to the superclass behavior, this class offers * to use the combo's popup prototype display value to compute * the popup menu width. This is an optional feature of * the JGoodies Windows L&f implemented via a client property key.

* * If a prototype is set, the popup width is the maximum of the * combobox width and the prototype based popup width. * For the latter the renderer is used to render the prototype. * The prototype based popup width is the prototype's width * plus the scrollbar width - if any. The scrollbar test checks * if there are more items than the combo's maximum row count. * * @param px starting x location * @param py starting y location * @param pw starting width * @param ph starting height * @return a rectangle which represents the placement and size of the popup * * @see Options#COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY * @see JComboBox#getMaximumRowCount() */ @Override protected Rectangle computePopupBounds(int px, int py, int pw, int ph) { Rectangle defaultBounds = super.computePopupBounds(px, py, pw, ph); Object popupPrototypeDisplayValue = comboBox.getClientProperty( Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY); if (popupPrototypeDisplayValue == null) { return defaultBounds; } ListCellRenderer renderer = list.getCellRenderer(); Component c = renderer.getListCellRendererComponent( list, popupPrototypeDisplayValue, -1, true, true); pw = c.getPreferredSize().width; boolean hasVerticalScrollBar = comboBox.getItemCount() > comboBox.getMaximumRowCount(); if (hasVerticalScrollBar) { // Add the scrollbar width. JScrollBar verticalBar = scroller.getVerticalScrollBar(); pw += verticalBar.getPreferredSize().width; } Rectangle prototypeBasedBounds = super.computePopupBounds(px, py, pw, ph); return prototypeBasedBounds.width > defaultBounds.width ? prototypeBasedBounds : defaultBounds; } } // Handling Combo Changes ************************************************* /** * Listens to changes in the table cell editor client property * and updates the default editor - if any - to use the correct * insets for this case. */ private final class TableCellEditorPropertyChangeHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { tableCellEditor = isTableCellEditor(); if (comboBox.getRenderer() == null || comboBox.getRenderer() instanceof UIResource) { comboBox.setRenderer(createRenderer()); } if (comboBox.getEditor() == null || comboBox.getEditor() instanceof UIResource) { comboBox.setEditor(createEditor()); } } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsScrollPaneUI.java0000644000175000017500000000762211731047240027576 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.JScrollPane; import javax.swing.LookAndFeel; import javax.swing.plaf.ComponentUI; import com.jgoodies.looks.Options; /** * The JGoodies Windows L&F implementation of {@code ScrollPaneUI}. * Installs an etched border if the client property * {@code Options.IS_ETCHED_KEY} is set. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see com.jgoodies.looks.Options#IS_ETCHED_KEY */ public final class WindowsScrollPaneUI extends com.sun.java.swing.plaf.windows.WindowsScrollPaneUI { private PropertyChangeListener borderStyleChangeHandler; public static ComponentUI createUI(JComponent b) { return new WindowsScrollPaneUI(); } @Override protected void installDefaults(JScrollPane scrollPane) { super.installDefaults(scrollPane); installEtchedBorder(scrollPane); } private static void installEtchedBorder(JScrollPane scrollPane) { Object value = scrollPane.getClientProperty(Options.IS_ETCHED_KEY); boolean hasEtchedBorder = Boolean.TRUE.equals(value); LookAndFeel.installBorder(scrollPane, hasEtchedBorder ? "ScrollPane.etchedBorder" : "ScrollPane.border"); } // Managing the Etched Property ******************************************* @Override public void installListeners(JScrollPane scrollPane) { super.installListeners(scrollPane); borderStyleChangeHandler = new BorderStyleChangeHandler(); scrollPane.addPropertyChangeListener(Options.IS_ETCHED_KEY, borderStyleChangeHandler); } @Override protected void uninstallListeners(JComponent c) { ((JScrollPane) c).removePropertyChangeListener(Options.IS_ETCHED_KEY, borderStyleChangeHandler); super.uninstallListeners(c); } private class BorderStyleChangeHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { JScrollPane scrollPane = (JScrollPane) evt.getSource(); installEtchedBorder(scrollPane); } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsPasswordFieldUI.java0000644000175000017500000000504411731047240030276 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import javax.swing.JComponent; import javax.swing.JPasswordField; import javax.swing.plaf.ComponentUI; import javax.swing.text.Caret; /** * The JGoodies Windows Look&Feel implementation of a password field UI * delegate. It differs from its superclass in that it utilizes a custom caret. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class WindowsPasswordFieldUI extends com.sun.java.swing.plaf.windows.WindowsPasswordFieldUI { /** * Creates a UI for a {@link JPasswordField}. * * @param c the password field component * @return the UI */ public static ComponentUI createUI(JComponent c) { return new WindowsPasswordFieldUI(); } /** * Creates the caret for a field. * * @return the caret */ @Override protected Caret createCaret() { return new WindowsFieldCaret(); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsUtils.java0000644000175000017500000001616711731047240026402 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Graphics; import javax.swing.UIManager; /** * Drawing utils. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ final class WindowsUtils { private WindowsUtils() { // Override default constructor; prevents instantiation. } /* static class CheckBoxIcon implements Icon, Serializable, UIResource { final static int csize = 13; private final Color background; private final Color highlight; private final Color shadow; private final Color darkShadow; CheckBoxIcon(Color background, Color highlight, Color shadow, Color darkShadow) { this.background = background; this.highlight = highlight; this.shadow = shadow; this.darkShadow = darkShadow; } public void paintIcon(Component c, Graphics g, int x, int y) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); // outer bevel g.setColor(background); g.fill3DRect(x, y, csize, csize, false); // inner bevel g.setColor(shadow); g.fill3DRect(x + 1, y + 1, csize - 2, csize - 2, false); // inside box if ((model.isPressed() && model.isArmed()) || !model.isEnabled()) { g.setColor(background); } else { g.setColor(highlight); } g.fillRect(x + 2, y + 2, csize - 4, csize - 4); if (model.isEnabled()) { g.setColor(darkShadow); } else { g.setColor(shadow); } // paint check if (model.isSelected()) { g.drawLine(x + 9, y + 3, x + 9, y + 3); g.drawLine(x + 8, y + 4, x + 9, y + 4); g.drawLine(x + 7, y + 5, x + 9, y + 5); g.drawLine(x + 6, y + 6, x + 8, y + 6); g.drawLine(x + 3, y + 7, x + 7, y + 7); g.drawLine(x + 4, y + 8, x + 6, y + 8); g.drawLine(x + 5, y + 9, x + 5, y + 9); g.drawLine(x + 3, y + 5, x + 3, y + 5); g.drawLine(x + 3, y + 6, x + 4, y + 6); } } public int getIconWidth() { return csize; } public int getIconHeight() { return csize; } } static class RadioButtonIcon implements Icon, Serializable, UIResource { private final Color background; private final Color highlight; private final Color shadow; private final Color darkShadow; RadioButtonIcon(Color background, Color highlight, Color shadow, Color darkShadow) { this.background = background; this.highlight = highlight; this.shadow = shadow; this.darkShadow = darkShadow; } public void paintIcon(Component c, Graphics g, int x, int y) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); // fill interior if ((model.isPressed() && model.isArmed()) || !model.isEnabled()) { g.setColor(background); } else { g.setColor(highlight); } g.fillRect(x + 2, y + 2, 8, 8); // outter left arc g.setColor(shadow); g.drawLine(x + 4, y + 0, x + 7, y + 0); g.drawLine(x + 2, y + 1, x + 3, y + 1); g.drawLine(x + 8, y + 1, x + 9, y + 1); g.drawLine(x + 1, y + 2, x + 1, y + 3); g.drawLine(x + 0, y + 4, x + 0, y + 7); g.drawLine(x + 1, y + 8, x + 1, y + 9); // outter right arc g.setColor(highlight); g.drawLine(x + 2, y + 10, x + 3, y + 10); g.drawLine(x + 4, y + 11, x + 7, y + 11); g.drawLine(x + 8, y + 10, x + 9, y + 10); g.drawLine(x + 10, y + 9, x + 10, y + 8); g.drawLine(x + 11, y + 7, x + 11, y + 4); g.drawLine(x + 10, y + 3, x + 10, y + 2); // inner left arc g.setColor(darkShadow); g.drawLine(x + 4, y + 1, x + 7, y + 1); g.drawLine(x + 2, y + 2, x + 3, y + 2); g.drawLine(x + 8, y + 2, x + 9, y + 2); g.drawLine(x + 2, y + 3, x + 2, y + 3); g.drawLine(x + 1, y + 4, x + 1, y + 7); g.drawLine(x + 2, y + 8, x + 2, y + 8); // inner right arc g.setColor(background); g.drawLine(x + 2, y + 9, x + 3, y + 9); g.drawLine(x + 4, y + 10, x + 7, y + 10); g.drawLine(x + 8, y + 9, x + 9, y + 9); g.drawLine(x + 9, y + 8, x + 9, y + 8); g.drawLine(x + 10, y + 7, x + 10, y + 4); g.drawLine(x + 9, y + 3, x + 9, y + 3); // indicate whether selected or not if (model.isSelected()) { g.setColor(darkShadow); g.fillRect(x + 4, y + 5, 4, 2); g.fillRect(x + 5, y + 4, 2, 4); } } public int getIconWidth() { return 13; } public int getIconHeight() { return 13; } } */ public static void drawRoundedDashedRect(Graphics g, int x, int y, int width, int height) { for (int vx = x+1; vx < (x + width); vx += 2) { g.fillRect(vx, y, 1, 1); g.fillRect(vx, y + height-1, 1, 1); } int offset = (width + 1) % 2; for (int vy = y+1; vy < (y + height - offset); vy += 2) { g.fillRect(x, vy, 1, 1); g.fillRect(x + width-1, vy+offset, 1, 1); } } static void drawFlush3DBorder(Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(UIManager.getColor("controlLtHighlight")); g.drawLine(0, 0, w - 2, 0); g.drawLine(0, 0, 0, h - 2); g.setColor(UIManager.getColor("controlShadow")); g.drawLine(w - 1, 0, w - 1, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); g.translate(-x, -y); } static void drawPressed3DBorder(Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(UIManager.getColor("controlShadow")); g.drawLine(0, 0, w - 2, 0); g.drawLine(0, 0, 0, h - 2); g.setColor(UIManager.getColor("controlLtHighlight")); g.drawLine(w - 1, 0, w - 1, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); g.translate(-x, -y); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsXPMenuUI.java0000644000175000017500000001465211731047240026711 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.ButtonModel; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import com.jgoodies.looks.common.MenuItemRenderer; /** * The JGoodies Windows XP look&feel implementation of {@code MenuUI}.

* * It differs from the superclass in that it uses an overhauled menu * rendering an aligmnent system. Furthermore, you can set a client property * Options.NO_ICONS_KEY to indicate that this menu has no icons. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see com.jgoodies.looks.Options */ public final class WindowsXPMenuUI extends com.sun.java.swing.plaf.windows.WindowsMenuUI { private static final String MENU_PROPERTY_PREFIX = "Menu"; private static final String SUBMENU_PROPERTY_PREFIX = "MenuItem"; // May be changed to SUBMENU_PROPERTY_PREFIX later private String propertyPrefix = MENU_PROPERTY_PREFIX; private MenuItemRenderer renderer; public static ComponentUI createUI(JComponent b) { return new WindowsXPMenuUI(); } // Install and Uninstall ************************************************** @Override protected void installDefaults() { super.installDefaults(); if (arrowIcon == null || arrowIcon instanceof UIResource) { arrowIcon = UIManager.getIcon("Menu.arrowIcon"); } renderer = new MenuItemRenderer( menuItem, false, acceleratorFont, selectionForeground, disabledForeground, acceleratorForeground, acceleratorSelectionForeground); Integer gap = (Integer) UIManager.get(getPropertyPrefix() + ".textIconGap"); defaultTextIconGap = gap != null ? gap.intValue() : 2; } @Override protected void uninstallDefaults() { super.uninstallDefaults(); renderer = null; } @Override protected String getPropertyPrefix() { return propertyPrefix; } @Override protected Dimension getPreferredMenuItemSize( JComponent c, Icon aCheckIcon, Icon anArrowIcon, int textIconGap) { if (isSubMenu(menuItem)) { ensureSubMenuInstalled(); return renderer.getPreferredMenuItemSize( c, aCheckIcon, anArrowIcon, textIconGap); } Dimension size = super.getPreferredMenuItemSize( c, aCheckIcon, anArrowIcon, textIconGap); int width = size.width; int height = size.height; if (height % 2 == 1) { height--; } return new Dimension(width, height); } @Override protected void paintMenuItem( Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap) { if (isSubMenu(menuItem)) { renderer.paintMenuItem( g, c, aCheckIcon, anArrowIcon, background, foreground, textIconGap); } else { super.paintMenuItem( g, c, aCheckIcon, anArrowIcon, background, foreground, textIconGap); } } /** * Checks if we have already detected the correct menu type, * menu in menu bar vs. sub menu; reinstalls if necessary. */ private void ensureSubMenuInstalled() { if (propertyPrefix.equals(SUBMENU_PROPERTY_PREFIX)) { return; } ButtonModel model = menuItem.getModel(); //save values of armed and selected properties. //they will be resetted in #ununinstallDefaults(). boolean oldArmed = model.isArmed(); boolean oldSelected = model.isSelected(); uninstallDefaults(); propertyPrefix = SUBMENU_PROPERTY_PREFIX; installDefaults(); //restore values of armed and selected properties model.setArmed(oldArmed); model.setSelected(oldSelected); } // Helper Code ********************************************************** private static boolean isSubMenu(JMenuItem aMenuItem) { return !((JMenu) aMenuItem).isTopLevelMenu(); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsBorders.java0000644000175000017500000005013611731047240026674 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.*; import javax.swing.border.AbstractBorder; import javax.swing.border.Border; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.plaf.BorderUIResource; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicBorders; import javax.swing.plaf.basic.BasicGraphicsUtils; /** * Consists of static inner classes that define different * {@code Borders} used in the JGoodies Windows look&feel. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ final class WindowsBorders { private WindowsBorders() { // Overrides default constructor; prevents instantiation. } // Accessing and Creating Borders *************************************************** private static Border menuBorder; private static Border xpMenuBorder; private static Border menuItemBorder; private static Border popupMenuBorder; private static Border noMarginPopupMenuBorder; private static Border separatorBorder; private static Border etchedBorder; private static Border menuBarHeaderBorder; private static Border toolBarHeaderBorder; private static Border rolloverButtonBorder; /** * Returns a {@code Border} for a {@code JButton}. */ public static Border getButtonBorder() { UIDefaults table = UIManager.getLookAndFeelDefaults(); Border outerBorder = new ButtonBorder(table.getColor("Button.shadow"), table.getColor("Button.darkShadow"), table .getColor("Button.light"), table .getColor("Button.highlight"), table .getColor("controlText")); Border buttonBorder = new BorderUIResource.CompoundBorderUIResource( outerBorder, new BasicBorders.MarginBorder()); return buttonBorder; } /** * Returns a Border for a JMenu in classic mode. */ static Border getMenuBorder() { if (menuBorder == null) { menuBorder = new BorderUIResource.CompoundBorderUIResource( new MenuBorder(), new BasicBorders.MarginBorder()); } return menuBorder; } /** * Returns a Border for a JMenu in XP mode. */ static Border getXPMenuBorder() { if (xpMenuBorder == null) { xpMenuBorder = new BasicBorders.MarginBorder(); } return xpMenuBorder; } /** * Returns a border instance for a {@code JMenuItem}. */ static Border getMenuItemBorder() { if (menuItemBorder == null) { menuItemBorder = new BorderUIResource(new BasicBorders.MarginBorder()); } return menuItemBorder; } /** * Returns a separator border instance for {@code JMenuBar} or {@code JToolBar}. */ static Border getSeparatorBorder() { if (separatorBorder == null) { separatorBorder = new BorderUIResource.CompoundBorderUIResource( new SeparatorBorder(), new BasicBorders.MarginBorder()); } return separatorBorder; } /** * Returns an etched border instance for {@code JMenuBar} or {@code JToolBar}. */ static Border getEtchedBorder() { if (etchedBorder == null) { etchedBorder = new BorderUIResource.CompoundBorderUIResource( new EtchedBorder(), new BasicBorders.MarginBorder()); } return etchedBorder; } /** * Returns a special border for a {@code JMenuBar} that * is used in a header just above a {@code JToolBar}. */ static Border getMenuBarHeaderBorder() { if (menuBarHeaderBorder == null) { menuBarHeaderBorder = new BorderUIResource.CompoundBorderUIResource( new MenuBarHeaderBorder(), new BasicBorders.MarginBorder()); } return menuBarHeaderBorder; } /** * Returns a border instance for a {@code JPopupMenu}. * * @return the lazily created popup menu border */ static Border getPopupMenuBorder() { if (popupMenuBorder == null) { popupMenuBorder = new PopupMenuBorder(); } return popupMenuBorder; } /** * Returns a no-margin border instance for a {@code JPopupMenu}. * * @return the lazily created no-margin popup menu border */ static Border getNoMarginPopupMenuBorder() { if (noMarginPopupMenuBorder == null) { noMarginPopupMenuBorder = new NoMarginPopupMenuBorder(); } return noMarginPopupMenuBorder; } /** * Returns a special border for a {@code JToolBar} that * is used in a header just below a {@code JMenuBar}. */ static Border getToolBarHeaderBorder() { if (toolBarHeaderBorder == null) { toolBarHeaderBorder = new BorderUIResource.CompoundBorderUIResource( new ToolBarHeaderBorder(), new BasicBorders.MarginBorder()); } return toolBarHeaderBorder; } /** * Returns a border for a rollover {@code AbstractButton}. */ static Border getRolloverButtonBorder() { if (rolloverButtonBorder == null) { rolloverButtonBorder = new CompoundBorder( // No UIResource new RolloverButtonBorder(), new RolloverMarginBorder()); } return rolloverButtonBorder; } // Helper Classes ******************************************************************* // Copied from BasicBorders, has correct black color for the outer default rectangle. private static final class ButtonBorder extends AbstractBorder implements UIResource { private static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0); private final Color shadow; private final Color darkShadow; private final Color highlight; private final Color lightHighlight; private final Color defaultColor; public ButtonBorder(Color shadow, Color darkShadow, Color highlight, Color lightHighlight, Color defaultColor) { this.shadow = shadow; this.darkShadow = darkShadow; this.highlight = highlight; this.lightHighlight = lightHighlight; this.defaultColor = defaultColor; } @Override public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { boolean isPressed = false; boolean isDefault = false; if (c instanceof AbstractButton) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); isPressed = model.isPressed() && model.isArmed(); if (c instanceof JButton) { isDefault = ((JButton) c).isDefaultButton(); } } drawBezel(g, x, y, width, height, isPressed, isDefault, shadow, darkShadow, highlight, lightHighlight, defaultColor); } @Override public Insets getBorderInsets(Component c) { return getBorderInsets(c, EMPTY_INSETS); } @Override public Insets getBorderInsets(Component c, Insets insets) { // leave room for default visual insets.top = 2; insets.left = insets.bottom = insets.right = 3; return insets; } } /** * An abstract superclass for borders. */ private abstract static class AbstractButtonBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton button = (AbstractButton) c; ButtonModel model = button.getModel(); // //System.out.println("Pressed=" + model.isPressed() + "; armed=" + model.isArmed()); //if (!model.isArmed()) return; if (model.isPressed()) { WindowsUtils.drawPressed3DBorder(g, x, y, w, h); } else { WindowsUtils.drawFlush3DBorder(g, x, y, w, h); } } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for {@code Buttons} that have the rollover property enabled. */ private static final class RolloverButtonBorder extends AbstractButtonBorder { @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); if (!model.isEnabled()) { return; } if (!(c instanceof JToggleButton)) { if (model.isRollover()) { super.paintBorder(c, g, x, y, w, h); } return; } if (model.isSelected()) { WindowsUtils.drawPressed3DBorder(g, x, y, w, h); } else if (model.isRollover()) { super.paintBorder(c, g, x, y, w, h); /* if (model.isPressed() && model.isArmed()) { ExtMetalUtils.drawPressed3DBorder(g, x, y, w, h); } else { ExtMetalUtils.drawFlush3DBorder(g, x, y, w, h); }*/ } } } /** * A border which is like a Margin border but it will only honor the margin * if the margin has been explicitly set by the developer. */ private static final class RolloverMarginBorder extends EmptyBorder { private RolloverMarginBorder() { super(1, 1, 1, 1); } @Override public Insets getBorderInsets(Component c) { return getBorderInsets(c, new Insets(0, 0, 0, 0)); } @Override public Insets getBorderInsets(Component c, Insets insets) { Insets margin = null; if (c instanceof AbstractButton) { margin = ((AbstractButton) c).getMargin(); } if (margin == null || margin instanceof UIResource) { // default margin so replace insets.left = left; insets.top = top; insets.right = right; insets.bottom = bottom; } else { // Margin which has been explicitly set by the user. insets.left = margin.left; insets.top = margin.top; insets.right = margin.right; insets.bottom = margin.bottom; } return insets; } } /** * A border that looks like a separator line; used for menu bars and tool bars. */ private static final class SeparatorBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(0, 3, 2, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor( UIManager.getColor("Separator.foreground")); g.drawLine( 0, h - 2, w - 1, h - 2 ); g.setColor( UIManager.getColor("Separator.background")); g.drawLine( 0, h - 1, w - 1, h - 1 ); g.translate(-x, -y); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A thin raised border. */ static final class ThinRaisedBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { WindowsUtils.drawFlush3DBorder(g, x, y, w, h); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A thin lowered border. */ static final class ThinLoweredBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { WindowsUtils.drawPressed3DBorder(g, x, y, w, h); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for menu bars and tool bars in {@code HeaderStyle.SINGLE}. * The bar is wrapped by an inner thin raised border, * which in turn is wrapped by an outer thin lowered border. */ private static final class EtchedBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { WindowsUtils.drawPressed3DBorder(g, x, y, w, h); WindowsUtils.drawFlush3DBorder (g, x + 1, y + 1, w - 2, h - 2); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for menu bars in {@code HeaderStyle.BOTH}. * The menu bar and tool bar are wrapped by a thin raised border, * both together are wrapped by a thin lowered border. */ private static final class MenuBarHeaderBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 1, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { WindowsUtils.drawPressed3DBorder(g, x, y, w, h + 1); WindowsUtils.drawFlush3DBorder (g, x + 1, y + 1, w - 2, h - 1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static final class PopupMenuBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(3, 3, 3, 3); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(UIManager.getColor("controlShadow")); g.drawRect(0, 0, w-1, h-1); g.setColor(UIManager.getColor("MenuItem.background")); g.drawRect(1, 1, w-3, h-3); g.drawRect(2, 2, w-5, h-5); g.translate(-x, -y); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static final class NoMarginPopupMenuBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(UIManager.getColor("controlShadow")); g.drawRect(0, 0, w-1, h-1); // g.setColor(UIManager.getColor("MenuItem.background")); // g.drawRect(1, 1, 0, h-3); g.translate(-x, -y); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for tool bars in {@code HeaderStyle.BOTH}. * The menu bar and tool bar are wrapped by a thin raised border, * both together are wrapped by a thin lowered border. */ private static final class ToolBarHeaderBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { WindowsUtils.drawPressed3DBorder(g, x, y - 1, w, h + 1); WindowsUtils.drawFlush3DBorder (g, x + 1, y, w - 2, h - 1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for menus. */ private static final class MenuBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); //System.out.println("rollover=" + model.isRollover()); //if ((3 < 4) || model.isRollover()) { // && !(model.isPressed() && !model.isArmed())) { if (model.isSelected()) { WindowsUtils.drawPressed3DBorder(g, x, y, w, h); } else if (model.isRollover()) { WindowsUtils.drawFlush3DBorder(g, x, y, w, h); //} } } @Override public Insets getBorderInsets(Component c) { return INSETS; } } // Helper Code ********************************************************************** // Copied from BasicGraphicsUtils, has an additional color for the default rectangle. private static void drawBezel(Graphics g, int x, int y, int w, int h, boolean isPressed, boolean isDefault, Color shadow, Color darkShadow, Color highlight, Color lightHighlight, Color defaultColor) { Color oldColor = g.getColor(); // Make no net change to g g.translate(x, y); if (isPressed && isDefault) { g.setColor(darkShadow); g.drawRect(0, 0, w - 1, h - 1); g.setColor(shadow); g.drawRect(1, 1, w - 3, h - 3); } else if (isPressed) { BasicGraphicsUtils.drawLoweredBezel(g, x, y, w, h, shadow, darkShadow, highlight, lightHighlight); } else if (isDefault) { g.setColor(defaultColor); g.drawRect(0, 0, w-1, h-1); g.setColor(lightHighlight); g.drawLine(1, 1, 1, h-3); g.drawLine(2, 1, w-3, 1); g.setColor(highlight); g.drawLine(2, 2, 2, h-4); g.drawLine(3, 2, w-4, 2); g.setColor(shadow); g.drawLine(2, h-3, w-3, h-3); g.drawLine(w-3, 2, w-3, h-4); g.setColor(darkShadow); g.drawLine(1, h-2, w-2, h-2); g.drawLine(w-2, h-2, w-2, 1); } else { g.setColor(lightHighlight); g.drawLine(0, 0, 0, h-1); g.drawLine(1, 0, w-2, 0); g.setColor(highlight); g.drawLine(1, 1, 1, h-3); g.drawLine(2, 1, w-3, 1); g.setColor(shadow); g.drawLine(1, h-2, w-2, h-2); g.drawLine(w-2, 1, w-2, h-3); g.setColor(darkShadow); g.drawLine(0, h-1, w-1, h-1); g.drawLine(w-1, h-1, w-1, 0); } g.translate(-x, -y); g.setColor(oldColor); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsTextAreaUI.java0000644000175000017500000000765411731047240027256 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.beans.PropertyChangeEvent; import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.text.JTextComponent; /** * The JGoodies Windows L&F implementation of {@code TextAreaUI}. * In addition to its superclass WindowsTextAreaUI, it updates the * background colors using behavior from BasicTextFieldUI. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ public final class WindowsTextAreaUI extends com.sun.java.swing.plaf.windows.WindowsTextAreaUI { /** * Creates a UI for a JTextArea. * * @param c the text area * @return the UI */ public static ComponentUI createUI(JComponent c) { return new WindowsTextAreaUI(); } @Override public void installUI(JComponent c) { super.installUI(c); updateBackground((JTextComponent) c); } /** * This method gets called when a bound property is changed * on the associated JTextComponent. In addition to the superclass * behavior, this UI updates the background if the editable or * enabled property changes. */ @Override protected void propertyChange(PropertyChangeEvent evt) { super.propertyChange(evt); String propertyName = evt.getPropertyName(); if ( "editable".equals(propertyName) || "enabled".equals(propertyName)) { updateBackground((JTextComponent) evt.getSource()); } } private static void updateBackground(JTextComponent c) { Color background = c.getBackground(); if (!(background instanceof UIResource)) { return; } Color newColor = null; if (!c.isEnabled()) { newColor = UIManager.getColor("TextArea.disabledBackground"); } if (newColor == null && !c.isEditable()) { newColor = UIManager.getColor("TextArea.inactiveBackground"); } if (newColor == null) { newColor = UIManager.getColor("TextArea.background"); } if (newColor != null && newColor != background) { c.setBackground(newColor); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsToolBarSeparatorUI.java0000644000175000017500000000672011731047240030755 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.JComponent; import javax.swing.JSeparator; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicToolBarSeparatorUI; /** * A Windows tool bar separator that honors the tool bar's border. * Used in in 1.4.0, 1.4.1 and 1.4.2 with XP turned off. * In addition this class reuses a single UI instance. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class WindowsToolBarSeparatorUI extends BasicToolBarSeparatorUI { /** Shared UI component. */ private static WindowsToolBarSeparatorUI toolBarSeparatorUI; public static ComponentUI createUI(JComponent c) { if (toolBarSeparatorUI == null) { toolBarSeparatorUI = new WindowsToolBarSeparatorUI(); } return toolBarSeparatorUI; } @Override public void paint(Graphics g, JComponent c) { Color temp = g.getColor(); Color shadowColor = UIManager.getColor("ToolBar.shadow"); Color highlightColor = UIManager.getColor("ToolBar.highlight"); Dimension size = c.getSize(); if (((JSeparator) c).getOrientation() == SwingConstants.VERTICAL) { int x = size.width / 2 - 1; g.setColor(shadowColor); g.drawLine(x, 0, x, size.height - 1); g.setColor(highlightColor); g.drawLine(x + 1, 0, x + 1, size.height - 1); } else { int y = size.height / 2 - 1; g.setColor(shadowColor); g.drawLine(0, y, size.width - 1, y); g.setColor(highlightColor); g.drawLine(0, y + 1, size.width - 1, y + 1); } g.setColor(temp); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsFieldCaret.java0000644000175000017500000003345711762220440027304 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Color; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Insets; import java.awt.Rectangle; import java.awt.Shape; import java.awt.event.FocusEvent; import java.awt.event.MouseEvent; import javax.swing.BoundedRangeModel; import javax.swing.JFormattedTextField; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.plaf.TextUI; import javax.swing.plaf.UIResource; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultCaret; import javax.swing.text.DefaultHighlighter; import javax.swing.text.Highlighter; import javax.swing.text.JTextComponent; import javax.swing.text.LayeredHighlighter; import javax.swing.text.Position; import javax.swing.text.View; import com.jgoodies.looks.Options; /** * WindowsFieldCaret has different scrolling behavior than the DefaultCaret. * Also, this caret is visible in non-editable fields, * and the text is selected after a keyboard focus gained event. * For the latter see also issue #4337647 in Sun's bug database. * * @author Karsten Lentzsch * @version $Revision: 1.16 $ * */ final class WindowsFieldCaret extends DefaultCaret implements UIResource { private static final LayeredHighlighter.LayerPainter WindowsPainter = new WindowsHighlightPainter(null); WindowsFieldCaret() { super(); } // Begin of Added Code ---------------------------------------------- private boolean isKeyboardFocusEvent = true; @Override public void focusGained(FocusEvent e) { final JTextComponent c = getComponent(); if (c == null) { return; } if (c.isEnabled()) { setVisible(true); setSelectionVisible(true); } if ( !c.isEnabled() || !isKeyboardFocusEvent || !Options.isSelectOnFocusGainActive(c)) { return; } if (c instanceof JFormattedTextField) { EventQueue.invokeLater(new Runnable() { @Override public void run() { selectAll(); } }); } else { selectAll(); } } private void selectAll() { final JTextComponent c = getComponent(); if (c == null) { return; } boolean backward = Boolean.TRUE.equals(c.getClientProperty(Options.INVERT_SELECTION_CLIENT_KEY)); if (backward) { setDot(c.getDocument().getLength()); moveDot(0); } else { setDot(0); moveDot(c.getDocument().getLength()); } } @Override public void focusLost(FocusEvent e) { super.focusLost(e); if (!e.isTemporary()) { isKeyboardFocusEvent = true; if ( getComponent() != null && Boolean.TRUE.equals(getComponent().getClientProperty(Options.SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY))) { setDot(0); } } } @Override public void mousePressed(MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e) || e.isPopupTrigger()) { isKeyboardFocusEvent = false; } super.mousePressed(e); } @Override public void mouseReleased(MouseEvent e) { super.mouseReleased(e); // super.mousePressed() does not transfer focus on popup clicks. // Windows does. if (e.isPopupTrigger()) { isKeyboardFocusEvent = false; if ( getComponent() != null && getComponent().isEnabled() && getComponent().isRequestFocusEnabled()) { getComponent().requestFocus(); } } } // End of Added Code ------------------------------------------------ /** * Adjusts the visibility of the caret according to * the windows feel which seems to be to move the * caret out into the field by about a quarter of * a field length if not visible. */ @Override protected void adjustVisibility(Rectangle r) { SwingUtilities.invokeLater(new SafeScroller(r)); } /** * Gets the painter for the Highlighter. * * @return the painter */ @Override protected Highlighter.HighlightPainter getSelectionPainter() { return WindowsPainter; } private final class SafeScroller implements Runnable { SafeScroller(Rectangle r) { this.r = r; } @Override public void run() { JTextField field = (JTextField) getComponent(); if (field == null) { return; } TextUI ui = field.getUI(); int dot = getDot(); // PENDING: We need to expose the bias in DefaultCaret. Position.Bias bias = Position.Bias.Forward; Rectangle startRect = null; try { startRect = ui.modelToView(field, dot, bias); } catch (BadLocationException ble) { // Ignore } Insets i = field.getInsets(); BoundedRangeModel vis = field.getHorizontalVisibility(); int x = r.x + vis.getValue() - i.left; int quarterSpan = vis.getExtent() / 4; if (r.x < i.left) { vis.setValue(x - quarterSpan); } else if (r.x + r.width > i.left + vis.getExtent()+1) { vis.setValue(x - 3 * quarterSpan); } // If we scroll, our visual location will have changed, // but we won't have updated our internal location as // the model hasn't changed. This checks for the change, // and if necessary, resets the internal location. if (startRect == null) { return; } try { Rectangle endRect; endRect = ui.modelToView(field, dot, bias); if (endRect != null && !endRect.equals(startRect)){ damage(endRect); } } catch (BadLocationException ble) { // Ignore } } private final Rectangle r; } // Helper Classes ********************************************************* private static final class WindowsHighlightPainter extends DefaultHighlighter.DefaultHighlightPainter { WindowsHighlightPainter(Color c) { super(c); } // --- HighlightPainter methods --------------------------------------- /** * Paints a highlight. * * @param g the graphics context * @param offs0 the starting model offset >= 0 * @param offs1 the ending model offset >= offs1 * @param bounds the bounding box for the highlight * @param c the editor */ @Override public void paint(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c) { Rectangle alloc = bounds.getBounds(); try { // --- determine locations --- TextUI mapper = c.getUI(); Rectangle p0 = mapper.modelToView(c, offs0); Rectangle p1 = mapper.modelToView(c, offs1); // --- render --- Color color = getColor(); if (color == null) { g.setColor(c.getSelectionColor()); } else { g.setColor(color); } boolean firstIsDot = false; boolean secondIsDot = false; if (c.isEditable()) { int dot = c.getCaretPosition(); firstIsDot = offs0 == dot; secondIsDot = offs1 == dot; } if (p0.y == p1.y) { // same line, render a rectangle Rectangle r = p0.union(p1); if (r.width > 0) { if (firstIsDot) { r.x++; r.width--; } else if (secondIsDot) { r.width--; } } g.fillRect(r.x, r.y, r.width, r.height); } else { // different lines int p0ToMarginWidth = alloc.x + alloc.width - p0.x; if (firstIsDot && p0ToMarginWidth > 0) { p0.x++; p0ToMarginWidth--; } g.fillRect(p0.x, p0.y, p0ToMarginWidth, p0.height); if (p0.y + p0.height != p1.y) { g.fillRect(alloc.x, p0.y + p0.height, alloc.width, p1.y - (p0.y + p0.height)); } if (secondIsDot && p1.x > alloc.x) { p1.x--; } g.fillRect(alloc.x, p1.y, p1.x - alloc.x, p1.height); } } catch (BadLocationException e) { // can't render } } // --- LayerPainter methods ---------------------------- /** * Paints a portion of a highlight. * * @param g the graphics context * @param offs0 the starting model offset >= 0 * @param offs1 the ending model offset >= offs1 * @param bounds the bounding box of the view, which is not * necessarily the region to paint. * @param c the editor * @param view View painting for * @return region drawing occured in */ @Override public Shape paintLayer(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c, View view) { Color color = getColor(); if (color == null) { g.setColor(c.getSelectionColor()); } else { g.setColor(color); } boolean firstIsDot = false; boolean secondIsDot = false; if (c.isEditable()) { int dot = c.getCaretPosition(); firstIsDot = offs0 == dot; secondIsDot = offs1 == dot; } if (offs0 == view.getStartOffset() && offs1 == view.getEndOffset()) { // Contained in view, can just use bounds. Rectangle alloc; if (bounds instanceof Rectangle) { alloc = (Rectangle) bounds; } else { alloc = bounds.getBounds(); } if (firstIsDot && alloc.width > 0) { g.fillRect(alloc.x + 1, alloc.y, alloc.width - 1, alloc.height); } else if (secondIsDot && alloc.width > 0) { g.fillRect(alloc.x, alloc.y, alloc.width - 1, alloc.height); } else { g.fillRect(alloc.x, alloc.y, alloc.width, alloc.height); } return alloc; } // Should only render part of View. try { // --- determine locations --- Shape shape = view.modelToView(offs0, Position.Bias.Forward, offs1, Position.Bias.Backward, bounds); Rectangle r = shape instanceof Rectangle ? (Rectangle) shape : shape.getBounds(); if (firstIsDot && r.width > 0) { g.fillRect(r.x + 1, r.y, r.width - 1, r.height); } else if (secondIsDot && r.width > 0) { g.fillRect(r.x, r.y, r.width - 1, r.height); } else { g.fillRect(r.x, r.y, r.width, r.height); } return r; } catch (BadLocationException e) { return null; } } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsOptionPaneUI.java0000644000175000017500000000545311731047240027610 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Container; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicOptionPaneUI; import com.jgoodies.looks.common.ExtButtonAreaLayout; /** * The JGoodies Windows Look&Feel implementation of * {@code OptionPaneUI}. Honors the screen resolution and uses a * minimum button with that complies better with the Windows UI style guide. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class WindowsOptionPaneUI extends BasicOptionPaneUI { public static ComponentUI createUI(JComponent b) { return new WindowsOptionPaneUI(); } /** * Creates and returns a Container containin the buttons. The buttons * are created by calling {@code getButtons}. */ @Override protected Container createButtonArea() { JPanel bottom = new JPanel(new ExtButtonAreaLayout(true, 6)); bottom.setBorder(UIManager.getBorder("OptionPane.buttonAreaBorder")); addButtonComponents(bottom, getButtons(), getInitialValueIndex()); return bottom; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsTextFieldUI.java0000644000175000017500000000555011731047240027422 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Dimension; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.text.Caret; /** * The JGoodies Windows L&F implementation of {@code TextFieldUI}. * In addition to its superclass WindowsTextFieldUI, it uses a caret * that selects all text if the field gains focus after a keyboard * focus traversal. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public final class WindowsTextFieldUI extends com.sun.java.swing.plaf.windows.WindowsTextFieldUI { /** * Creates a UI for a JTextField. * * @param c the text field * @return the UI */ public static ComponentUI createUI(JComponent c) { return new WindowsTextFieldUI(); } /** * Creates the caret for a field. * * @return the caret */ @Override protected Caret createCaret() { return new WindowsFieldCaret(); } /** * The WindowsFieldCaret requires an extra pixel width. */ @Override public Dimension getPreferredSize(JComponent c) { Dimension dim = super.getPreferredSize(c); return new Dimension(dim.width + 1, dim.height); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/windows/WindowsXPToolBarUI.java0000644000175000017500000001174011731047240027342 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.windows; import java.awt.Component; import java.awt.Container; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.plaf.ComponentUI; import com.jgoodies.looks.BorderStyle; import com.jgoodies.looks.HeaderStyle; import com.jgoodies.looks.Options; import com.sun.java.swing.plaf.windows.WindowsToolBarUI; /** * Adds behavior for handling different types of borders. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public final class WindowsXPToolBarUI extends WindowsToolBarUI { private PropertyChangeListener listener; public static ComponentUI createUI(JComponent b) { return new WindowsXPToolBarUI(); } // Handling Special Borders ********************************************* @Override protected void installDefaults() { super.installDefaults(); installSpecialBorder(); } @Override protected void installListeners() { super.installListeners(); listener = createBorderStyleListener(); toolBar.addPropertyChangeListener(listener); } @Override protected void uninstallListeners() { toolBar.removePropertyChangeListener(listener); super.uninstallListeners(); } private PropertyChangeListener createBorderStyleListener() { return new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (prop.equals(Options.HEADER_STYLE_KEY) || prop.equals(WindowsLookAndFeel.BORDER_STYLE_KEY)) { WindowsXPToolBarUI.this.installSpecialBorder(); } } }; } /** * Installs a special border, if either a look-dependent * {@code BorderStyle} or a look-independent {@code HeaderStyle} * has been specified. A look specific BorderStyle shadows * a HeaderStyle.

* * Specifying a HeaderStyle is recommend. */ private void installSpecialBorder() { String suffix; BorderStyle borderStyle = BorderStyle.from(toolBar, WindowsLookAndFeel.BORDER_STYLE_KEY); if (borderStyle == BorderStyle.EMPTY) { suffix = "emptyBorder"; } else if (borderStyle == BorderStyle.SEPARATOR) { suffix = "separatorBorder"; } else if (borderStyle == BorderStyle.ETCHED) { suffix = "etchedBorder"; } else if (HeaderStyle.from(toolBar) == HeaderStyle.BOTH) { suffix = "headerBorder"; } else { suffix = "border"; } LookAndFeel.installBorder(toolBar, "ToolBar." + suffix); } // Handling Rollover Borders ******************************************** @Override protected void setBorderToRollover(Component c) { if (c instanceof AbstractButton) { super.setBorderToRollover(c); } else if (c instanceof Container) { Container cont = (Container) c; for (int i = 0; i < cont.getComponentCount(); i++) { super.setBorderToRollover(cont.getComponent(i)); } } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/MicroLayouts.java0000644000175000017500000004154711731047400024665 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import java.awt.Insets; import javax.swing.plaf.InsetsUIResource; /** * A factory that vends predefined MicroLayout instances. * * @author Karsten Lentzsch * @version $Revision: 1.6 $ * * @see MicroLayout * @see MicroLayoutPolicy * @see MicroLayoutPolicies * * @since 2.1 */ public final class MicroLayouts { private MicroLayouts() { // Override default constructor; prevents instantation. } // Plastic and Plastic3D MicroLayouts ************************************* private static final InsetsUIResource PLASTIC_MENU_ITEM_MARGIN = new InsetsUIResource(3, 0, 3, 0); private static final InsetsUIResource PLASTIC_MENU_MARGIN = new InsetsUIResource(2, 4, 2, 4); private static final InsetsUIResource PLASTIC_CHECK_BOX_MARGIN = new InsetsUIResource(2, 0, 2, 1); public static MicroLayout createPlasticLowResMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 1, 2, 1), // text insets new InsetsUIResource(2, 2, 2, 1), // wrapped text insets new InsetsUIResource(1, 1, 2, 1), // combo box editor insets -1, // combo border size 1 , // combo popup border size new Insets(2, 3, 3, 3), // button border insets getButtonMargin(1, 1), // button margin getButtonMargin(1, 1), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } public static MicroLayout createPlasticHiResMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 1, 2, 1), // text insets new InsetsUIResource(2, 2, 2, 1), // wrapped text insets new InsetsUIResource(1, 1, 2, 1), // combo box editor insets -1, // combo border size 1, // combo popup border size new Insets(1, 3, 1, 3), // button border insets getButtonMargin(2, 3), // button margin getButtonMargin(2, 3), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } public static MicroLayout createPlasticVistaMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 1, 1, 1), // text insets new InsetsUIResource(1, 2, 1, 1), // wrapped text insets new InsetsUIResource(1, 1, 1, 1), // combo box editor insets -1, // combo border size 1, // combo popup border size new Insets(2, 3, 3, 3), // button border insets getButtonMargin(0, 1), // button margin getButtonMargin(0, 1), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } public static MicroLayout createPlasticVistaClassicMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 1, 2, 1), // text insets new InsetsUIResource(2, 2, 2, 1), // wrapped text insets new InsetsUIResource(1, 1, 2, 1), // combo box editor insets -1, // combo border size 1, // combo popup border size new Insets(3, 3, 3, 3), // button border insets getButtonMargin(0, 1), // button margin getButtonMargin(0, 1), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } // PlasticXP MicroLayouts ************************************************* public static MicroLayout createPlasticXPLowResMicroLayout() { return new MicroLayout( new InsetsUIResource(2, 2, 3, 2), // text insets new InsetsUIResource(2, 2, 3, 2), // wrapped text insets new InsetsUIResource(2, 2, 3, 2), // combo box editor insets -1, // combo border size 1, // combo popup border size new Insets(3, 2, 3, 2), // button border insets getButtonMargin(0, 1), // button margin getButtonMargin(0, 1), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } public static MicroLayout createPlasticXPHiResMicroLayout() { return new MicroLayout( new InsetsUIResource(2, 2, 3, 2), // text insets new InsetsUIResource(2, 2, 3, 2), // wrapped text insets new InsetsUIResource(2, 2, 3, 2), // combo box editor insets -1, // combo border size 1, // combo popup border size new Insets(2, 2, 2, 2), // button border insets getButtonMargin(1, 2), // button margin getButtonMargin(1, 2), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } public static MicroLayout createPlasticXPVistaMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 2, 2, 2), // text insets new InsetsUIResource(1, 2, 2, 2), // wrapped text insets new InsetsUIResource(1, 2, 2, 2), // combo box editor insets -1, // combo border size 1, // combo popup border size new Insets(2, 2, 3, 2), // button border insets getButtonMargin(0, 0), // button margin getButtonMargin(0, 0), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } public static MicroLayout createPlasticXPVistaClassicMicroLayout() { return new MicroLayout( new InsetsUIResource(2, 2, 3, 2), // text insets new InsetsUIResource(2, 2, 3, 2), // wrapped text insets new InsetsUIResource(2, 2, 3, 2), // combo box editor insets -1, // combo border size 1, // combo popup border size new Insets(3, 2, 4, 2), // button border insets getButtonMargin(0, 0), // button margin getButtonMargin(0, 0), // commit button margin PLASTIC_CHECK_BOX_MARGIN, // check box margin PLASTIC_MENU_ITEM_MARGIN, // menu item margin PLASTIC_MENU_MARGIN, // menu margin null // popup menu separator margin ); } // Windows MicroLayouts *************************************************** private static final InsetsUIResource WINDOWS_CHECK_BOX_MARGIN = new InsetsUIResource(2, 0, 2, 0); public static MicroLayout createWindowsClassicLowResMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 2, 2, 2), // text insets new InsetsUIResource(1, 2, 2, 2), // wrapped text insets new InsetsUIResource(1, 2, 2, 2), // combo box editor insets 2, // combo border size 1, // combo popup border size new Insets(3, 2, 4, 2), // button border insets getButtonMargin(1, 1), // button margin getButtonMargin(1, 1), // commit button margin WINDOWS_CHECK_BOX_MARGIN, // check box margin new InsetsUIResource(3, 0, 3, 0), // menu item margin new InsetsUIResource(2, 3, 2, 3), // menu margin new InsetsUIResource(2, 0, 3, 0) // popup menu separator margin ); } public static MicroLayout createWindowsClassicHiResMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 2, 2, 2), // text insets new InsetsUIResource(1, 2, 2, 2), // wrapped text insets new InsetsUIResource(1, 2, 2, 2), // combo box editor insets 2, // combo border size 1, // combo popup border size new Insets(3, 2, 4, 2), // button border insets getButtonMargin(1, 1), // button margin getButtonMargin(1, 1), // commit button margin WINDOWS_CHECK_BOX_MARGIN, // check box margin new InsetsUIResource(2, 0, 2, 0), // menu item margin new InsetsUIResource(2, 4, 2, 4), // menu margin new InsetsUIResource(3, 0, 4, 0) // popup menu separator margin ); } public static MicroLayout createWindowsXPLowResMicroLayout() { return new MicroLayout( new InsetsUIResource(2, 2, 3, 2), // text insets new InsetsUIResource(2, 2, 3, 2), // wrapped text insets new InsetsUIResource(2, 2, 3, 2), // combo box editor insets 1, // combo border size 1, // combo popup border size new Insets(3, 2, 4, 2), // button border insets getButtonMargin(2, 3), // button margin getButtonMargin(2, 3), // commit button margin WINDOWS_CHECK_BOX_MARGIN, // check box margin new InsetsUIResource(3, 0, 3, 0), // menu item margin new InsetsUIResource(2, 3, 2, 4), // menu margin new InsetsUIResource(2, 3, 3, 3) // popup menu separator margin ); } public static MicroLayout createWindowsXPHiResMicroLayout() { return new MicroLayout( new InsetsUIResource(2, 2, 3, 2), // text insets new InsetsUIResource(2, 2, 3, 2), // wrapped text insets new InsetsUIResource(2, 2, 3, 2), // combo box editor insets 1, // combo border size 1, // combo popup border size new Insets(3, 2, 4, 2), // button border insets getButtonMargin(2, 3), // button margin getButtonMargin(2, 3), // commit button margin WINDOWS_CHECK_BOX_MARGIN, // check box margin new InsetsUIResource(2, 0, 2, 0), // menu item margin new InsetsUIResource(2, 5, 2, 6), // menu margin new InsetsUIResource(3, 3, 4, 3) // popup menu separator margin ); } public static MicroLayout createWindowsVistaLowResMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 2, 2, 2), // text insets new InsetsUIResource(1, 2, 2, 2), // wrapped text insets new InsetsUIResource(1, 2, 2, 2), // combo box editor insets 1, // combo border size 1, // combo popup border size new Insets(3, 2, 4, 2), // button border insets getButtonMargin(1, 2), // button margin getButtonMargin(1, 2), // commit button margin WINDOWS_CHECK_BOX_MARGIN, // check box margin new InsetsUIResource(3, 0, 3, 0), // menu item margin new InsetsUIResource(2, 3, 2, 4), // menu margin new InsetsUIResource(2, 3, 3, 3) // popup menu separator margin ); } public static MicroLayout createWindowsVistaHiResMicroLayout() { return new MicroLayout( new InsetsUIResource(1, 2, 2, 2), // text insets new InsetsUIResource(1, 2, 2, 2), // wrapped text insets new InsetsUIResource(1, 2, 2, 2), // combo box editor insets 1, // combo border size 1, // combo popup border size new Insets(3, 2, 4, 2), // button border insets getButtonMargin(1, 2), // button margin getButtonMargin(1, 2), // commit button margin WINDOWS_CHECK_BOX_MARGIN, // check box margin new InsetsUIResource(2, 0, 2, 0), // menu item margin new InsetsUIResource(2, 5, 2, 6), // menu margin new InsetsUIResource(3, 3, 4, 3) // popup menu separator margin ); } // Helper Code ************************************************************ private static InsetsUIResource getButtonMargin(int top, int bottom) { int pad = Options.getUseNarrowButtons() ? 4 : 14; return new InsetsUIResource(top, pad, bottom, pad); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/0000755000175000017500000000000012054245201022643 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/package.html0000644000175000017500000000463311731047166025145 0ustar tonytony Contains classes shared by all JGoodies Looks implementations.

Related Documentation

For more information see: @see com.jgoodies.looks @see com.jgoodies.looks.plastic @see com.jgoodies.looks.plastic.theme @see com.jgoodies.looks.windows jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/MinimumSizedIcon.java0000644000175000017500000000576411731047166026760 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.Icon; import com.jgoodies.looks.Options; /** * An {@code Icon} with a minimum size that is read from the * {@code UIManager} {@code defaultIconSize} key. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public class MinimumSizedIcon implements Icon { private final Icon icon; private final int width; private final int height; private final int xOffset; private final int yOffset; public MinimumSizedIcon() { this(null); } public MinimumSizedIcon(Icon icon) { Dimension minimumSize = Options.getDefaultIconSize(); this.icon = icon; int iconWidth = icon == null ? 0 : icon.getIconWidth(); int iconHeight = icon == null ? 0 : icon.getIconHeight(); width = Math.max(iconWidth, Math.max(20, minimumSize.width)); height = Math.max(iconHeight, Math.max(20, minimumSize.height)); xOffset = Math.max(0, (width - iconWidth) / 2); yOffset = Math.max(0, (height - iconHeight) / 2); } @Override public int getIconHeight() { return height; } @Override public int getIconWidth() { return width; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { if (icon != null) { icon.paintIcon(c, g, x + xOffset, y + yOffset); } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ExtBasicMenuUI.java0000644000175000017500000001620511731047166026312 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.*; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicMenuUI; /** * An implementation of {@code MenuUI} used by the JGoodies Windows * and Plastic looks. Unlike it's superclass, it aligns submenu items. * * @author Karsten Lentzsch * @version $Revision: 1.12 $ */ public class ExtBasicMenuUI extends BasicMenuUI { private static final String MENU_PROPERTY_PREFIX = "Menu"; private static final String SUBMENU_PROPERTY_PREFIX = "MenuItem"; // May be changed to SUBMENU_PROPERTY_PREFIX later private String propertyPrefix = MENU_PROPERTY_PREFIX; private MenuItemRenderer renderer; private MouseListener mouseListener; public static ComponentUI createUI(JComponent b) { return new ExtBasicMenuUI(); } // Install and Uninstall ************************************************ @Override protected void installDefaults() { super.installDefaults(); if (arrowIcon == null || arrowIcon instanceof UIResource) { arrowIcon = UIManager.getIcon("Menu.arrowIcon"); } renderer = new MenuItemRenderer( menuItem, false, acceleratorFont, selectionForeground, disabledForeground, acceleratorForeground, acceleratorSelectionForeground); Integer gap = (Integer) UIManager.get(getPropertyPrefix() + ".textIconGap"); defaultTextIconGap = gap != null ? gap.intValue() : 2; LookAndFeel.installBorder(menuItem, getPropertyPrefix() + ".border"); } @Override protected void uninstallDefaults() { super.uninstallDefaults(); renderer = null; } @Override protected String getPropertyPrefix() { return propertyPrefix; } @Override protected Dimension getPreferredMenuItemSize( JComponent c, Icon aCheckIcon, Icon anArrowIcon, int textIconGap) { if (isSubMenu(menuItem)) { ensureSubMenuInstalled(); return renderer.getPreferredMenuItemSize( c, aCheckIcon, anArrowIcon, textIconGap); } return super.getPreferredMenuItemSize( c, aCheckIcon, anArrowIcon, textIconGap); } @Override protected void paintMenuItem( Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap) { if (isSubMenu(menuItem)) { renderer.paintMenuItem( g, c, aCheckIcon, anArrowIcon, background, foreground, textIconGap); } else { super.paintMenuItem( g, c, aCheckIcon, anArrowIcon, background, foreground, textIconGap); } } /** * Checks if we have already detected the correct menu type, * menu in menu bar vs. sub menu; reinstalls if necessary. */ private void ensureSubMenuInstalled() { if (propertyPrefix.equals(SUBMENU_PROPERTY_PREFIX)) { return; } ButtonModel model = menuItem.getModel(); //save values of armed and selected properties. //they will be resetted in #ununinstallDefaults(). boolean oldArmed = model.isArmed(); boolean oldSelected = model.isSelected(); uninstallRolloverListener(); uninstallDefaults(); propertyPrefix = SUBMENU_PROPERTY_PREFIX; installDefaults(); //restore values of armed and selected properties model.setArmed(oldArmed); model.setSelected(oldSelected); } // Rollover Listener **************************************************** @Override protected void installListeners() { super.installListeners(); mouseListener = new RolloverHandler(); menuItem.addMouseListener(mouseListener); } @Override protected void uninstallListeners() { super.uninstallListeners(); uninstallRolloverListener(); } private void uninstallRolloverListener() { if (mouseListener != null) { menuItem.removeMouseListener(mouseListener); mouseListener = null; } } // Helper Code ********************************************************** private static boolean isSubMenu(JMenuItem aMenuItem) { return !((JMenu) aMenuItem).isTopLevelMenu(); } private static final class RolloverHandler extends MouseAdapter { @Override public void mouseEntered(MouseEvent e) { AbstractButton b = (AbstractButton) e.getSource(); b.getModel().setRollover(true); } @Override public void mouseExited(MouseEvent e) { AbstractButton b = (AbstractButton) e.getSource(); b.getModel().setRollover(false); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ComboBoxEditorTextField.java0000644000175000017500000000510511731047166030212 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import javax.swing.JTextField; import javax.swing.UIManager; /** * A text field designed to be used as combo box editor. * It doesn't set a text if the text equals the content; * this works around the Java issue #4530952. * * @author Karsten Lentzsch * @version $Revision: 1.7 $ */ public final class ComboBoxEditorTextField extends JTextField { public ComboBoxEditorTextField(boolean isTableCellEditor) { super("", UIManager.getInt("ComboBox.editorColumns")); // Use special insets for tables, the text field defaults otherwise if (isTableCellEditor) { setMargin(UIManager.getInsets("ComboBox.tableEditorInsets")); } setBorder(UIManager.getBorder("ComboBox.editorBorder")); } // Workaround for 4530952 @Override public void setText(String s) { if (getText().equals(s)) { return; } super.setText(s); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ShadowPopupFactory.java0000644000175000017500000001640411731047166027327 0ustar tonytony/* * Copyright (c) 2005-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Component; import javax.swing.LookAndFeel; import javax.swing.Popup; import javax.swing.PopupFactory; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.Options; /** * The JGoodies Looks implementation of {@code PopupFactory}. * Adds a drop shadow border to all popups except ComboBox popups. * It is installed by the JGoodies Plastic L&F, as well as by * the JGoodies Windows L&F during the Look&Feel initialization, * see {@link com.jgoodies.looks.plastic.PlasticLookAndFeel#initialize} and * {@link com.jgoodies.looks.windows.WindowsLookAndFeel#initialize}.

* * This factory shall not be used on platforms that provide native drop shadows, * such as the Mac OS X. Therefore the invocation of the {@link #install()} * method will have no effect on such platforms.

* * Note: To be used in a sandbox environment, this PopupFactory * requires two AWT permissions: {@code createRobot} and * {@code readDisplayPixels}. The reason for it is, that in the case of * the heavy weight popups this PopupFactory uses a Robot to snapshot * the screen background to simulate the drop shadow effect. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ * * @see java.awt.AWTPermission * @see java.awt.Robot * @see javax.swing.Popup * @see LookAndFeel#initialize * @see LookAndFeel#uninitialize */ public final class ShadowPopupFactory extends PopupFactory { /** * In the case of heavy weight popups, snapshots of the screen background * will be stored as client properties of the popup contents' parent. * These snapshots will be used by the popup border to simulate the drop * shadow effect. The two following constants define the names of * these client properties. * * @see com.jgoodies.looks.common.ShadowPopupBorder */ static final String PROP_HORIZONTAL_BACKGROUND = "jgoodies.hShadowBg"; static final String PROP_VERTICAL_BACKGROUND = "jgoodies.vShadowBg"; /** * The PopupFactory used before this PopupFactory has been installed * in {@code #install}. Used to restored the original state * in {@code #uninstall}. */ private final PopupFactory storedFactory; // Instance Creation ****************************************************** private ShadowPopupFactory(PopupFactory storedFactory) { this.storedFactory = storedFactory; } // API ******************************************************************** /** * Installs the ShadowPopupFactory as the shared popup factory * on non-Mac platforms. Also stores the previously set factory, * so that it can be restored in {@code #uninstall}.

* * In some Mac Java environments the popup factory throws * a NullPointerException when we call {@code #getPopup}.

* * TODO: The Mac case shows that we may have problems replacing * non PopupFactory instances. Therefore we should consider * replacing only instances of PopupFactory. * * @see #uninstall() */ public static void install() { if (SystemUtils.IS_OS_MAC) { return; } PopupFactory factory = PopupFactory.getSharedInstance(); if (factory instanceof ShadowPopupFactory) { return; } PopupFactory.setSharedInstance(new ShadowPopupFactory(factory)); } /** * Uninstalls the ShadowPopupFactory and restores the original * popup factory as the new shared popup factory. * * @see #install() */ public static void uninstall() { PopupFactory factory = PopupFactory.getSharedInstance(); if (!(factory instanceof ShadowPopupFactory)) { return; } PopupFactory stored = ((ShadowPopupFactory) factory).storedFactory; PopupFactory.setSharedInstance(stored); } /** * Creates a {@code Popup} for the Component {@code owner} * containing the Component {@code contents}. In addition to * the superclass behavior, we try to return a Popup that has a drop shadow, * if popup drop shadows are active - as returned by * {@code Options#isPopupDropShadowActive}.

* * {@code owner} is used to determine which {@code Window} the new * {@code Popup} will parent the {@code Component} the * {@code Popup} creates to. A null {@code owner} implies there * is no valid parent. {@code x} and * {@code y} specify the preferred initial location to place * the {@code Popup} at. Based on screen size, or other paramaters, * the {@code Popup} may not display at {@code x} and * {@code y}.

* * We invoke the super {@code #getPopup}, not the one in the * stored factory, because the popup type is set in this instance, * not in the stored one. * * @param owner Component mouse coordinates are relative to, may be null * @param contents Contents of the Popup * @param x Initial x screen coordinate * @param y Initial y screen coordinate * @return Popup containing Contents * @throws IllegalArgumentException if contents is null * * @see Options#isPopupDropShadowActive() */ @Override public Popup getPopup(Component owner, Component contents, int x, int y) throws IllegalArgumentException { Popup popup = super.getPopup(owner, contents, x, y); return Options.isPopupDropShadowActive() ? ShadowPopup.getInstance(owner, contents, x, y, popup) : popup; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/MenuSelectionProcessor.java0000644000175000017500000001137211731047166030177 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.KeyEventPostProcessor; import java.awt.Window; import java.awt.event.KeyEvent; import javax.swing.*; import javax.swing.plaf.basic.ComboPopup; import com.sun.java.swing.plaf.windows.WindowsRootPaneUI; /** * Handles the Alt key to select the first menu in the menu bar - if any. * Useful to let non-Windows L&fs like Plastic feel more like Windows. * * @see WindowsRootPaneUI */ public final class MenuSelectionProcessor implements KeyEventPostProcessor { private boolean altKeyPressed = false; private boolean menuCanceledOnPress = false; @Override public boolean postProcessKeyEvent(KeyEvent ev) { if (ev.isConsumed()) { return false; } if (ev.getKeyCode() == KeyEvent.VK_ALT) { if (ev.getID() == KeyEvent.KEY_PRESSED) { if (!altKeyPressed) { altPressed(ev); } altKeyPressed = true; return true; } else if (ev.getID() == KeyEvent.KEY_RELEASED) { if (altKeyPressed) { altReleased(ev); } altKeyPressed = false; } } else { altKeyPressed = false; } return false; } private void altPressed(KeyEvent ev) { MenuSelectionManager msm = MenuSelectionManager.defaultManager(); MenuElement[] path = msm.getSelectedPath(); if (path.length > 0 && ! (path[0] instanceof ComboPopup)) { msm.clearSelectedPath(); menuCanceledOnPress = true; ev.consume(); } else if (path.length > 0) { // we are in a combo box menuCanceledOnPress = false; ev.consume(); } else { menuCanceledOnPress = false; JMenuBar mbar = getMenuBar(ev); JMenu menu = mbar != null ? mbar.getMenu(0) : null; if (menu != null) { ev.consume(); } } } private void altReleased(KeyEvent ev) { if (menuCanceledOnPress) { return; } MenuSelectionManager msm = MenuSelectionManager.defaultManager(); if (msm.getSelectedPath().length == 0) { // If no menu is active, we try activating the menu bar. JMenuBar mbar = getMenuBar(ev); JMenu menu = mbar != null ? mbar.getMenu(0) : null; if (menu != null) { MenuElement[] path = new MenuElement[2]; path[0] = mbar; path[1] = menu; msm.setSelectedPath(path); } } } private static JMenuBar getMenuBar(KeyEvent ev) { JRootPane root = SwingUtilities.getRootPane(ev.getComponent()); Window winAncestor = root == null ? null : SwingUtilities.getWindowAncestor(root); JMenuBar mbar = root != null ? root.getJMenuBar() : null; if(mbar == null && winAncestor instanceof JFrame) { mbar = ((JFrame)winAncestor).getJMenuBar(); } return mbar; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/RGBGrayFilter.java0000644000175000017500000001256311731047166026133 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Image; import java.awt.image.*; import javax.swing.GrayFilter; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JComponent; import com.jgoodies.looks.Options; /** * An image filter that turns an icon into a grayscale icon. Used by * the JGoodies Windows and Plastic L&Fs to create a disabled icon.

* * The high-resolution gray filter can be disabled globally using * {@link Options#setHiResGrayFilterEnabled(boolean)}; it is enabled by default. * The global setting can be overridden per component by setting * the client property key {@link Options#HI_RES_DISABLED_ICON_CLIENT_KEY} * to {@code Boolean.FALSE}.

* * Thanks to Andrej Golovnin for suggesting a simpler filter formula. * * @author Karsten Lentzsch * @version $Revision: 1.13 $ */ public final class RGBGrayFilter extends RGBImageFilter { /** * Overrides default constructor; prevents instantiation. */ private RGBGrayFilter() { canFilterIndexColorModel = true; } /** * Returns an icon with a disabled appearance. This method is used * to generate a disabled icon when one has not been specified. * * @param component the component that will display the icon, may be null. * @param icon the icon to generate disabled icon from. * @return disabled icon, or null if a suitable icon can not be generated. */ public static Icon getDisabledIcon(JComponent component, Icon icon) { if ( (icon == null) || (component == null) || (icon.getIconWidth() == 0) || (icon.getIconHeight() == 0)) { return null; } Image img; if (icon instanceof ImageIcon) { img = ((ImageIcon) icon).getImage(); } else { img = new BufferedImage( icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB); icon.paintIcon(component, img.getGraphics(), 0, 0); } if ( !Options.isHiResGrayFilterEnabled() || (Boolean.FALSE.equals(component.getClientProperty(Options.HI_RES_DISABLED_ICON_CLIENT_KEY)))) { return new ImageIcon(GrayFilter.createDisabledImage(img)); } ImageProducer producer = new FilteredImageSource(img.getSource(), new RGBGrayFilter()); return new ImageIcon(component.createImage(producer)); } /** * Converts a single input pixel in the default RGB ColorModel to a single * gray pixel. * * @param x the horizontal pixel coordinate * @param y the vertical pixel coordinate * @param rgb the integer pixel representation in the default RGB color model * @return a gray pixel in the default RGB color model. * * @see ColorModel#getRGBdefault * @see #filterRGBPixels */ @Override public int filterRGB(int x, int y, int rgb) { // Find the average of red, green, and blue. float avg = (((rgb >> 16) & 0xff) / 255f + ((rgb >> 8) & 0xff) / 255f + (rgb & 0xff) / 255f) / 3; // Pull out the alpha channel. float alpha = (((rgb >> 24) & 0xff) / 255f); // Calculate the average. // Sun's formula: Math.min(1.0f, (1f - avg) / (100.0f / 35.0f) + avg); // The following formula uses less operations and hence is faster. avg = Math.min(1.0f, 0.35f + 0.65f * avg); // Convert back into RGB. return (int) (alpha * 255f) << 24 | (int) (avg * 255f) << 16 | (int) (avg * 255f) << 8 | (int) (avg * 255f); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/PopupMenuLayout.java0000644000175000017500000000651711731047166026660 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Container; import javax.swing.BoxLayout; import javax.swing.JPopupMenu; import javax.swing.plaf.UIResource; /** * The JGoodies implementation of a layout manager for Popup menus. * In comparison to the JDK's implementation it flushes the values of the client * properties {@code maxTextWidth} and {@code maxAccWidth} in * the method {@link #invalidateLayout(Container)} and not in the method * {@link #preferredLayoutSize(Container)}. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class PopupMenuLayout extends BoxLayout implements UIResource { /** * Creates a layout manager that will lay out components along * the given axis. * * @param target the container that needs to be laid out * @param axis the axis to lay out components along */ public PopupMenuLayout(Container target, int axis) { super(target, axis); } /** * Indicates that a child has changed its layout related information, * and thus any cached calculations should be flushed. *

* In case the target is an instance of JPopupMenu it flushes the values of * the client properties {@code maxTextWidth} and {@code maxAccWidth}. * * @param target the affected container */ @Override public synchronized void invalidateLayout(Container target) { if (target instanceof JPopupMenu) { JPopupMenu menu = (JPopupMenu) target; menu.putClientProperty(MenuItemRenderer.MAX_TEXT_WIDTH, null); menu.putClientProperty(MenuItemRenderer.MAX_ACC_WIDTH, null); } super.invalidateLayout(target); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ExtBasicMenuItemUI.java0000644000175000017500000001166311731047166027134 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuItemUI; /** * An implementation of {@code MenuItemUI} used by the * JGoodies Windows and Plastic looks. * Unlike it's superclass it aligns menu items, uses a slightly * smaller gap between text and icon, which you can override * in the UI defaults. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public class ExtBasicMenuItemUI extends BasicMenuItemUI { private static final int MINIMUM_WIDTH = 80; private MenuItemRenderer renderer; public static ComponentUI createUI(JComponent b) { return new ExtBasicMenuItemUI(); } @Override protected void installDefaults() { super.installDefaults(); renderer = createRenderer( menuItem, iconBorderEnabled(), acceleratorFont, selectionForeground, disabledForeground, acceleratorForeground, acceleratorSelectionForeground); Integer gap = (Integer) UIManager.get(getPropertyPrefix() + ".textIconGap"); defaultTextIconGap = gap != null ? gap.intValue() : 2; } // RadioButtonMenuItems and CheckBoxMenuItems will override protected boolean iconBorderEnabled() { return false; } @Override protected void uninstallDefaults() { super.uninstallDefaults(); renderer = null; } @Override protected Dimension getPreferredMenuItemSize( JComponent c, Icon aCheckIcon, Icon anArrowIcon, int textIconGap) { //if (storedCheckIcon == null) replaceIcons(); Dimension size = renderer.getPreferredMenuItemSize( c, aCheckIcon, anArrowIcon, textIconGap); int width = Math.max(MINIMUM_WIDTH, size.width); int height = size.height; return new Dimension(width, height); } @Override protected void paintMenuItem( Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap) { renderer.paintMenuItem( g, c, aCheckIcon, anArrowIcon, background, foreground, textIconGap); } protected MenuItemRenderer createRenderer( JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground) { return new MenuItemRenderer( menuItem, iconBorderEnabled(), acceleratorFont, selectionForeground, disabledForeground, acceleratorForeground, acceleratorSelectionForeground); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/MinimumSizedCheckIcon.java0000644000175000017500000000674111731047166027712 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import javax.swing.ButtonModel; import javax.swing.Icon; import javax.swing.JMenuItem; import javax.swing.UIManager; /** * An implementation of the {@code Icon} interface that has a minimum size * and active border. The minimum size is read from the {@code UIManager} * {@code defaultIconSize} key. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see MinimumSizedIcon */ public final class MinimumSizedCheckIcon extends MinimumSizedIcon { private final JMenuItem menuItem; public MinimumSizedCheckIcon(Icon icon, JMenuItem menuItem) { super(icon); this.menuItem = menuItem; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { paintState(g, x, y); super.paintIcon(c, g, x, y); } private void paintState(Graphics g, int x, int y) { ButtonModel model = menuItem.getModel(); //if (!model.isEnabled()) return; int w = getIconWidth(); int h = getIconHeight(); g.translate(x, y); if (model.isSelected() || model.isArmed() /* && model.isPressed()*/) { Color background = model.isArmed() ? UIManager.getColor("MenuItem.background") : UIManager.getColor("ScrollBar.track"); Color upColor = UIManager.getColor("controlLtHighlight"); Color downColor = UIManager.getColor("controlDkShadow"); // Background g.setColor(background); g.fillRect(0, 0, w, h); // Top and left border g.setColor(model.isSelected() ? downColor : upColor); g.drawLine(0, 0, w-2, 0); g.drawLine(0, 0, 0, h-2); // Bottom and right border g.setColor(model.isSelected() ? upColor: downColor); g.drawLine(0, h-1, w-1, h-1); g.drawLine(w-1, 0, w-1, h-1); } g.translate(-x, -y); g.setColor(UIManager.getColor("textText")); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ExtButtonAreaLayout.java0000644000175000017500000002161111731047166027445 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Insets; import javax.swing.plaf.basic.BasicOptionPaneUI; import com.jgoodies.common.base.SystemUtils; /** * Unlike its superclass, this layout uses a minimum button width * that complies with Mac and Windows UI style guides. * * @author Karsten Lentzsch * @version $Revision: 1.13 $ */ public final class ExtButtonAreaLayout extends BasicOptionPaneUI.ButtonAreaLayout { /** * Constructs an {@code ExtButtonAreaLayout}. * * @param syncAllWidths true indicates that all buttons get the same size * @param padding the padding between buttons */ public ExtButtonAreaLayout(boolean syncAllWidths, int padding) { super(syncAllWidths, padding); } @Override public void layoutContainer(Container container) { Component[] children = container.getComponents(); if (children != null && children.length > 0) { int numChildren = children.length; Dimension[] sizes = new Dimension[numChildren]; int counter; int yLocation = container.getInsets().top; if (syncAllWidths) { int maxWidth = getMinimumButtonWidth(); for (counter = 0; counter < numChildren; counter++) { sizes[counter] = children[counter].getPreferredSize(); maxWidth = Math.max(maxWidth, sizes[counter].width); } int xLocation; int xOffset; if (getCentersChildren()) { xLocation = (container.getSize().width - (maxWidth * numChildren + (numChildren - 1) * padding)) / 2; xOffset = padding + maxWidth; } else { if (numChildren > 1) { xLocation = 0; xOffset = (container.getSize().width - maxWidth * numChildren) / (numChildren - 1) + maxWidth; } else { xLocation = (container.getSize().width - maxWidth) / 2; xOffset = 0; } } boolean ltr = container.getComponentOrientation() .isLeftToRight(); for (counter = 0; counter < numChildren; counter++) { int index = ltr ? counter : numChildren - counter - 1; children[index].setBounds( xLocation, yLocation, maxWidth, sizes[index].height); xLocation += xOffset; } } else { int totalWidth = 0; for (counter = 0; counter < numChildren; counter++) { sizes[counter] = children[counter].getPreferredSize(); totalWidth += sizes[counter].width; } totalWidth += (numChildren - 1) * padding; boolean cc = getCentersChildren(); int xOffset; int xLocation; if (cc) { xLocation = (container.getSize().width - totalWidth) / 2; xOffset = padding; } else { if (numChildren > 1) { xOffset = (container.getSize().width - totalWidth) / (numChildren - 1); xLocation = 0; } else { xLocation = (container.getSize().width - totalWidth) / 2; xOffset = 0; } } boolean ltr = container.getComponentOrientation() .isLeftToRight(); for (counter = 0; counter < numChildren; counter++) { int index = ltr ? counter : numChildren - counter - 1; children[index].setBounds( xLocation, yLocation, sizes[index].width, sizes[index].height); xLocation += xOffset + sizes[index].width; } } } } @Override public Dimension minimumLayoutSize(Container c) { if (c != null) { Component[] children = c.getComponents(); if (children != null && children.length > 0) { Dimension aSize; int numChildren = children.length; int height = 0; Insets cInsets = c.getInsets(); int extraHeight = cInsets.top + cInsets.bottom; if (syncAllWidths) { int maxWidth = getMinimumButtonWidth(); for (int counter = 0; counter < numChildren; counter++) { aSize = children[counter].getPreferredSize(); height = Math.max(height, aSize.height); maxWidth = Math.max(maxWidth, aSize.width); } return new Dimension( maxWidth * numChildren + (numChildren - 1) * padding, extraHeight + height); } int totalWidth = 0; for (int counter = 0; counter < numChildren; counter++) { aSize = children[counter].getPreferredSize(); height = Math.max(height, aSize.height); totalWidth += aSize.width; } totalWidth += (numChildren - 1) * padding; return new Dimension(totalWidth, extraHeight + height); } } return new Dimension(0, 0); } /** * Computes and answers the minimum button width. * The MS UX guide recommends a minimum width of 50 Dialog units (DLU).

* * This current implementation assumes an 8pt Tahoma and honors resolutions * of 96dpi and 120dpi. This leads to a good approximation of the 50dlu * for the vast majority of today's target systems. And it sure is * an improvement over the superclass' value of 0.

* * A better implementation would use a conversion from dlu to pixel * for the given buttons (that may have different font render contexts * if located in different graphics environments in a multi-screen context). * The JGoodies Forms provides such a converter and offers a better button * layout by means of the {@code ButtonBarBuilder2} class. * * @return the minimum button width */ private static int getMinimumButtonWidth() { return SystemUtils.IS_LOW_RESOLUTION ? 75 : 100; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ExtBasicPopupMenuSeparatorUI.java0000644000175000017500000000725511731047166031224 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Insets; import javax.swing.JComponent; import javax.swing.JSeparator; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicPopupMenuSeparatorUI; /** * Renders the separator in popup and pull-down menus. * Unlike its superclass we use a setting for the insets and * it uses a shared UI delegate. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class ExtBasicPopupMenuSeparatorUI extends BasicPopupMenuSeparatorUI { private static final int SEPARATOR_HEIGHT = 2; private Insets insets; /** Shared UI object. */ private static ComponentUI popupMenuSeparatorUI; public static ComponentUI createUI(JComponent b) { if (popupMenuSeparatorUI == null) { popupMenuSeparatorUI = new ExtBasicPopupMenuSeparatorUI(); } return popupMenuSeparatorUI; } @Override protected void installDefaults(JSeparator s) { super.installDefaults(s); insets = UIManager.getInsets("PopupMenuSeparator.margin"); } @Override public void paint(Graphics g, JComponent c) { Dimension s = c.getSize(); int topInset = insets.top; int leftInset = insets.left; int rightInset = insets.right; // Paint background g.setColor(UIManager.getColor("MenuItem.background")); g.fillRect(0, 0, s.width, s.height); // Draw side /* g.setColor(UIManager.getColor("controlHighlight")); g.drawLine(0, 0, 0, s.height -1); g.drawLine(s.width-1, 0, s.width-1, s.height-1); */ g.translate(0, topInset); g.setColor(c.getForeground()); g.drawLine(leftInset, 0, s.width - rightInset, 0); g.setColor(c.getBackground()); g.drawLine(leftInset, 1, s.width - rightInset, 1); g.translate(0, -topInset); } @Override public Dimension getPreferredSize(JComponent c) { return new Dimension(0, insets.top + SEPARATOR_HEIGHT + insets.bottom); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ExtBasicSpinnerLayout.java0000644000175000017500000001374711731047166027774 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.*; import javax.swing.UIManager; /** * A simple layout manager for the editor and the next/previous buttons. * See the BasicSpinnerUI javadoc for more information about exactly how * the components are arranged. * * @author Karsten Lentzsch * @version $Revision: 1.7 $ */ public final class ExtBasicSpinnerLayout implements LayoutManager { /** * Used by the default LayoutManager class - SpinnerLayout for * missing (null) editor/nextButton/previousButton children. */ private static final Dimension ZERO_SIZE = new Dimension(0, 0); private Component nextButton = null; private Component previousButton = null; private Component editor = null; @Override public void addLayoutComponent(String name, Component c) { if ("Next".equals(name)) { nextButton = c; } else if ("Previous".equals(name)) { previousButton = c; } else if ("Editor".equals(name)) { editor = c; } } @Override public void removeLayoutComponent(Component c) { if (c == nextButton) { c = null; } else if (c == previousButton) { previousButton = null; } else if (c == editor) { editor = null; } } private static Dimension preferredSize(Component c) { return c == null ? ZERO_SIZE : c.getPreferredSize(); } @Override public Dimension preferredLayoutSize(Container parent) { Dimension nextD = preferredSize(nextButton); Dimension previousD = preferredSize(previousButton); Dimension editorD = preferredSize(editor); Dimension size = new Dimension(editorD.width, editorD.height); size.width += Math.max(nextD.width, previousD.width); Insets insets = parent.getInsets(); size.width += insets.left + insets.right; size.height += insets.top + insets.bottom; return size; } @Override public Dimension minimumLayoutSize(Container parent) { return preferredLayoutSize(parent); } private static void setBounds(Component c, int x, int y, int width, int height) { if (c != null) { c.setBounds(x, y, width, height); } } @Override public void layoutContainer(Container parent) { int width = parent.getWidth(); int height = parent.getHeight(); Insets insets = parent.getInsets(); Dimension nextD = preferredSize(nextButton); Dimension previousD = preferredSize(previousButton); int buttonsWidth = Math.max(nextD.width, previousD.width); int editorHeight = height - (insets.top + insets.bottom); // The arrowButtonInsets value is used instead of the JSpinner's // insets if not null. Defining this to be (0, 0, 0, 0) causes the // buttons to be aligned with the outer edge of the spinner's // border, and leaving it as "null" places the buttons completely // inside the spinner's border. Insets buttonInsets = UIManager .getInsets("Spinner.arrowButtonInsets"); if (buttonInsets == null) { buttonInsets = insets; } /* * Deal with the spinner's componentOrientation property. */ int editorX, editorWidth, buttonsX; if (parent.getComponentOrientation().isLeftToRight()) { editorX = insets.left; editorWidth = width - insets.left - buttonsWidth - buttonInsets.right; buttonsX = width - buttonsWidth - buttonInsets.right; } else { buttonsX = buttonInsets.left; editorX = buttonsX + buttonsWidth; editorWidth = width - buttonInsets.left - buttonsWidth - insets.right; } int nextY = buttonInsets.top; int nextHeight = height / 2 + height % 2 - nextY; int previousY = buttonInsets.top + nextHeight; int previousHeight = height - previousY - buttonInsets.bottom; setBounds(editor, editorX, insets.top, editorWidth, editorHeight); setBounds(nextButton, buttonsX, nextY, buttonsWidth, nextHeight); setBounds(previousButton, buttonsX, previousY, buttonsWidth, previousHeight); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ExtBasicRadioButtonMenuItemUI.java0000644000175000017500000000615011731047166031302 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Point; import java.awt.event.MouseEvent; import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.MenuElement; import javax.swing.MenuSelectionManager; import javax.swing.plaf.ComponentUI; /** * Renders aligned {@code JRadioButtonMenuItem}s. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public class ExtBasicRadioButtonMenuItemUI extends ExtBasicMenuItemUI { @Override protected String getPropertyPrefix() { return "RadioButtonMenuItem"; } public static ComponentUI createUI(JComponent b) { return new ExtBasicRadioButtonMenuItemUI(); } // RadioButtonMenuItems and CheckBoxMenuItems will override @Override protected boolean iconBorderEnabled() { return true; } public void processMouseEvent(JMenuItem item, MouseEvent e, MenuElement[] path, MenuSelectionManager manager) { Point p = e.getPoint(); if (p.x >= 0 && p.x < item.getWidth() && p.y >= 0 && p.y < item.getHeight()) { if (e.getID() == MouseEvent.MOUSE_RELEASED) { manager.clearSelectedPath(); item.doClick(0); item.setArmed(false); } else { manager.setSelectedPath(path); } } else if (item.getModel().isArmed()) { MenuElement[] newPath = new MenuElement[path.length - 1]; int i, c; for (i = 0, c = path.length - 1; i < c; i++) { newPath[i] = path[i]; } manager.setSelectedPath(newPath); } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ShadowPopupBorder.java0000644000175000017500000001135511731047166027135 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.Component; import java.awt.Graphics; import java.awt.Image; import java.awt.Insets; import javax.swing.ImageIcon; import javax.swing.JComponent; import javax.swing.border.AbstractBorder; /** * A border with a drop shadow intended to be used as the outer border * of popups. Can paint the screen background if used with heavy-weight * popup windows. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see ShadowPopup * @see ShadowPopupFactory */ final class ShadowPopupBorder extends AbstractBorder { /** * The drop shadow needs 5 pixels at the bottom and the right hand side. */ private static final int SHADOW_SIZE = 5; /** * The singleton instance used to draw all borders. */ private static ShadowPopupBorder instance = new ShadowPopupBorder(); /** * The drop shadow is created from a PNG image with 8 bit alpha channel. */ private static Image shadow = new ImageIcon(ShadowPopupBorder.class.getResource("shadow.png")).getImage(); // Instance Creation ***************************************************** /** * Returns the singleton instance used to draw all borders. */ public static ShadowPopupBorder getInstance() { return instance; } /** * Paints the border for the specified component with the specified * position and size. */ @Override public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { // fake drop shadow effect in case of heavy weight popups JComponent popup = (JComponent) c; Image hShadowBg = (Image) popup.getClientProperty(ShadowPopupFactory.PROP_HORIZONTAL_BACKGROUND); if (hShadowBg != null) { g.drawImage(hShadowBg, x, y + height - 5, c); } Image vShadowBg = (Image) popup.getClientProperty(ShadowPopupFactory.PROP_VERTICAL_BACKGROUND); if (vShadowBg != null) { g.drawImage(vShadowBg, x + width - 5, y, c); } // draw drop shadow g.drawImage(shadow, x + 5, y + height - 5, x + 10, y + height, 0, 6, 5, 11, null, c); g.drawImage(shadow, x + 10, y + height - 5, x + width - 5, y + height, 5, 6, 6, 11, null, c); g.drawImage(shadow, x + width - 5, y + 5, x + width, y + 10, 6, 0, 11, 5, null, c); g.drawImage(shadow, x + width - 5, y + 10, x + width, y + height - 5, 6, 5, 11, 6, null, c); g.drawImage(shadow, x + width - 5, y + height - 5, x + width, y + height, 6, 6, 11, 11, null, c); } /** * Returns the insets of the border. */ @Override public Insets getBorderInsets(Component c) { return new Insets(0, 0, SHADOW_SIZE, SHADOW_SIZE); } /** * Reinitializes the insets parameter with this Border's current Insets. * @param c the component for which this border insets value applies * @param insets the object to be reinitialized * @return the {@code insets} object */ @Override public Insets getBorderInsets(Component c, Insets insets) { insets.left = insets.top = 0; insets.right = insets.bottom = SHADOW_SIZE; return insets; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ShadowPopup.java0000644000175000017500000003555411731047166026006 0ustar tonytony/* * Copyright (c) 2007-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.AWTException; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Panel; import java.awt.Point; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Window; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; import javax.swing.JApplet; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JInternalFrame; import javax.swing.JRootPane; import javax.swing.JWindow; import javax.swing.Popup; import javax.swing.SwingUtilities; import javax.swing.border.Border; /** * Does all the magic for getting popups with drop shadows. * It adds the drop shadow border to the Popup, * in {@code #show} it snapshots the screen background as needed, * and in {@code #hide} it cleans up all changes made before. * * @author Karsten Lentzsch * @version $Revision: 1.12 $ * * @see com.jgoodies.looks.common.ShadowPopupBorder * @see com.jgoodies.looks.common.ShadowPopupFactory */ public final class ShadowPopup extends Popup { /** * Max number of items to store in the cache. */ private static final int MAX_CACHE_SIZE = 5; /** * The cache to use for ShadowPopups. */ private static List cache; /** * The singleton instance used to draw all borders. */ private static final Border SHADOW_BORDER = ShadowPopupBorder.getInstance(); /** * The size of the drop shadow. */ private static final int SHADOW_SIZE = 5; /** * Indicates whether we can make snapshots from screen or not. */ private static boolean canSnapshot = true; /** * The component mouse coordinates are relative to, may be null. */ private Component owner; /** * The contents of the popup. */ private Component contents; /** * The desired x and y location of the popup. */ private int x, y; /** * The real popup. The #show() and #hide() methods will delegate * all calls to these popup. */ private Popup popup; /** * The border of the contents' parent replaced by SHADOW_BORDER. */ private Border oldBorder; /** * The old value of the opaque property of the contents' parent. */ private boolean oldOpaque; /** * The heavy weight container of the popup contents, may be null. */ private Container heavyWeightContainer; /** * Returns a previously used {@code ShadowPopup}, or a new one * if none of the popups have been recycled. */ static Popup getInstance(Component owner, Component contents, int x, int y, Popup delegate) { ShadowPopup result; synchronized (ShadowPopup.class) { if (cache == null) { cache = new ArrayList(MAX_CACHE_SIZE); } if (cache.size() > 0) { result = (ShadowPopup) cache.remove(0); } else { result = new ShadowPopup(); } } result.reset(owner, contents, x, y, delegate); return result; } /** * Recycles the ShadowPopup. */ private static void recycle(ShadowPopup popup) { synchronized (ShadowPopup.class) { if (cache.size() < MAX_CACHE_SIZE) { cache.add(popup); } } } public static boolean canSnapshot() { return canSnapshot; } /** * Hides and disposes of the {@code Popup}. Once a {@code Popup} * has been disposed you should no longer invoke methods on it. A * {@code dispose}d {@code Popup} may be reclaimed and later used * based on the {@code PopupFactory}. As such, if you invoke methods * on a {@code disposed} {@code Popup}, indeterminate * behavior will result.

* * In addition to the superclass behavior, we reset the stored * horizontal and vertical drop shadows - if any. */ @Override public void hide() { if (contents == null) { return; } JComponent parent = (JComponent) contents.getParent(); popup.hide(); if ((parent != null) && parent.getBorder() == SHADOW_BORDER) { parent.setBorder(oldBorder); parent.setOpaque(oldOpaque); oldBorder = null; if (heavyWeightContainer != null) { parent.putClientProperty(ShadowPopupFactory.PROP_HORIZONTAL_BACKGROUND, null); parent.putClientProperty(ShadowPopupFactory.PROP_VERTICAL_BACKGROUND, null); heavyWeightContainer = null; } } owner = null; contents = null; popup = null; recycle(this); } /** * Makes the {@code Popup} visible. If the popup has a * heavy-weight container, we try to snapshot the background. * If the {@code Popup} is currently visible, it remains visible. */ @Override public void show() { if (heavyWeightContainer != null) { snapshot(); } popup.show(); } /** * Reinitializes this ShadowPopup using the given parameters. * * @param owner component mouse coordinates are relative to, may be null * @param contents the contents of the popup * @param x the desired x location of the popup * @param y the desired y location of the popup * @param popup the popup to wrap */ private void reset(Component owner, Component contents, int x, int y, Popup popup) { this.owner = owner; this.contents = contents; this.popup = popup; this.x = x; this.y = y; if (owner instanceof JComboBox) { return; } // Do not install the shadow border when the contents // has a preferred size less than or equal to 0. // We can't use the size, because it is(0, 0) for new popups. Dimension contentsPrefSize = contents.getPreferredSize(); if ((contentsPrefSize.width <= 0) || (contentsPrefSize.height <= 0)) { return; } for(Container p = contents.getParent(); p != null; p = p.getParent()) { if ((p instanceof JWindow) || (p instanceof Panel)) { // Workaround for the gray rect problem. p.setBackground(contents.getBackground()); heavyWeightContainer = p; break; } } JComponent parent = (JComponent) contents.getParent(); oldOpaque = parent.isOpaque(); oldBorder = parent.getBorder(); parent.setOpaque(false); parent.setBorder(SHADOW_BORDER); // Pack it because we have changed the border. if (heavyWeightContainer != null) { heavyWeightContainer.setSize( heavyWeightContainer.getPreferredSize()); } else { parent.setSize(parent.getPreferredSize()); } } /** * The 'scratch pad' objects used to calculate dirty regions of * the screen snapshots. * * @see #snapshot() */ private static final Point POINT = new Point(); private static final Rectangle RECT = new Rectangle(); /** * Snapshots the background. The snapshots are stored as client * properties of the contents' parent. The next time the border is drawn, * this background will be used.

* * Uses a robot on the default screen device to capture the screen * region under the drop shadow. Does not use the window's * device, because that may be an outdated device (due to popup reuse) * and the robot's origin seems to be adjusted with the default screen * device. * * @see #show() * @see com.jgoodies.looks.common.ShadowPopupBorder * @see Robot#createScreenCapture(Rectangle) */ private void snapshot() { try { Dimension size = heavyWeightContainer.getPreferredSize(); int width = size.width; int height = size.height; // Avoid unnecessary and illegal screen captures // for degenerated popups. if ((width <= 0) || (height <= SHADOW_SIZE)) { return; } Robot robot = new Robot(); // uses the default screen device RECT.setBounds(x, y + height - SHADOW_SIZE, width, SHADOW_SIZE); BufferedImage hShadowBg = robot.createScreenCapture(RECT); RECT.setBounds(x + width - SHADOW_SIZE, y, SHADOW_SIZE, height - SHADOW_SIZE); BufferedImage vShadowBg = robot.createScreenCapture(RECT); JComponent parent = (JComponent) contents.getParent(); parent.putClientProperty(ShadowPopupFactory.PROP_HORIZONTAL_BACKGROUND, hShadowBg); parent.putClientProperty(ShadowPopupFactory.PROP_VERTICAL_BACKGROUND, vShadowBg); Container layeredPane = getLayeredPane(); if (layeredPane == null) { // This could happen if owner is null. return; } int layeredPaneWidth = layeredPane.getWidth(); int layeredPaneHeight = layeredPane.getHeight(); POINT.x = x; POINT.y = y; SwingUtilities.convertPointFromScreen(POINT, layeredPane); // If needed paint dirty region of the horizontal snapshot. RECT.x = POINT.x; RECT.y = POINT.y + height - SHADOW_SIZE; RECT.width = width; RECT.height = SHADOW_SIZE; if ((RECT.x + RECT.width) > layeredPaneWidth) { RECT.width = layeredPaneWidth - RECT.x; } if ((RECT.y + RECT.height) > layeredPaneHeight) { RECT.height = layeredPaneHeight - RECT.y; } if (!RECT.isEmpty()) { Graphics g = hShadowBg.createGraphics(); g.translate(-RECT.x, -RECT.y); g.setClip(RECT); if (layeredPane instanceof JComponent) { JComponent c = (JComponent) layeredPane; boolean doubleBuffered = c.isDoubleBuffered(); c.setDoubleBuffered(false); c.paintAll(g); c.setDoubleBuffered(doubleBuffered); } else { layeredPane.paintAll(g); } g.dispose(); } // If needed paint dirty region of the vertical snapshot. RECT.x = POINT.x + width - SHADOW_SIZE; RECT.y = POINT.y; RECT.width = SHADOW_SIZE; RECT.height = height - SHADOW_SIZE; if ((RECT.x + RECT.width) > layeredPaneWidth) { RECT.width = layeredPaneWidth - RECT.x; } if ((RECT.y + RECT.height) > layeredPaneHeight) { RECT.height = layeredPaneHeight - RECT.y; } if (!RECT.isEmpty()) { Graphics g = vShadowBg.createGraphics(); g.translate(-RECT.x, -RECT.y); g.setClip(RECT); if (layeredPane instanceof JComponent) { JComponent c = (JComponent) layeredPane; boolean doubleBuffered = c.isDoubleBuffered(); c.setDoubleBuffered(false); c.paintAll(g); c.setDoubleBuffered(doubleBuffered); } else { layeredPane.paintAll(g); } g.dispose(); } } catch (AWTException e) { canSnapshot = false; } catch (SecurityException e) { canSnapshot = false; } } /** * @return the top level layered pane which contains the owner. */ private Container getLayeredPane() { // The code below is copied from PopupFactory#LightWeightPopup#show() Container parent = null; if (owner != null) { parent = owner instanceof Container ? (Container) owner : owner.getParent(); } // Try to find a JLayeredPane and Window to add for (Container p = parent; p != null; p = p.getParent()) { if (p instanceof JRootPane) { if (p.getParent() instanceof JInternalFrame) { continue; } parent = ((JRootPane) p).getLayeredPane(); // Continue, so that if there is a higher JRootPane, we'll // pick it up. } else if (p instanceof Window) { if (parent == null) { parent = p; } break; } else if (p instanceof JApplet) { // Painting code stops at Applets, we don't want // to add to a Component above an Applet otherwise // you'll never see it painted. break; } } return parent; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/ExtBasicCheckBoxMenuItemUI.java0000644000175000017500000000415711731047166030543 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; /** * Renders aligned JCheckBoxMenuItems. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class ExtBasicCheckBoxMenuItemUI extends ExtBasicRadioButtonMenuItemUI { @Override protected String getPropertyPrefix() { return "CheckBoxMenuItem"; } public static ComponentUI createUI(JComponent b) { return new ExtBasicCheckBoxMenuItemUI(); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/common/MenuItemRenderer.java0000644000175000017500000005607111731047166026744 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.common; import java.awt.*; import java.awt.event.KeyEvent; import javax.swing.*; import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.View; import com.jgoodies.common.internal.RenderingUtils; import com.jgoodies.looks.Options; /** * Renders and lays out menu items. * * @author Karsten Lentzsch * @version $Revision: 1.14 $ */ public class MenuItemRenderer { /* * Implementation note: The protected visibility prevents * the String value from being encrypted by the obfuscator. * An encrypted String key would break the client property lookup * in the #paint method below. */ protected static final String HTML_KEY = BasicHTML.propertyKey; /* Client Property keys for text and accelerator text widths */ static final String MAX_TEXT_WIDTH = "maxTextWidth"; static final String MAX_ACC_WIDTH = "maxAccWidth"; private static final Icon NO_ICON = new NullIcon(); static Rectangle zeroRect = new Rectangle(0, 0, 0, 0); static Rectangle iconRect = new Rectangle(); static Rectangle textRect = new Rectangle(); static Rectangle acceleratorRect= new Rectangle(); static Rectangle checkIconRect = new Rectangle(); static Rectangle arrowIconRect = new Rectangle(); static Rectangle viewRect = new Rectangle(Short.MAX_VALUE, Short.MAX_VALUE); static Rectangle r = new Rectangle(); private final JMenuItem menuItem; private final boolean iconBorderEnabled; // when selected or pressed. private final Font acceleratorFont; private final Color selectionForeground; private final Color disabledForeground; private final Color acceleratorForeground; private final Color acceleratorSelectionForeground; private final String acceleratorDelimiter; private final Icon fillerIcon; /** * Constructs a MenuItemRenderer for the specified menu item and settings. */ public MenuItemRenderer(JMenuItem menuItem, boolean iconBorderEnabled, Font acceleratorFont, Color selectionForeground, Color disabledForeground, Color acceleratorForeground, Color acceleratorSelectionForeground) { this.menuItem = menuItem; this.iconBorderEnabled = iconBorderEnabled; this.acceleratorFont = acceleratorFont; this.selectionForeground = selectionForeground; this.disabledForeground = disabledForeground; this.acceleratorForeground = acceleratorForeground; this.acceleratorSelectionForeground = acceleratorSelectionForeground; this.acceleratorDelimiter = UIManager.getString("MenuItem.acceleratorDelimiter"); this.fillerIcon = new MinimumSizedIcon(); } /** * Looks up and answers the appropriate menu item icon. */ private static Icon getIcon(JMenuItem aMenuItem, Icon defaultIcon) { Icon icon = aMenuItem.getIcon(); if (icon == null) { return defaultIcon; } ButtonModel model = aMenuItem.getModel(); if (!model.isEnabled()) { return model.isSelected() ? aMenuItem.getDisabledSelectedIcon() : aMenuItem.getDisabledIcon(); } else if (model.isPressed() && model.isArmed()) { Icon pressedIcon = aMenuItem.getPressedIcon(); return pressedIcon != null ? pressedIcon : icon; } else if (model.isSelected()) { Icon selectedIcon = aMenuItem.getSelectedIcon(); return selectedIcon != null ? selectedIcon : icon; } else { return icon; } } /** * Checks and answers if the menu item has a custom icon. */ private boolean hasCustomIcon() { return getIcon(menuItem, null) != null; } /** * Answers the wrapped icon. */ private Icon getWrappedIcon(Icon icon) { if (hideIcons()) { return NO_ICON; } if (icon == null) { return fillerIcon; } return iconBorderEnabled && hasCustomIcon() ? new MinimumSizedCheckIcon(icon, menuItem) : new MinimumSizedIcon(icon); } private static void resetRects() { iconRect.setBounds(zeroRect); textRect.setBounds(zeroRect); acceleratorRect.setBounds(zeroRect); checkIconRect.setBounds(zeroRect); arrowIconRect.setBounds(zeroRect); viewRect.setBounds(0, 0, Short.MAX_VALUE, Short.MAX_VALUE); r.setBounds(zeroRect); } public Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap) { JMenuItem b = (JMenuItem) c; String text = b.getText(); KeyStroke accelerator = b.getAccelerator(); String acceleratorText = ""; if (accelerator != null) { int modifiers = accelerator.getModifiers(); if (modifiers > 0) { acceleratorText = KeyEvent.getKeyModifiersText(modifiers); acceleratorText += acceleratorDelimiter; } int keyCode = accelerator.getKeyCode(); if (keyCode != 0) { acceleratorText += KeyEvent.getKeyText(keyCode); } else { acceleratorText += accelerator.getKeyChar(); } } Font font = b.getFont(); FontMetrics fm = b.getFontMetrics(font); FontMetrics fmAccel = b.getFontMetrics(acceleratorFont); resetRects(); Icon wrappedIcon = getWrappedIcon(getIcon(menuItem, checkIcon)); Icon wrappedArrowIcon = new MinimumSizedIcon(arrowIcon); Icon icon = wrappedIcon.getIconHeight() > fillerIcon.getIconHeight() ? wrappedIcon : null; layoutMenuItem(fm, text, fmAccel, acceleratorText, //icon, checkIcon, icon, wrappedIcon, wrappedArrowIcon, //arrowIcon, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), viewRect, iconRect, textRect, acceleratorRect, checkIconRect, arrowIconRect, text == null ? 0 : defaultTextIconGap, defaultTextIconGap); // find the union of the icon and text rects r.setBounds(textRect); r = SwingUtilities.computeUnion(iconRect.x, iconRect.y, iconRect.width, iconRect.height, r); // r = iconRect.union(textRect); // To make the accelerator texts appear in a column, find the widest MenuItem text // and the widest accelerator text. //Get the parent, which stores the information. Container parent = menuItem.getParent(); //Check the parent, and see that it is not a top-level menu. if (parent != null && parent instanceof JComponent && !(menuItem instanceof JMenu && ((JMenu) menuItem).isTopLevelMenu())) { JComponent p = (JComponent) parent; //Get widest text so far from parent, if no one exists null is returned. Integer maxTextWidth = (Integer) p.getClientProperty(MAX_TEXT_WIDTH); Integer maxAccWidth = (Integer) p.getClientProperty(MAX_ACC_WIDTH); int maxTextValue = maxTextWidth != null ? maxTextWidth.intValue() : 0; int maxAccValue = maxAccWidth != null ? maxAccWidth.intValue() : 0; //Compare the text widths, and adjust the r.width to the widest. if (r.width < maxTextValue) { r.width = maxTextValue; } else { p.putClientProperty(MAX_TEXT_WIDTH, new Integer(r.width)); } //Compare the accelarator widths. if (acceleratorRect.width > maxAccValue) { maxAccValue = acceleratorRect.width; p.putClientProperty(MAX_ACC_WIDTH, new Integer(acceleratorRect.width)); } //Add on the widest accelerator r.width += maxAccValue; r.width += 10; } if (useCheckAndArrow()) { // Add in the checkIcon r.width += checkIconRect.width; r.width += defaultTextIconGap; // Add in the arrowIcon r.width += defaultTextIconGap; r.width += arrowIconRect.width; } r.width += 2 * defaultTextIconGap; Insets insets = b.getInsets(); if (insets != null) { r.width += insets.left + insets.right; r.height += insets.top + insets.bottom; } // if the width is even, bump it up one. This is critical // for the focus dash line to draw properly /* JGoodies: Can't believe the above * if(r.width%2 == 0) { r.width++; }*/ // if the height is even, bump it up one. This is critical // for the text to center properly // JGoodies: An even height is critical to center icons properly if (r.height % 2 == 1) { r.height++; } return r.getSize(); } public void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap) { JMenuItem b = (JMenuItem) c; ButtonModel model = b.getModel(); // Dimension size = b.getSize(); int menuWidth = b.getWidth(); int menuHeight = b.getHeight(); Insets i = c.getInsets(); resetRects(); viewRect.setBounds(0, 0, menuWidth, menuHeight); viewRect.x += i.left; viewRect.y += i.top; viewRect.width -= i.right + viewRect.x; viewRect.height -= i.bottom + viewRect.y; Font holdf = g.getFont(); Font f = c.getFont(); g.setFont(f); FontMetrics fm = g.getFontMetrics(f); FontMetrics fmAccel = g.getFontMetrics(acceleratorFont); // get Accelerator text KeyStroke accelerator = b.getAccelerator(); String acceleratorText = ""; if (accelerator != null) { int modifiers = accelerator.getModifiers(); if (modifiers > 0) { acceleratorText = KeyEvent.getKeyModifiersText(modifiers); acceleratorText += acceleratorDelimiter; } int keyCode = accelerator.getKeyCode(); if (keyCode != 0) { acceleratorText += KeyEvent.getKeyText(keyCode); } else { acceleratorText += accelerator.getKeyChar(); } } Icon wrappedIcon = getWrappedIcon(getIcon(menuItem, checkIcon)); Icon wrappedArrowIcon = new MinimumSizedIcon(arrowIcon); // layout the text and icon String text = layoutMenuItem(fm, b.getText(), fmAccel, acceleratorText, // b.getIcon(), checkIcon, null, wrappedIcon, wrappedArrowIcon, //arrowIcon, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), viewRect, iconRect, textRect, acceleratorRect, checkIconRect, arrowIconRect, b.getText() == null ? 0 : defaultTextIconGap, defaultTextIconGap); // Paint background paintBackground(g, b, background); // Paint icon Color holdc = g.getColor(); if (model.isArmed() || c instanceof JMenu && model.isSelected()) { g.setColor(foreground); } wrappedIcon.paintIcon(c, g, checkIconRect.x, checkIconRect.y); g.setColor(holdc); // Draw the Text if (text != null) { View v = (View) c.getClientProperty(HTML_KEY); if (v != null) { v.paint(g, textRect); } else { paintText(g, b, textRect, text); } } // Draw the Accelerator Text if (!acceleratorText.equals("")) { //Get the maxAccWidth from the parent to calculate the offset. int accOffset = 0; Container parent = menuItem.getParent(); if (parent != null && parent instanceof JComponent) { JComponent p = (JComponent) parent; Integer maxValueInt = (Integer) p.getClientProperty(MAX_ACC_WIDTH); int maxValue = maxValueInt != null ? maxValueInt.intValue() : acceleratorRect.width; //Calculate the offset, with which the accelerator texts will be drawn with. accOffset = isLeftToRight(menuItem) ? maxValue - acceleratorRect.width : acceleratorRect.width - maxValue; } g.setFont(acceleratorFont); if (!model.isEnabled()) { // *** paint the acceleratorText disabled if (!disabledTextHasShadow()) { g.setColor(disabledForeground); RenderingUtils.drawStringUnderlineCharAt(c, g, acceleratorText, -1, acceleratorRect.x - accOffset, acceleratorRect.y + fmAccel.getAscent()); } else { g.setColor(b.getBackground().brighter()); RenderingUtils.drawStringUnderlineCharAt(c, g, acceleratorText, -1, acceleratorRect.x - accOffset, acceleratorRect.y + fmAccel.getAscent()); g.setColor(b.getBackground().darker()); RenderingUtils.drawStringUnderlineCharAt(c, g, acceleratorText, -1, acceleratorRect.x - accOffset - 1, acceleratorRect.y + fmAccel.getAscent() - 1); } } else { // *** paint the acceleratorText normally if (model.isArmed() || c instanceof JMenu && model.isSelected()) { g.setColor(acceleratorSelectionForeground); } else { g.setColor(acceleratorForeground); } RenderingUtils.drawStringUnderlineCharAt(c, g, acceleratorText, -1, acceleratorRect.x - accOffset, acceleratorRect.y + fmAccel.getAscent()); } } // Paint the Arrow if (arrowIcon != null) { if (model.isArmed() || c instanceof JMenu && model.isSelected()) { g.setColor(foreground); } if (useCheckAndArrow()) { wrappedArrowIcon.paintIcon(c, g, arrowIconRect.x, arrowIconRect.y); } } g.setColor(holdc); g.setFont(holdf); } /** * Compute and return the location of the icons origin, the * location of origin of the text baseline, and a possibly clipped * version of the compound labels string. Locations are computed * relative to the viewRect rectangle. */ private String layoutMenuItem(FontMetrics fm, String text, FontMetrics fmAccel, String acceleratorText, Icon icon, Icon checkIcon, Icon arrowIcon, int verticalAlignment, int horizontalAlignment, int verticalTextPosition, int horizontalTextPosition, Rectangle viewRectangle, Rectangle iconRectangle, Rectangle textRectangle, Rectangle acceleratorRectangle, Rectangle checkIconRectangle, Rectangle arrowIconRectangle, int textIconGap, int menuItemGap) { SwingUtilities.layoutCompoundLabel(menuItem, fm, text, icon, verticalAlignment, horizontalAlignment, verticalTextPosition, horizontalTextPosition, viewRectangle, iconRectangle, textRectangle, textIconGap); /* Initialize the acceleratorText bounds rectangle textRect. If a null * or and empty String was specified we substitute "" here * and use 0,0,0,0 for acceleratorTextRect. */ if (acceleratorText == null || acceleratorText.equals("")) { acceleratorRectangle.width = acceleratorRectangle.height = 0; acceleratorText = ""; } else { acceleratorRectangle.width = SwingUtilities.computeStringWidth(fmAccel, acceleratorText); acceleratorRectangle.height = fmAccel.getHeight(); } boolean useCheckAndArrow = useCheckAndArrow(); // Initialize the checkIcon bounds rectangle's width & height. if (useCheckAndArrow) { if (checkIcon != null) { checkIconRectangle.width = checkIcon.getIconWidth(); checkIconRectangle.height = checkIcon.getIconHeight(); } else { checkIconRectangle.width = checkIconRectangle.height = 0; } // Initialize the arrowIcon bounds rectangle width & height. if (arrowIcon != null) { arrowIconRectangle.width = arrowIcon.getIconWidth(); arrowIconRectangle.height = arrowIcon.getIconHeight(); } else { arrowIconRectangle.width = arrowIconRectangle.height = 0; } } Rectangle labelRect = iconRectangle.union(textRectangle); if (isLeftToRight(menuItem)) { textRectangle.x += menuItemGap; iconRectangle.x += menuItemGap; // Position the Accelerator text rect acceleratorRectangle.x = viewRectangle.x + viewRectangle.width - arrowIconRectangle.width - menuItemGap - acceleratorRectangle.width; // Position the Check and Arrow Icons if (useCheckAndArrow) { checkIconRectangle.x = viewRectangle.x; // + menuItemGap; JGoodies: No leading gap textRectangle.x += menuItemGap + checkIconRectangle.width; iconRectangle.x += menuItemGap + checkIconRectangle.width; arrowIconRectangle.x = viewRectangle.x + viewRectangle.width - menuItemGap - arrowIconRectangle.width; } } else { textRectangle.x -= menuItemGap; iconRectangle.x -= menuItemGap; // Position the Accelerator text rect acceleratorRectangle.x = viewRectangle.x + arrowIconRectangle.width + menuItemGap; // Position the Check and Arrow Icons if (useCheckAndArrow) { // JGoodies: No trailing gap checkIconRectangle.x = viewRectangle.x + viewRectangle.width - checkIconRectangle.width; textRectangle.x -= menuItemGap + checkIconRectangle.width; iconRectangle.x -= menuItemGap + checkIconRectangle.width; arrowIconRectangle.x = viewRectangle.x + menuItemGap; } } // Align the accelerator text and the check and arrow icons vertically // with the center of the label rect. acceleratorRectangle.y = labelRect.y + labelRect.height / 2 - acceleratorRectangle.height / 2; if (useCheckAndArrow) { arrowIconRectangle.y = labelRect.y + labelRect.height / 2 - arrowIconRectangle.height / 2; checkIconRectangle.y = labelRect.y + labelRect.height / 2 - checkIconRectangle.height / 2; } /* System.out.println("Layout: text="+menuItem.getText()+"\n\tv=" +viewRect+"\n\tc="+checkIconRect+"\n\ti=" +iconRect+"\n\tt="+textRect+"\n\tacc=" +acceleratorRect+"\n\ta="+arrowIconRect+"\n"); */ return text; } /* * Returns false if the component is a JMenu and it is a top * level menu (on the menubar). */ private boolean useCheckAndArrow() { boolean isTopLevelMenu = menuItem instanceof JMenu && ((JMenu) menuItem).isTopLevelMenu(); return !isTopLevelMenu; } private static boolean isLeftToRight(Component c) { return c.getComponentOrientation().isLeftToRight(); } // Copies from 1.4.1 **************************************************** /** * Draws the background of the menu item. * Copied from 1.4.1 BasicMenuItem to make it visible to the * MenuItemLayouter * * @param g the paint graphics * @param aMenuItem menu item to be painted * @param bgColor selection background color * @since 1.4 */ private static void paintBackground(Graphics g, JMenuItem aMenuItem, Color bgColor) { ButtonModel model = aMenuItem.getModel(); if (aMenuItem.isOpaque()) { int menuWidth = aMenuItem.getWidth(); int menuHeight = aMenuItem.getHeight(); Color c = model.isArmed() || aMenuItem instanceof JMenu && model.isSelected() ? bgColor : aMenuItem.getBackground(); Color oldColor = g.getColor(); g.setColor(c); g.fillRect(0, 0, menuWidth, menuHeight); g.setColor(oldColor); } } /** * Renders the text of the current menu item. *

* @param g graphics context * @param aMenuItem menu item to render * @param textRectangle bounding rectangle for rendering the text * @param text string to render * @since 1.4 */ private void paintText(Graphics g, JMenuItem aMenuItem, Rectangle textRectangle, String text) { ButtonModel model = aMenuItem.getModel(); FontMetrics fm = g.getFontMetrics(); int mnemIndex = aMenuItem.getDisplayedMnemonicIndex(); if (isMnemonicHidden()) { mnemIndex = -1; } if (!model.isEnabled()) { if (!disabledTextHasShadow()) { // *** paint the text disabled g.setColor(UIManager.getColor("MenuItem.disabledForeground")); RenderingUtils.drawStringUnderlineCharAt(aMenuItem, g, text, mnemIndex, textRectangle.x, textRectangle.y + fm.getAscent()); } else { // *** paint the text disabled with a shadow g.setColor(aMenuItem.getBackground().brighter()); RenderingUtils.drawStringUnderlineCharAt(aMenuItem, g, text, mnemIndex, textRectangle.x, textRectangle.y + fm.getAscent()); g.setColor(aMenuItem.getBackground().darker()); RenderingUtils.drawStringUnderlineCharAt(aMenuItem, g, text, mnemIndex, textRectangle.x - 1, textRectangle.y + fm.getAscent() - 1); } } else { // *** paint the text normally if (model.isArmed()|| aMenuItem instanceof JMenu && model.isSelected()) { g.setColor(selectionForeground); // Uses protected field. } RenderingUtils.drawStringUnderlineCharAt(aMenuItem, g, text, mnemIndex, textRectangle.x, textRectangle.y + fm.getAscent()); } } protected boolean isMnemonicHidden() { return false; } protected boolean disabledTextHasShadow() { return false; } /** * Checks and answers if the parent menu indicates that we should use no icons. */ private boolean hideIcons() { Component parent = menuItem.getParent(); if (!(parent instanceof JPopupMenu)) { return false; } JPopupMenu popupMenu = (JPopupMenu) parent; Object value = popupMenu.getClientProperty(Options.NO_ICONS_KEY); if (value == null) { Component invoker = popupMenu.getInvoker(); if (invoker != null && invoker instanceof JMenu) { value = ((JMenu) invoker).getClientProperty(Options.NO_ICONS_KEY); } } return Boolean.TRUE.equals(value); } /** * Used as a placeholder if icons are disabled. */ private static class NullIcon implements Icon { @Override public int getIconWidth() { return 0; } @Override public int getIconHeight() { return 0; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { // The NullIcon doesn't paint anything. } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/0000755000175000017500000000000012054224066023020 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticSpinnerUI.java0000644000175000017500000001545111731047366027074 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Component; import java.awt.Insets; import java.awt.LayoutManager; import javax.swing.*; import javax.swing.border.EmptyBorder; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicSpinnerUI; import com.jgoodies.looks.common.ExtBasicSpinnerLayout; /** * The JGoodies Plastic Look&Feel implementation of {@code SpinnerUI}. * Configures the default editor to adjust font baselines and component * bounds. Also, changes the border of the buttons and the size of the arrows. * * @author Karsten Lentzsch * @version $Revision: 1.13 $ */ public class PlasticSpinnerUI extends BasicSpinnerUI { public static ComponentUI createUI(JComponent b) { return new PlasticSpinnerUI(); } protected Component createArrowButton(int direction) { return new SpinnerArrowButton(direction); } /** * Create a {@code LayoutManager} that manages the {@code editor}, * {@code nextButton}, and {@code previousButton} children * of the JSpinner. These three children must be added with a constraint * that identifies their role: "Editor", "Next", and "Previous". The * default layout manager can handle the absence of any of these children. * * @return a LayoutManager for the editor, next button, and previous * button. * @see #createNextButton * @see #createPreviousButton * @see #createEditor */ @Override protected LayoutManager createLayout() { return new ExtBasicSpinnerLayout(); } /** * This method is called by installUI to get the editor component * of the {@code JSpinner}. By default it just returns * {@code JSpinner.getEditor()}. Subclasses can override * {@code createEditor} to return a component that contains * the spinner's editor or null, if they're going to handle adding * the editor to the {@code JSpinner} in an * {@code installUI} override. *

* Typically this method would be overridden to wrap the editor * with a container with a custom border, since one can't assume * that the editors border can be set directly. *

* The {@code replaceEditor} method is called when the spinners * editor is changed with {@code JSpinner.setEditor}. If you've * overriden this method, then you'll probably want to override * {@code replaceEditor} as well. * * @return the JSpinners editor JComponent, spinner.getEditor() by default * @see #installUI * @see #replaceEditor * @see JSpinner#getEditor */ @Override protected JComponent createEditor() { JComponent editor = spinner.getEditor(); configureEditorBorder(editor); return editor; } /** * Called by the {@code PropertyChangeListener} when the * {@code JSpinner} editor property changes. It's the responsibility * of this method to remove the old editor and add the new one. By * default this operation is just: *

     * spinner.remove(oldEditor);
     * spinner.add(newEditor, "Editor");
     * 
* The implementation of {@code replaceEditor} should be coordinated * with the {@code createEditor} method. * * @see #createEditor * @see #createPropertyChangeListener */ @Override protected void replaceEditor(JComponent oldEditor, JComponent newEditor) { spinner.remove(oldEditor); configureEditorBorder(newEditor); spinner.add(newEditor, "Editor"); } /** * Sets an empty border with the default text insets. */ private static void configureEditorBorder(JComponent editor) { if (editor instanceof JSpinner.DefaultEditor) { JSpinner.DefaultEditor defaultEditor = (JSpinner.DefaultEditor) editor; JTextField editorField = defaultEditor.getTextField(); Insets insets = UIManager.getInsets("Spinner.defaultEditorInsets"); editorField.setBorder(new EmptyBorder(insets)); } else if ( editor instanceof JPanel && editor.getBorder() == null && editor.getComponentCount() > 0) { JComponent editorField = (JComponent) editor.getComponent(0); Insets insets = UIManager.getInsets("Spinner.defaultEditorInsets"); editorField.setBorder(new EmptyBorder(insets)); } } /** * It differs from its superclass in that it uses the same formula as JDK * to calculate the arrow height. */ private static final class SpinnerArrowButton extends PlasticArrowButton { private SpinnerArrowButton(int direction) { super(direction, UIManager.getInt("ScrollBar.width"), true); } @Override protected int calculateArrowHeight(int height, int width) { int arrowHeight = Math.min((height - 4) / 3, (width - 4) / 3); return Math.max(arrowHeight, 3); } @Override protected int calculateArrowOffset() { return 1; } @Override protected boolean isPaintingNorthBottom() { return true; } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/package.html0000644000175000017500000000462311731047364025313 0ustar tonytony Contains the classes for the JGoodies Plastic L&Fs.

Related Documentation

For more information see: @see com.jgoodies.looks @see com.jgoodies.looks.common @see com.jgoodies.looks.plastic.theme @see com.jgoodies.looks.windows jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPBorders.java0000644000175000017500000003521511731047364027066 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.*; import javax.swing.border.AbstractBorder; import javax.swing.border.Border; import javax.swing.border.CompoundBorder; import javax.swing.plaf.BorderUIResource; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicBorders; import javax.swing.plaf.metal.MetalBorders; import javax.swing.plaf.metal.MetalLookAndFeel; import javax.swing.text.JTextComponent; /** * This class consists of a set of {@code Border}s used * by the JGoodies Plastic XP Look and Feel UI delegates. * * @author Karsten Lentzsch * @version $Revision: 1.16 $ */ final class PlasticXPBorders { private PlasticXPBorders() { // Overrides default constructor; prevents instantiation. } // Accessing and Creating Borders *************************************** private static Border comboBoxArrowButtonBorder; private static Border comboBoxEditorBorder; private static Border scrollPaneBorder; private static Border textFieldBorder; private static Border spinnerBorder; private static Border rolloverButtonBorder; /* * Returns a border instance for a {@code JButton}. */ static Border getButtonBorder(Insets buttonMargin) { return new BorderUIResource.CompoundBorderUIResource( new XPButtonBorder(buttonMargin), new BasicBorders.MarginBorder()); } /* * Returns a border instance for a {@code JComboBox}'s arrow button. */ static Border getComboBoxArrowButtonBorder() { if (comboBoxArrowButtonBorder == null) { comboBoxArrowButtonBorder = new CompoundBorder( // No UIResource new XPComboBoxArrowButtonBorder(), new BasicBorders.MarginBorder()); } return comboBoxArrowButtonBorder; } /* * Returns a border instance for a {@code JComboBox}'s editor. */ static Border getComboBoxEditorBorder() { if (comboBoxEditorBorder == null) { comboBoxEditorBorder = new CompoundBorder( // No UIResource new XPComboBoxEditorBorder(), new BasicBorders.MarginBorder()); } return comboBoxEditorBorder; } /* * Returns a border instance for a {@code JScrollPane}. */ static Border getScrollPaneBorder() { if (scrollPaneBorder == null) { scrollPaneBorder = new XPScrollPaneBorder(); } return scrollPaneBorder; } /* * Returns a border instance for a {@code JTextField}. */ static Border getTextFieldBorder() { if (textFieldBorder == null) { textFieldBorder = new BorderUIResource.CompoundBorderUIResource( new XPTextFieldBorder(), new BasicBorders.MarginBorder()); } return textFieldBorder; } /* * Returns a border instance for a {@code JToggleButton}. */ static Border getToggleButtonBorder(Insets buttonMargin) { return new BorderUIResource.CompoundBorderUIResource( new XPButtonBorder(buttonMargin), new BasicBorders.MarginBorder()); } /* * Returns a border instance for a {@code JSpinner}. */ static Border getSpinnerBorder() { if (spinnerBorder == null) { spinnerBorder = new XPSpinnerBorder(); } return spinnerBorder; } /** * Returns a rollover border for buttons in a {@code JToolBar}. * * @return the lazily created rollover button border */ static Border getRolloverButtonBorder() { if (rolloverButtonBorder == null) { rolloverButtonBorder = new CompoundBorder( new RolloverButtonBorder(), new PlasticBorders.RolloverMarginBorder()); } return rolloverButtonBorder; } /** * A border for XP style buttons. */ private static class XPButtonBorder extends AbstractBorder implements UIResource { protected final Insets insets; protected XPButtonBorder(Insets insets) { this.insets = insets; } @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton button = (AbstractButton) c; ButtonModel model = button.getModel(); if (!model.isEnabled()) { PlasticXPUtils.drawDisabledButtonBorder(g, x, y, w, h); return; } boolean isPressed = model.isPressed() && model.isArmed(); boolean isDefault = button instanceof JButton && ((JButton) button).isDefaultButton(); boolean isFocused = button.isFocusPainted() && button.hasFocus(); if (isPressed) { PlasticXPUtils.drawPressedButtonBorder(g, x, y, w, h); } else if (isFocused) { PlasticXPUtils.drawFocusedButtonBorder(g, x, y, w, h); } else if (isDefault) { PlasticXPUtils.drawDefaultButtonBorder(g, x, y, w, h); } else { PlasticXPUtils.drawPlainButtonBorder(g, x, y, w, h); } } @Override public Insets getBorderInsets(Component c) { return insets; } @Override public Insets getBorderInsets(Component c, Insets newInsets) { newInsets.top = insets.top; newInsets.left = insets.left; newInsets.bottom = insets.bottom; newInsets.right = insets.right; return newInsets; } } /** * A border for combo box arrow buttons. */ private static final class XPComboBoxArrowButtonBorder extends AbstractBorder implements UIResource { protected static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { PlasticComboBoxButton button = (PlasticComboBoxButton) c; JComboBox comboBox = button.getComboBox(); ButtonModel model = button.getModel(); if (!model.isEnabled()) { PlasticXPUtils.drawDisabledButtonBorder(g, x, y, w, h); } else { boolean isPressed = model.isPressed() && model.isArmed(); boolean isFocused = comboBox.hasFocus(); if (isPressed) { PlasticXPUtils.drawPressedButtonBorder(g, x, y, w, h); } else if (isFocused) { PlasticXPUtils.drawFocusedButtonBorder(g, x, y, w, h); } else { PlasticXPUtils.drawPlainButtonBorder(g, x, y, w, h); } } if (comboBox.isEditable()) { // Paint two pixel on the arrow button's left hand side. g.setColor(model.isEnabled() ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlShadow()); g.fillRect(x, y, 1, 1); g.fillRect(x, y + h-1, 1, 1); } } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border for combo box editors. */ private static final class XPComboBoxEditorBorder extends AbstractBorder { private static final Insets INSETS = new Insets(1, 1, 1, 0); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.setColor(c.isEnabled() ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlShadow()); PlasticXPUtils.drawRect(g, x, y, w+1, h-1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border for text fields. */ private static final class XPTextFieldBorder extends AbstractBorder { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { boolean enabled = c instanceof JTextComponent && c.isEnabled() && ((JTextComponent) c).isEditable() || c.isEnabled(); g.setColor(enabled ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlShadow()); PlasticXPUtils.drawRect(g, x, y, w-1, h-1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } @Override public Insets getBorderInsets(Component c, Insets newInsets) { newInsets.top = INSETS.top; newInsets.left = INSETS.left; newInsets.bottom = INSETS.bottom; newInsets.right = INSETS.right; return newInsets; } } /** * Unlike Metal we paint a simple rectangle. * Being a subclass of MetalBorders.ScrollPaneBorder ensures that * the ScrollPaneUI will update the ScrollbarsFreeStanding property. */ private static final class XPScrollPaneBorder extends MetalBorders.ScrollPaneBorder { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.setColor(c.isEnabled() ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlShadow()); PlasticXPUtils.drawRect(g, x, y, w-1, h-1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } @Override public Insets getBorderInsets(Component c, Insets newInsets) { newInsets.top = INSETS.top; newInsets.left = INSETS.left; newInsets.bottom = INSETS.bottom; newInsets.right = INSETS.right; return newInsets; } } /** * A border for {@code JSpinner} components. */ private static final class XPSpinnerBorder extends MetalBorders.ScrollPaneBorder { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.setColor(c.isEnabled() ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlShadow()); // If you change the value of arrowButtonWidth, don't forget // to change it in PlasticXPSpinnerUI#SpinnerXPArrowButton too. int arrowButtonWidth = UIManager.getInt("ScrollBar.width") - 1; w -= arrowButtonWidth; g.fillRect(x, y, w, 1); g.fillRect(x, y+1, 1, h-1); g.fillRect(x+1, y+h-1, w-1, 1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } @Override public Insets getBorderInsets(Component c, Insets newInsets) { newInsets.top = INSETS.top; newInsets.left = INSETS.left; newInsets.bottom = INSETS.bottom; newInsets.right = INSETS.right; return newInsets; } } /** * A rollover border for buttons in toolbars. */ private static final class RolloverButtonBorder extends XPButtonBorder { private RolloverButtonBorder() { super(new Insets(3, 3, 3, 3)); } @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); if (!model.isEnabled()) { return; } if (!(c instanceof JToggleButton)) { if (model.isRollover() && !(model.isPressed() && !model.isArmed())) { super.paintBorder( c, g, x, y, w, h ); } return; } if (model.isRollover()) { if (model.isPressed() && model.isArmed()) { PlasticXPUtils.drawPressedButtonBorder(g, x, y, w, h); } else { PlasticXPUtils.drawPlainButtonBorder(g, x, y, w, h); } } else if (model.isSelected()) { PlasticXPUtils.drawPressedButtonBorder(g, x, y, w, h); } } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticIconFactory.java0000644000175000017500000002445411731047364027441 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.io.Serializable; import javax.swing.*; import javax.swing.plaf.UIResource; import javax.swing.plaf.metal.MetalLookAndFeel; /** * Factory class that vends {@code Icon}s for the * JGoodies Plastic look and feel. * These icons are used extensively in Plastic via the defaults mechanism. * While other look and feels often use GIFs for icons, creating icons * in code facilitates switching to other themes. *

* Each method in this class returns either an {@code Icon} or {@code null}, * where {@code null} implies that there is no default icon. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ final class PlasticIconFactory { private PlasticIconFactory() { // Overrides default constructor; prevents instantiation. } // Helper method utilized by the CheckBoxIcon and the CheckBoxMenuItemIcon. private static void drawCheck(Graphics g, int x, int y) { g.translate(x, y); g.drawLine(3, 5, 3, 5); g.fillRect(3, 6, 2, 2); g.drawLine(4, 8, 9, 3); g.drawLine(5, 8, 9, 4); g.drawLine(5, 9, 9, 5); g.translate(-x, -y); } private static class CheckBoxIcon implements Icon, UIResource, Serializable { private static final int SIZE = 13; @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { JCheckBox cb = (JCheckBox) c; ButtonModel model = cb.getModel(); if (model.isEnabled()) { if (cb.isBorderPaintedFlat()) { g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawRect(x, y, SIZE - 2, SIZE - 2); // inside box g.setColor(PlasticLookAndFeel.getControlHighlight()); g.fillRect(x+1, y+1, SIZE-3, SIZE-3); } else if (model.isPressed() && model.isArmed()) { g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(x, y, SIZE - 1, SIZE - 1); PlasticUtils.drawPressed3DBorder(g, x, y, SIZE, SIZE); } else { PlasticUtils.drawFlush3DBorder(g, x, y, SIZE, SIZE); } g.setColor(MetalLookAndFeel.getControlInfo()); } else { g.setColor(MetalLookAndFeel.getControlShadow()); g.drawRect(x, y, SIZE - 2, SIZE - 2); } if (model.isSelected()) { drawCheck(g, x, y); } } } private static class CheckBoxMenuItemIcon implements Icon, UIResource, Serializable { private static final int SIZE = 13; @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { JMenuItem b = (JMenuItem) c; if (b.isSelected()) { drawCheck(g, x, y + 1); } } } private static class RadioButtonMenuItemIcon implements Icon, UIResource, Serializable { private static final int SIZE = 13; @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { JMenuItem b = (JMenuItem) c; if (b.isSelected()) { drawDot(g, x, y); } } private static void drawDot(Graphics g, int x, int y) { g.translate(x, y); g.drawLine(5, 4, 8, 4); g.fillRect(4, 5, 6, 4); g.drawLine(5, 9, 8, 9); g.translate(-x, -y); } } private static class MenuArrowIcon implements Icon, UIResource, Serializable { private static final int WIDTH = 4; private static final int HEIGHT = 8; @Override public void paintIcon( Component c, Graphics g, int x, int y ) { JMenuItem b = (JMenuItem) c; g.translate( x, y ); if (PlasticUtils.isLeftToRight(b) ) { g.drawLine( 0, 0, 0, 7 ); g.drawLine( 1, 1, 1, 6 ); g.drawLine( 2, 2, 2, 5 ); g.drawLine( 3, 3, 3, 4 ); } else { g.drawLine( 4, 0, 4, 7 ); g.drawLine( 3, 1, 3, 6 ); g.drawLine( 2, 2, 2, 5 ); g.drawLine( 1, 3, 1, 4 ); } g.translate( -x, -y ); } @Override public int getIconWidth() { return WIDTH; } @Override public int getIconHeight() { return HEIGHT; } } /** * Paints a minus sign button icon used in trees. * Uses a white background, gray border, and black foreground. */ private static class ExpandedTreeIcon implements Icon, Serializable { protected static final int SIZE = 9; protected static final int HALF_SIZE = 4; @Override public void paintIcon(Component c, Graphics g, int x, int y) { g.setColor(Color.WHITE); g.fillRect(x, y, SIZE - 1, SIZE - 1); g.setColor(Color.GRAY); g.drawRect(x, y, SIZE - 1, SIZE - 1); g.setColor(Color.BLACK); g.drawLine(x + 2, y + HALF_SIZE, x + SIZE - 3, y + HALF_SIZE); } @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } } /** * The plus sign button icon used in trees. */ private static class CollapsedTreeIcon extends ExpandedTreeIcon { @Override public void paintIcon(Component c, Graphics g, int x, int y) { super.paintIcon(c, g, x, y); g.drawLine(x + HALF_SIZE, y + 2, x + HALF_SIZE, y + SIZE - 3); } } /** * The arrow button used in comboboxes. */ private static class ComboBoxButtonIcon implements Icon, Serializable { @Override public void paintIcon(Component c, Graphics g, int x, int y) { JComponent component = (JComponent) c; int iconWidth = getIconWidth(); g.translate(x, y); g.setColor( component.isEnabled() ? MetalLookAndFeel.getControlInfo() : MetalLookAndFeel.getControlShadow() ); g.drawLine( 0, 0, iconWidth - 1, 0 ); g.drawLine( 1, 1, 1 + iconWidth - 3, 1 ); g.drawLine( 2, 2, 2 + iconWidth - 5, 2 ); g.drawLine( 3, 3, 3 + iconWidth - 7, 3 ); /* int startY = (((h + 1) - arrowHeight) / 2) + arrowHeight - 1; int startX = (w / 2); // System.out.println( "startX2 :" + startX + " startY2 :"+startY); for (int line = 0; line < arrowHeight; line++) { g.drawLine( startX - line, startY - line, startX + line + 1, startY - line); }*/ g.translate( -x, -y ); } @Override public int getIconWidth() { return 8; } @Override public int getIconHeight() { return 4; } } // Cached Access to Icons *********************************************************** private static Icon checkBoxIcon; private static Icon checkBoxMenuItemIcon; private static Icon radioButtonMenuItemIcon; private static Icon menuArrowIcon; private static Icon expandedTreeIcon; private static Icon collapsedTreeIcon; private static Icon comboBoxButtonIcon; /** * Answers an {@code Icon} used for {@code JCheckBox}es. */ static Icon getCheckBoxIcon() { if (checkBoxIcon == null) { checkBoxIcon = new CheckBoxIcon(); } return checkBoxIcon; } /** * Answers an {@code Icon} used for {@code JCheckButtonMenuItem}s. */ static Icon getCheckBoxMenuItemIcon() { if (checkBoxMenuItemIcon == null) { checkBoxMenuItemIcon = new CheckBoxMenuItemIcon(); } return checkBoxMenuItemIcon; } /** * Answers an {@code Icon} used for {@code JRadioButtonMenuItem}s. */ static Icon getRadioButtonMenuItemIcon() { if (radioButtonMenuItemIcon == null) { radioButtonMenuItemIcon = new RadioButtonMenuItemIcon(); } return radioButtonMenuItemIcon; } /** * Answers an {@code Icon} used for arrows in {@code JMenu}s. */ static Icon getMenuArrowIcon() { if (menuArrowIcon == null) { menuArrowIcon = new MenuArrowIcon(); } return menuArrowIcon; } /** * Answers an {@code Icon} used in {@code JTree}s. */ static Icon getExpandedTreeIcon() { if (expandedTreeIcon == null) { expandedTreeIcon = new ExpandedTreeIcon(); } return expandedTreeIcon; } /** * Answers an {@code Icon} used in {@code JTree}s. */ static Icon getCollapsedTreeIcon() { if (collapsedTreeIcon == null) { collapsedTreeIcon = new CollapsedTreeIcon(); } return collapsedTreeIcon; } /** * Answers an {@code Icon} used in {@code JComboBox}es. */ static Icon getComboBoxButtonIcon() { if (comboBoxButtonIcon == null) { comboBoxButtonIcon = new ComboBoxButtonIcon(); } return comboBoxButtonIcon; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticTheme.java0000644000175000017500000001424011731047364026253 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.FontUIResource; import javax.swing.plaf.metal.DefaultMetalTheme; import com.jgoodies.looks.FontPolicy; import com.jgoodies.looks.FontSet; /** * Unlike its superclass this theme class has relaxed access. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ public abstract class PlasticTheme extends DefaultMetalTheme { // Default 3D Effect Colors ********************************************* public static final Color DARKEN_START = new Color( 0, 0, 0, 0); public static final Color DARKEN_STOP = new Color( 0, 0, 0, 64); public static final Color LT_DARKEN_STOP = new Color( 0, 0, 0, 32); public static final Color BRIGHTEN_START = new Color(255, 255, 255, 0); public static final Color BRIGHTEN_STOP = new Color(255, 255, 255, 128); public static final Color LT_BRIGHTEN_STOP = new Color(255, 255, 255, 64); protected static final ColorUIResource WHITE = new ColorUIResource(255, 255, 255); protected static final ColorUIResource BLACK = new ColorUIResource(0, 0, 0); // Instance Fields ******************************************************** /** * Holds the set of fonts used by this theme. * It is lazily initialized using the shared FontPolicy * provided by the PlasticLookAndFeel. * * @see #getFontSet() * @see PlasticLookAndFeel#getFontPolicy() */ private FontSet fontSet; // Accessing Colors ***************************************************** @Override protected ColorUIResource getBlack() { return BLACK; } @Override protected ColorUIResource getWhite() { return WHITE; } @Override public ColorUIResource getSystemTextColor() { return getControlInfo(); } public ColorUIResource getTitleTextColor() { return getPrimary1(); } @Override public ColorUIResource getMenuForeground() { return getControlInfo(); } public ColorUIResource getMenuItemBackground() { return getMenuBackground(); } public ColorUIResource getMenuItemSelectedBackground() { return getMenuSelectedBackground(); } public ColorUIResource getMenuItemSelectedForeground() { return getMenuSelectedForeground(); } public ColorUIResource getSimpleInternalFrameForeground() { return getWhite(); } public ColorUIResource getSimpleInternalFrameBackground() { return getPrimary1(); } public ColorUIResource getToggleButtonCheckColor() { return getPrimary1(); } // Accessing Fonts ****************************************************** public FontUIResource getTitleTextFont() { return getFontSet().getTitleFont(); } @Override public FontUIResource getControlTextFont() { return getFontSet().getControlFont(); } @Override public FontUIResource getMenuTextFont() { return getFontSet().getMenuFont(); } @Override public FontUIResource getSubTextFont() { return getFontSet().getSmallFont(); } @Override public FontUIResource getSystemTextFont() { return getFontSet().getControlFont(); } @Override public FontUIResource getUserTextFont() { return getFontSet().getControlFont(); } @Override public FontUIResource getWindowTitleFont() { return getFontSet().getWindowTitleFont(); } protected FontSet getFontSet() { if (fontSet == null) { FontPolicy policy = PlasticLookAndFeel.getFontPolicy(); fontSet = policy.getFontSet("Plastic", null); } return fontSet; } // Custom Equals Implementation ***************************************** /** * Plastic themes are equal if and only if their classes are the same. * * @return true if this theme is equal to the given object */ @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null) { return false; } return getClass().equals(o.getClass()); } /** * Returns this theme's hash code, the classes' hash code. * * @return this theme's hash code */ @Override public int hashCode() { return getClass().hashCode(); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticSplitPaneDivider.java0000644000175000017500000001030011731047364030410 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Graphics; import javax.swing.JButton; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; /** * Paints a single drag symbol instead of many bumps. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see PlasticSplitPaneUI */ final class PlasticSplitPaneDivider extends BasicSplitPaneDivider { PlasticSplitPaneDivider(BasicSplitPaneUI ui) { super(ui); } @Override protected JButton createLeftOneTouchButton() { JButton btn = super.createLeftOneTouchButton(); btn.setOpaque(false); return btn; } @Override protected JButton createRightOneTouchButton() { JButton btn = super.createRightOneTouchButton(); btn.setOpaque(false); return btn; } @Override public void paint(Graphics g) { if (splitPane.isOpaque()) { Color bgColor = getBackground(); if (bgColor != null) { g.setColor(bgColor); g.fillRect(0, 0, getWidth(), getHeight()); } } /* Object value = splitPane.getClientProperty("add3D"); if (value != null && value.equals(Boolean.TRUE)) { Rectangle r = new Rectangle(0, 0, size.width, size.height); FreebopUtils.addLight3DEffekt(g, r, true, false); } */ //paintDragRectangle(g); super.paint(g); } /* private void paintDragRectangle(Graphics g) { Dimension size = getSize(); int xCenter = size.width / 2; int yCenter = size.height / 2; int x = xCenter - 2; int y = yCenter - 2; int w = 4; int h = 4; Color down = UIManager.getColor("controlDkShadow"); Color up = UIManager.getColor("controlHighlight"); g.translate(x, y); g.setColor(down); g.drawLine(0, 1, 0, h - 1); // left g.drawLine(0, 0, w - 1, 0); // top g.setColor(up); g.drawLine(w - 1, 1, w - 1, h - 1); g.drawLine(1, h - 1, w - 1, h - 1); g.translate(-x, -y); super.paint(g); } private void paintDragLines(Graphics g) { Dimension size = getSize(); Color bgColor = getBackground(); if (bgColor != null) { g.setColor(bgColor); g.fillRect(0, 0, size.width, size.height); } int xCenter = size.width / 2; int yCenter = size.height / 2; int y0 = yCenter - 10; int y1 = yCenter + 10; Color dark = UIManager.getColor("controlDkShadow"); int bars = 3; g.setColor(dark); for (int i = 0; i < bars; i++) { int x = 2 * i + xCenter - bars; g.drawLine(x, y0, x, y1); } super.paint(g); } */ }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticComboBoxUI.java0000644000175000017500000005104711731047364027165 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Insets; import java.awt.LayoutManager; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.ComboBoxEditor; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JScrollBar; import javax.swing.JTextField; import javax.swing.JToolBar; import javax.swing.ListCellRenderer; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.TextUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicComboBoxRenderer; import javax.swing.plaf.basic.BasicComboBoxUI; import javax.swing.plaf.basic.BasicComboPopup; import javax.swing.plaf.basic.ComboPopup; import javax.swing.plaf.metal.MetalComboBoxUI; import javax.swing.plaf.metal.MetalScrollBarUI; import javax.swing.plaf.metal.MetalTextFieldUI; import com.jgoodies.looks.Options; /** * The JGoodies Plastic Look and Feel implementation of {@code ComboBoxUI}. * Has the same height as text fields - unless you change the renderer.

* * Also, this class offers to use the combo's popup prototype display value * to compute the popup menu width. This is an optional feature of * the JGoodies Plastic L&fs implemented via a client property key. * * @author Karsten Lentzsch * @version $Revision: 1.19 $ * * @see Options#COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY */ public class PlasticComboBoxUI extends MetalComboBoxUI { static final String CELL_EDITOR_KEY = "JComboBox.isTableCellEditor"; /** * Used to determine the minimum height of a text field, * which in turn is used to answer the combobox's minimum height. */ private static final JTextField PHANTOM = new JTextField("Phantom"); /** * Different Plastic L&fs may need different phantom UIs. * Therefore we store the LookAndFeel class and update the * phantom UI whenever the Look&Feel changes. */ private static Class phantomLafClass; private boolean tableCellEditor; private PropertyChangeListener propertyChangeListener; // ************************************************************************ public static ComponentUI createUI(JComponent b) { ensurePhantomHasPlasticUI(); return new PlasticComboBoxUI(); } /** * Ensures that the phantom text field has a Plastic text field UI. */ private static void ensurePhantomHasPlasticUI() { TextUI ui = PHANTOM.getUI(); Class lafClass = UIManager.getLookAndFeel().getClass(); if ( (phantomLafClass != lafClass) || !(ui instanceof MetalTextFieldUI)) { phantomLafClass = lafClass; PHANTOM.updateUI(); } } // ************************************************************************ @Override public void installUI( JComponent c ) { super.installUI(c); tableCellEditor = isTableCellEditor(); } @Override protected void installListeners() { super.installListeners(); propertyChangeListener = new TableCellEditorPropertyChangeHandler(); comboBox.addPropertyChangeListener(CELL_EDITOR_KEY, propertyChangeListener); } @Override protected void uninstallListeners() { super.uninstallListeners(); comboBox.removePropertyChangeListener(CELL_EDITOR_KEY, propertyChangeListener); propertyChangeListener = null; } // Overridden Superclass Configuration ************************************ /** * Creates and answers the arrow button that is to be used in the combo box.

* * Overridden to use a button that can have a pseudo 3D effect. */ @Override protected JButton createArrowButton() { return new PlasticComboBoxButton( comboBox, PlasticIconFactory.getComboBoxButtonIcon(), comboBox.isEditable(), currentValuePane, listBox); } /** * Creates the editor that is to be used in editable combo boxes. * This method only gets called if a custom editor has not already * been installed in the JComboBox. */ @Override protected ComboBoxEditor createEditor() { return new PlasticComboBoxEditor.UIResource(tableCellEditor); } /** * Creates a layout manager for managing the components which * make up the combo box.

* * Overriden to use a layout that has a fixed width arrow button. * * @return an instance of a layout manager */ @Override protected LayoutManager createLayoutManager() { return new PlasticComboBoxLayoutManager(); } @Override protected ComboPopup createPopup() { return new PlasticComboPopup(comboBox); } /** * Creates the default renderer that will be used in a non-editiable combo * box. A default renderer will used only if a renderer has not been * explicitly set with {@code setRenderer}.

* * This method differs from the superclass implementation * in that it uses an empty border with wider left and right margins * of 2 pixels instead of 1. * * @return a {@code ListCellRender} used for the combo box * @see javax.swing.JComboBox#setRenderer */ @Override protected ListCellRenderer createRenderer() { if (tableCellEditor) { return super.createRenderer(); } BasicComboBoxRenderer renderer = new BasicComboBoxRenderer.UIResource(); renderer.setBorder(UIManager.getBorder("ComboBox.rendererBorder")); return renderer; } /** * The minumum size is the size of the display area plus insets plus the button. */ @Override public Dimension getMinimumSize(JComponent c) { if (!isMinimumSizeDirty) { return new Dimension(cachedMinimumSize); } Dimension size = getDisplaySize(); Insets insets = getInsets(); size.height += insets.top + insets.bottom; if (comboBox.isEditable()) { Insets editorBorderInsets = UIManager.getInsets("ComboBox.editorBorderInsets"); size.width += editorBorderInsets.left + editorBorderInsets.right; //size.height += editorBorderInsets.top + editorBorderInsets.bottom; // The combo editor benefits from extra space for the caret. // To make editable and non-editable equally wide, // we always add 1 pixel. size.width += 1; } else if (arrowButton != null) { Insets arrowButtonInsets = arrowButton.getInsets(); size.width += arrowButtonInsets.left; } int buttonWidth = getEditableButtonWidth(); size.width += insets.left + insets.right + buttonWidth; // Honor corrections made in #paintCurrentValue ListCellRenderer renderer = comboBox.getRenderer(); if (renderer instanceof JComponent) { JComponent component = (JComponent) renderer; Insets rendererInsets = component.getInsets(); Insets editorInsets = UIManager.getInsets("ComboBox.editorInsets"); int offsetLeft = Math.max(0, editorInsets.left - rendererInsets.left); int offsetRight = Math.max(0, editorInsets.right - rendererInsets.right); // int offsetTop = Math.max(0, editorInsets.top - rendererInsets.top); // int offsetBottom = Math.max(0, editorInsets.bottom - rendererInsets.bottom); size.width += offsetLeft + offsetRight; //size.height += offsetTop + offsetBottom; } // The height is oriented on the JTextField height Dimension textFieldSize = PHANTOM.getMinimumSize(); size.height = Math.max(textFieldSize.height, size.height); cachedMinimumSize.setSize(size.width, size.height); isMinimumSizeDirty = false; return new Dimension(size); } /** * Delegates to #getMinimumSize(Component). * Overridden to return the same result in JDK 1.5 as in JDK 1.4. */ @Override public Dimension getPreferredSize(JComponent c) { return getMinimumSize(c); } /** * Returns the area that is reserved for drawing the currently selected item. */ @Override protected Rectangle rectangleForCurrentValue() { int width = comboBox.getWidth(); int height = comboBox.getHeight(); Insets insets = getInsets(); int buttonWidth = getEditableButtonWidth(); if (arrowButton != null) { buttonWidth = arrowButton.getWidth(); } if (comboBox.getComponentOrientation().isLeftToRight()) { return new Rectangle( insets.left, insets.top, width - (insets.left + insets.right + buttonWidth), height - (insets.top + insets.bottom)); } return new Rectangle( insets.left + buttonWidth, insets.top , width - (insets.left + insets.right + buttonWidth), height - (insets.top + insets.bottom)); } // Painting *************************************************************** @Override public void update(Graphics g, JComponent c) { if (c.isOpaque()) { g.setColor(c.getBackground()); g.fillRect(0, 0, c.getWidth(), c.getHeight()); if (isToolBarComboBox(c)) { c.setOpaque(false); } } paint(g, c); } /** * Checks and answers if this combo is in a tool bar. * * @param c the component to check * @return true if in tool bar, false otherwise */ protected boolean isToolBarComboBox(JComponent c) { Container parent = c.getParent(); return parent != null && (parent instanceof JToolBar || parent.getParent() instanceof JToolBar); } // Helper Code ************************************************************ /** * Computes and returns the width of the arrow button in editable state. * The perceived width shall be equal to the width of a scroll bar. * Therefore we subtract a pixel that is perceived as part of the * arrow button but that is painted by the editor's border. * * @return the width of the arrow button in editable state */ static int getEditableButtonWidth() { return UIManager.getInt("ScrollBar.width") - 1; } /** * Checks and answers if this UI's combo has a client property * that indicates that the combo is used as a table cell editor. * * @return {@code true} if the table cell editor client property * is set to {@code Boolean.TRUE}, {@code false} otherwise */ private boolean isTableCellEditor() { return Boolean.TRUE.equals(comboBox.getClientProperty(CELL_EDITOR_KEY)); } // Helper Classes ********************************************************* /** * This layout manager handles the 'standard' layout of combo boxes. * It puts the arrow button to the right and the editor to the left. * If there is no editor it still keeps the arrow button to the right. * * Overriden to use a fixed arrow button width. */ private final class PlasticComboBoxLayoutManager extends MetalComboBoxUI.MetalComboBoxLayoutManager { @Override public void layoutContainer(Container parent) { JComboBox cb = (JComboBox) parent; // Use superclass behavior if the combobox is not editable. if (!cb.isEditable()) { super.layoutContainer(parent); return; } int width = cb.getWidth(); int height = cb.getHeight(); Insets insets = getInsets(); int buttonWidth = getEditableButtonWidth(); int buttonHeight = height - (insets.top + insets.bottom); if (arrowButton != null) { if (cb.getComponentOrientation().isLeftToRight()) { arrowButton.setBounds( width - (insets.right + buttonWidth), insets.top, buttonWidth, buttonHeight); } else { arrowButton.setBounds( insets.left, insets.top, buttonWidth, buttonHeight); } } if (editor != null) { editor.setBounds(rectangleForCurrentValue()); } } } // Required if we have a combobox button that does not extend MetalComboBoxButton @Override public PropertyChangeListener createPropertyChangeListener() { return new PlasticPropertyChangeListener(); } /** * Overriden to use PlasticComboBoxButton instead of a MetalComboBoxButton. * Required if we have a combobox button that does not extend MetalComboBoxButton */ private final class PlasticPropertyChangeListener extends BasicComboBoxUI.PropertyChangeHandler { @Override public void propertyChange(PropertyChangeEvent e) { super.propertyChange(e); String propertyName = e.getPropertyName(); if (propertyName.equals("editable")) { PlasticComboBoxButton button = (PlasticComboBoxButton) arrowButton; button.setIconOnly(comboBox.isEditable()); comboBox.repaint(); } else if (propertyName.equals("background")) { Color color = (Color) e.getNewValue(); arrowButton.setBackground(color); listBox.setBackground(color); } else if (propertyName.equals("foreground")) { Color color = (Color) e.getNewValue(); arrowButton.setForeground(color); listBox.setForeground(color); } } } /** * Differs from the BasicComboPopup in that it uses the standard * popmenu border and honors an optional popup prototype display value. */ private static final class PlasticComboPopup extends BasicComboPopup { private PlasticComboPopup(JComboBox combo) { super(combo); } /** * Configures the list created by #createList(). */ @Override protected void configureList() { super.configureList(); list.setForeground(UIManager.getColor("MenuItem.foreground")); list.setBackground(UIManager.getColor("MenuItem.background")); } /** * Configures the JScrollPane created by #createScroller(). */ @Override protected void configureScroller() { super.configureScroller(); scroller.getVerticalScrollBar().putClientProperty( MetalScrollBarUI.FREE_STANDING_PROP, Boolean.FALSE); } /** * Calculates the placement and size of the popup portion * of the combo box based on the combo box location and * the enclosing screen bounds. If no transformations are required, * then the returned rectangle will have the same values * as the parameters.

* * In addition to the superclass behavior, this class offers * to use the combo's popup prototype display value to compute * the popup menu width. This is an optional feature of the * JGoodies Plastic L&fs implemented via a client property key.

* * If a prototype is set, the popup width is the maximum of the * combobox width and the prototype based popup width. * For the latter the renderer is used to render the prototype. * The prototype based popup width is the prototype's width * plus the scrollbar width - if any. The scrollbar test checks * if there are more items than the combo's maximum row count. * * @param px starting x location * @param py starting y location * @param pw starting width * @param ph starting height * @return a rectangle which represents the placement and size of the popup * * @see Options#COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY * @see JComboBox#getMaximumRowCount() */ @Override protected Rectangle computePopupBounds(int px, int py, int pw, int ph) { Rectangle defaultBounds = super.computePopupBounds(px, py, pw, ph); Object popupPrototypeDisplayValue = comboBox.getClientProperty( Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY); if (popupPrototypeDisplayValue == null) { return defaultBounds; } ListCellRenderer renderer = list.getCellRenderer(); Component c = renderer.getListCellRendererComponent( list, popupPrototypeDisplayValue, -1, true, true); pw = c.getPreferredSize().width; boolean hasVerticalScrollBar = comboBox.getItemCount() > comboBox.getMaximumRowCount(); if (hasVerticalScrollBar) { // Add the scrollbar width. JScrollBar verticalBar = scroller.getVerticalScrollBar(); pw += verticalBar.getPreferredSize().width; } Rectangle prototypeBasedBounds = super.computePopupBounds(px, py, pw, ph); return prototypeBasedBounds.width > defaultBounds.width ? prototypeBasedBounds : defaultBounds; } } // Handling Combo Changes ************************************************* /** * Listens to changes in the table cell editor client property * and updates the default editor - if any - to use the correct * insets for this case. */ private final class TableCellEditorPropertyChangeHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { tableCellEditor = isTableCellEditor(); if (comboBox.getRenderer() == null || comboBox.getRenderer() instanceof UIResource) { comboBox.setRenderer(createRenderer()); } if (comboBox.getEditor() == null || comboBox.getEditor() instanceof UIResource) { comboBox.setEditor(createEditor()); } } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticToggleButtonUI.java0000644000175000017500000002026511731047366030072 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.*; import javax.swing.*; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicHTML; import javax.swing.plaf.metal.MetalToggleButtonUI; import javax.swing.text.View; /** * The JGoodies Plastic L&F implementation of {@code ToggleButtonUI}. * It differs from its superclass in that it can add a pseudo 3D effect, * and that the border can paint the focus. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public class PlasticToggleButtonUI extends MetalToggleButtonUI { private static final PlasticToggleButtonUI INSTANCE = new PlasticToggleButtonUI(); /* * Implementation note: The protected visibility prevents * the String value from being encrypted by the obfuscator. * An encrypted String key would break the client property lookup * in the #paint method below. */ protected static final String HTML_KEY = BasicHTML.propertyKey; private boolean borderPaintsFocus; public static ComponentUI createUI(JComponent b) { return INSTANCE; } /** * In addition to the superclass we check if the border paints the focus. */ @Override public void installDefaults(AbstractButton b) { super.installDefaults(b); borderPaintsFocus = Boolean.TRUE.equals( UIManager.get("ToggleButton.borderPaintsFocus")); } // Painting *************************************************************** @Override public void update(Graphics g, JComponent c) { AbstractButton b = (AbstractButton) c; if (c.isOpaque()) { if (isToolBarButton(b)) { c.setOpaque(false); } else if (b.isContentAreaFilled()) { g.setColor(c.getBackground()); g.fillRect(0, 0, c.getWidth(), c.getHeight()); if (is3D(b)) { Rectangle r = new Rectangle( 1, 1, c.getWidth() - 2, c.getHeight() - 1); PlasticUtils.add3DEffekt(g, r); } } } paint(g, c); } /** * Paints the focus close to the button's border. */ @Override protected void paintFocus( Graphics g, AbstractButton b, Rectangle viewRect, Rectangle textRect, Rectangle iconRect) { if (borderPaintsFocus) { return; } boolean isDefault = false; int topLeftInset = isDefault ? 3 : 2; int width = b.getWidth() - 1 - topLeftInset * 2; int height = b.getHeight() - 1 - topLeftInset * 2; g.setColor(getFocusColor()); g.drawRect(topLeftInset, topLeftInset, width - 1, height - 1); } /** * Unlike the BasicToggleButtonUI.paint, we don't fill the content area; * this has been done by the update method before. */ @Override public void paint(Graphics g, JComponent c) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); Dimension size = b.getSize(); FontMetrics fm = g.getFontMetrics(); Insets i = c.getInsets(); Rectangle viewRect = new Rectangle(size); viewRect.x += i.left; viewRect.y += i.top; viewRect.width -= (i.right + viewRect.x); viewRect.height -= (i.bottom + viewRect.y); Rectangle iconRect = new Rectangle(); Rectangle textRect = new Rectangle(); Font f = c.getFont(); g.setFont(f); // layout the text and icon String text = SwingUtilities.layoutCompoundLabel( c, fm, b.getText(), b.getIcon(), b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), viewRect, iconRect, textRect, b.getText() == null ? 0 : b.getIconTextGap()); g.setColor(b.getBackground()); if (model.isArmed() && model.isPressed() || model.isSelected()) { paintButtonPressed(g, b); } /*else if (b.isOpaque() && b.isContentAreaFilled() && !(is3D(b))) { g.fillRect(0, 0, size.width, size.height); Insets insets = b.getInsets(); Insets margin = b.getMargin(); g.fillRect(insets.left - margin.left, insets.top - margin.top, size.width - (insets.left-margin.left) - (insets.right - margin.right), size.height - (insets.top-margin.top) - (insets.bottom - margin.bottom)); }*/ // Paint the Icon if (b.getIcon() != null) { paintIcon(g, b, iconRect); } // Draw the Text if (text != null && !text.equals("")) { View v = (View) c.getClientProperty(HTML_KEY); if (v != null) { v.paint(g, textRect); } else { paintText(g, c, textRect, text); } } // draw the dashed focus line. if (b.isFocusPainted() && b.hasFocus()) { paintFocus(g, b, viewRect, textRect, iconRect); } } // Private Helper Code ************************************************************** /** * Checks and answers if this is button is in a tool bar. * * @param b the button to check * @return true if in tool bar, false otherwise */ protected boolean isToolBarButton(AbstractButton b) { Container parent = b.getParent(); return parent != null && (parent instanceof JToolBar || parent.getParent() instanceof JToolBar); } /** * Checks and answers if this button shall use a pseudo 3D effect. * * @param b the button to check * @return true indicates a 3D effect, false flat */ protected boolean is3D(AbstractButton b) { if (PlasticUtils.force3D(b)) { return true; } if (PlasticUtils.forceFlat(b)) { return false; } ButtonModel model = b.getModel(); return PlasticUtils.is3D("ToggleButton.") && b.isBorderPainted() && model.isEnabled() && !model.isPressed(); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPToolBarUI.java0000644000175000017500000000467311731047364027272 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.JComponent; import javax.swing.border.Border; import javax.swing.plaf.ComponentUI; /** * The JGoodies PlasticXP Look and Feel implementation of {@code ToolBarUI}. * It differs from its superclass in that it uses rollover borders with rounded * corners.

* * Thanks to Andrej Golovnin for his feedback and suggestions. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class PlasticXPToolBarUI extends PlasticToolBarUI { public static ComponentUI createUI(JComponent b) { return new PlasticXPToolBarUI(); } // Rollover Borders ******************************************************* @Override protected Border createRolloverBorder() { return PlasticXPBorders.getRolloverButtonBorder(); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/ActiveBasicButtonListener.java0000644000175000017500000000555311731047364030757 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.event.MouseEvent; import javax.swing.AbstractButton; import javax.swing.plaf.basic.BasicButtonListener; /** * Unlike its superclass this class sets the armed state when the mouse * is over the button, where the 1.4 superclass sets the armed state only * if the button is pressed. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ final class ActiveBasicButtonListener extends BasicButtonListener { private boolean mouseOver; ActiveBasicButtonListener(AbstractButton b) { super(b); mouseOver = false; } @Override public void mouseEntered(MouseEvent e){ super.mouseEntered(e); AbstractButton button = (AbstractButton) e.getSource(); button.getModel().setArmed(mouseOver = true); } @Override public void mouseExited(MouseEvent e){ super.mouseExited(e); AbstractButton button = (AbstractButton) e.getSource(); button.getModel().setArmed(mouseOver = false); } @Override public void mouseReleased(MouseEvent e){ super.mouseReleased(e); AbstractButton button = (AbstractButton) e.getSource(); button.getModel().setArmed(mouseOver); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticTextFieldUI.java0000644000175000017500000000506411731047364027343 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalTextFieldUI; import javax.swing.text.Caret; /** * The JGoodies Plastic L&F implementation of {@code TextFieldUI}. * In addition to its superclass MetalTextFieldUI, it can use a caret * that selects all text when the field gains focus via the keyboard. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticTextFieldUI extends MetalTextFieldUI { /** * Creates a UI for a JTextField. * * @param c the text field * @return the UI */ public static ComponentUI createUI(JComponent c) { return new PlasticTextFieldUI(); } /** * Creates the caret for a field. * * @return the caret */ @Override protected Caret createCaret() { return new PlasticFieldCaret(); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticFormattedTextFieldUI.java0000644000175000017500000000515311731047364031210 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicFormattedTextFieldUI; import javax.swing.text.Caret; /** * The JGoodies Plastic L&F implementation of {@code TextFieldUI}. * In addition to its superclass MetalTextFieldUI, it can use a caret * that selects all text when the field gains focus via the keyboard. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class PlasticFormattedTextFieldUI extends BasicFormattedTextFieldUI { /** * Creates a UI for a JFormattedTextField. * * @param c the formatted text field * @return the UI */ public static ComponentUI createUI(JComponent c) { return new PlasticFormattedTextFieldUI(); } /** * Creates the caret for a field. * * @return the caret */ @Override protected Caret createCaret() { return new PlasticFieldCaret(); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticBumps.java0000644000175000017500000002000111731047364026267 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.Image; import java.awt.image.BufferedImage; import java.awt.image.DataBuffer; import java.awt.image.IndexColorModel; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.swing.Icon; /** * Creates, adjusts and paints the bumps used in the JGoodies Plastic L&Fs. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ final class PlasticBumps implements Icon { private static final List BUFFERS = new ArrayList(); private int xBumps; private int yBumps; private Color topColor; private Color shadowColor; private Color backColor; private BumpBuffer buffer; // Instance Creation ***************************************************** PlasticBumps(int width, int height, Color newTopColor, Color newShadowColor, Color newBackColor) { setBumpArea(width, height); setBumpColors(newTopColor, newShadowColor, newBackColor); } // Package API ************************************************************ void setBumpArea(int width, int height) { xBumps = width / 2; yBumps = height / 2; } void setBumpColors(Color newTopColor, Color newShadowColor, Color newBackColor) { topColor = newTopColor; shadowColor = newShadowColor; backColor = newBackColor; } // Icon Implementation **************************************************** @Override public void paintIcon(Component c, Graphics g, int x, int y) { GraphicsConfiguration gc = g instanceof Graphics2D ? (GraphicsConfiguration) ((Graphics2D) g).getDeviceConfiguration() : null; buffer = getBuffer(gc, topColor, shadowColor, backColor); int bufferWidth = BumpBuffer.getImageSize().width; int bufferHeight = BumpBuffer.getImageSize().height; int iconWidth = getIconWidth(); int iconHeight = getIconHeight(); int x2 = x + iconWidth; int y2 = y + iconHeight; int savex = x; while (y < y2) { int h = Math.min(y2 - y, bufferHeight); for (x = savex; x < x2; x += bufferWidth) { int w = Math.min(x2 - x, bufferWidth); g.drawImage(buffer.getImage(), x, y, x + w, y + h, 0, 0, w, h, null); } y += bufferHeight; } } @Override public int getIconWidth() { return xBumps * 2; } @Override public int getIconHeight() { return yBumps * 2; } // Helper Code ************************************************************ private BumpBuffer getBuffer(GraphicsConfiguration gc, Color aTopColor, Color aShadowColor, Color aBackColor) { if (buffer != null && buffer.hasSameConfiguration(gc, aTopColor, aShadowColor, aBackColor)) { return buffer; } BumpBuffer result = null; for (Iterator iterator = BUFFERS.iterator(); iterator.hasNext();) { BumpBuffer aBuffer = (BumpBuffer) iterator.next(); if (aBuffer.hasSameConfiguration(gc, aTopColor, aShadowColor, aBackColor)) { result = aBuffer; break; } } if (result == null) { result = new BumpBuffer(gc, topColor, shadowColor, backColor); BUFFERS.add(result); } return result; } // Helper Class *********************************************************** private static final class BumpBuffer { private static final int IMAGE_SIZE = 64; private static Dimension imageSize = new Dimension(IMAGE_SIZE, IMAGE_SIZE); transient Image image; private final Color topColor; private final Color shadowColor; private final Color backColor; private final GraphicsConfiguration gc; BumpBuffer( GraphicsConfiguration gc, Color aTopColor, Color aShadowColor, Color aBackColor) { this.gc = gc; topColor = aTopColor; shadowColor = aShadowColor; backColor = aBackColor; createImage(); fillBumpBuffer(); } boolean hasSameConfiguration( GraphicsConfiguration aGC, Color aTopColor, Color aShadowColor, Color aBackColor) { if (gc != null) { if (!gc.equals(aGC)) { return false; } } else if (aGC != null) { return false; } return topColor.equals(aTopColor) && shadowColor.equals(aShadowColor) && backColor.equals(aBackColor); } /** * Returns the Image containing the bumps appropriate for the passed in * {@code GraphicsConfiguration}. */ Image getImage() { return image; } static Dimension getImageSize() { return imageSize; } /** * Paints the bumps into the current image. */ private void fillBumpBuffer() { Graphics g = image.getGraphics(); g.setColor(backColor); g.fillRect(0, 0, IMAGE_SIZE, IMAGE_SIZE); g.setColor(topColor); for (int x = 0; x < IMAGE_SIZE; x += 4) { for (int y = 0; y < IMAGE_SIZE; y += 4) { g.drawLine(x, y, x, y); g.drawLine(x + 2, y + 2, x + 2, y + 2); } } g.setColor(shadowColor); for (int x = 0; x < IMAGE_SIZE; x += 4) { for (int y = 0; y < IMAGE_SIZE; y += 4) { g.drawLine(x + 1, y + 1, x + 1, y + 1); g.drawLine(x + 3, y + 3, x + 3, y + 3); } } g.dispose(); } /** * Creates the image appropriate for the passed in * {@code GraphicsConfiguration}, which may be null. */ private void createImage() { if (gc != null) { image = gc.createCompatibleImage(IMAGE_SIZE, IMAGE_SIZE); } else { int[] cmap = { backColor.getRGB(), topColor.getRGB(), shadowColor.getRGB()}; IndexColorModel icm = new IndexColorModel(8, 3, cmap, 0, false, -1, DataBuffer.TYPE_BYTE); image = new BufferedImage(IMAGE_SIZE, IMAGE_SIZE, BufferedImage.TYPE_BYTE_INDEXED, icm); } } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticFileChooserUI.java0000644000175000017500000000713411731047364027655 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.io.File; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.UIManager; import javax.swing.filechooser.FileSystemView; import javax.swing.filechooser.FileView; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalFileChooserUI; /** * The JGoodies Plastic L&F implementation of {@code FileChooserUI}. * Uses {@link FileSystemView#getSystemIcon(File)} to look up icons for files.

* * Thanks to Andrej Golovnin for his feedback and suggestions. * * @author Karsten Lentzsch * @version $Revision: 1.7 $ * * @see FileSystemView#getSystemIcon(File) */ public final class PlasticFileChooserUI extends MetalFileChooserUI { private final BasicFileView fileView = new SystemIconFileView(); public static ComponentUI createUI(JComponent c) { return new PlasticFileChooserUI((JFileChooser) c); } public PlasticFileChooserUI(JFileChooser fileChooser) { super(fileChooser); } @Override public void clearIconCache() { fileView.clearIconCache(); } @Override public FileView getFileView(JFileChooser fc) { return fileView; } /** * Unlike its superclass, this class can look up and cache * the system icon from the file chooser's file system view. */ private final class SystemIconFileView extends BasicFileView { @Override public Icon getIcon(File f) { Icon icon = getCachedIcon(f); if (icon != null) { return icon; } if (f != null && UIManager.getBoolean("FileChooser.useSystemIcons")) { icon = getFileChooser().getFileSystemView().getSystemIcon(f); } if (icon == null) { return super.getIcon(f); } cacheIcon(f, icon); return icon; } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPLookAndFeel.java0000644000175000017500000001654011731047364027611 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Insets; import javax.swing.UIDefaults; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.plaf.ColorUIResource; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.MicroLayout; /** * Intializes class and component defaults for the * JGoodies PlasticXP look&feel. * * @author Karsten Lentzsch * @version $Revision: 1.17 $ */ public class PlasticXPLookAndFeel extends Plastic3DLookAndFeel { /** * Constructs the JGoodies PlasticXP look&feel. */ public PlasticXPLookAndFeel() { // Provide an empty constructor for subclassing. } @Override public String getID() { return "JGoodies Plastic XP"; } @Override public String getName() { return "JGoodies Plastic XP"; } @Override public String getDescription() { return "The JGoodies Plastic XP Look and Feel" + " - \u00a9 2001-2012 JGoodies Karsten Lentzsch"; } /** * Initializes the PlasticXP class defaults. * Overrides the UIS for check box, radio button, and spinner. * * @param table the UIDefaults table to work with */ @Override protected void initClassDefaults(UIDefaults table) { super.initClassDefaults(table); final String uiClassnamePrefix = "com.jgoodies.looks.plastic.PlasticXP"; Object[] uiDefaults = { // Uses a smooth icon "CheckBoxUI", uiClassnamePrefix + "CheckBoxUI", // Uses a smooth icon "RadioButtonUI", uiClassnamePrefix + "RadioButtonUI", // Changed buttons "SpinnerUI", uiClassnamePrefix + "SpinnerUI", // Uses rounded rollover borders "ToolBarUI", uiClassnamePrefix + "ToolBarUI" }; table.putDefaults(uiDefaults); } /** * Initializes the PlasticXP component defaults. * * @param table the UIDefaults table to work with */ @Override protected void initComponentDefaults(UIDefaults table) { super.initComponentDefaults(table); MicroLayout microLayout = getMicroLayoutPolicy().getMicroLayout(getName(), table); Insets buttonBorderInsets = microLayout.getButtonBorderInsets(); Object buttonBorder = PlasticXPBorders.getButtonBorder(buttonBorderInsets); Object toggleButtonBorder = PlasticXPBorders.getToggleButtonBorder(buttonBorderInsets); Object checkBoxIcon = PlasticXPIconFactory.getCheckBoxIcon(); Object comboBoxButtonBorder = PlasticXPBorders.getComboBoxArrowButtonBorder(); Border comboBoxEditorBorder = PlasticXPBorders.getComboBoxEditorBorder(); Object radioButtonIcon = PlasticXPIconFactory.getRadioButtonIcon(); Object scrollPaneBorder = PlasticXPBorders.getScrollPaneBorder(); Object textFieldBorder = PlasticXPBorders.getTextFieldBorder(); Object spinnerBorder = PlasticXPBorders.getSpinnerBorder(); String radioCheckIconName = SystemUtils.IS_LOW_RESOLUTION ? "icons/RadioLight5x5.png" : "icons/RadioLight7x7.png"; Insets comboEditorInsets = microLayout.getComboBoxEditorInsets(); Insets comboEditorBorderInsets = comboBoxEditorBorder.getBorderInsets(null); int comboBorderSize = comboEditorBorderInsets.left; int comboPopupBorderSize = microLayout.getComboPopupBorderSize(); int comboRendererGap = comboEditorInsets.left + comboBorderSize - comboPopupBorderSize; Object comboRendererBorder = new EmptyBorder(1, comboRendererGap, 1, comboRendererGap); Object comboTableEditorInsets = new Insets(0, 0, 0, 0); Object[] defaults = { "Button.border", buttonBorder, "Button.borderPaintsFocus", Boolean.TRUE, "CheckBox.icon", checkBoxIcon, "CheckBox.check", getToggleButtonCheckColor(), "ComboBox.arrowButtonBorder", comboBoxButtonBorder, "ComboBox.editorBorder", comboBoxEditorBorder, "ComboBox.borderPaintsFocus", Boolean.TRUE, "ComboBox.editorBorderInsets", comboEditorBorderInsets, // Added by JGoodies "ComboBox.tableEditorInsets", comboTableEditorInsets, "ComboBox.rendererBorder", comboRendererBorder, // Added by JGoodies "FormattedTextField.border", textFieldBorder, "PasswordField.border", textFieldBorder, "Spinner.border", spinnerBorder, "ScrollPane.border", scrollPaneBorder, "Table.scrollPaneBorder", scrollPaneBorder, "RadioButton.icon", radioButtonIcon, "RadioButton.check", getToggleButtonCheckColor(), "RadioButton.interiorBackground", getControlHighlight(), "RadioButton.checkIcon", makeIcon(getClass(), radioCheckIconName), "TextField.border", textFieldBorder, "ToggleButton.border", toggleButtonBorder, "ToggleButton.borderPaintsFocus", Boolean.TRUE, "Tree.expandedIcon", makeIcon(getClass(), "icons/TreeExpanded.png"), "Tree.collapsedIcon", makeIcon(getClass(), "icons/TreeCollapsed.png") }; table.putDefaults(defaults); } private static ColorUIResource getToggleButtonCheckColor() { return getPlasticTheme().getToggleButtonCheckColor(); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticPopupMenuUI.java0000644000175000017500000001041711731047364027401 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.BoxLayout; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicPopupMenuUI; import com.jgoodies.looks.Options; import com.jgoodies.looks.common.PopupMenuLayout; /** * The JGoodies Plastic look&feel implementation of {@code PopMenuUI}. * It differs from the superclass in that it provides an option to get a * narrow border. You can set a client property * {@link Options#NO_MARGIN_KEY} to indicate that this popup menu * has a border without margin. That is useful in the special case * where the popup contains only a single component, for example * a JScrollPane. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ * * @see com.jgoodies.looks.Options#NO_MARGIN_KEY */ public final class PlasticPopupMenuUI extends BasicPopupMenuUI { private PropertyChangeListener borderListener; public static ComponentUI createUI(JComponent b) { return new PlasticPopupMenuUI(); } @Override public void installDefaults() { super.installDefaults(); installBorder(); if ( (popupMenu.getLayout() == null) || (popupMenu.getLayout() instanceof UIResource)) { popupMenu.setLayout(new PopupMenuLayout(popupMenu, BoxLayout.Y_AXIS)); } } @Override protected void installListeners() { super.installListeners(); borderListener = new BorderStyleChangeHandler(); popupMenu.addPropertyChangeListener(Options.NO_MARGIN_KEY, borderListener); } @Override protected void uninstallListeners() { popupMenu.removePropertyChangeListener(Options.NO_MARGIN_KEY, borderListener); super.uninstallListeners(); } // Narrow Border ********************************************************** private final class BorderStyleChangeHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent e) { installBorder(); } } /** * Installs a border without margin, iff the client property * {@code Options.NO_MARGIN_KEY} is set to {@code Boolean.TRUE}. */ private void installBorder() { boolean useNarrowBorder = Boolean.TRUE.equals( popupMenu.getClientProperty(Options.NO_MARGIN_KEY)); String suffix = useNarrowBorder ? "noMarginBorder" : "border"; LookAndFeel.installBorder(popupMenu, "PopupMenu." + suffix); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticComboBoxEditor.java0000644000175000017500000000575111731047364030077 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.plaf.basic.BasicComboBoxEditor; import com.jgoodies.looks.common.ComboBoxEditorTextField; /** * The default editor for editable combo boxes in the * JGoodies Plastic Look&Feel.

* * It differs from {@link javax.swing.plaf.metal.MetalComboBoxEditor} in that * the border is quite the same as for text fields: * a compound border with an inner {@code MarginBorder}. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ class PlasticComboBoxEditor extends BasicComboBoxEditor { PlasticComboBoxEditor(boolean isTableCellEditor) { editor = new ComboBoxEditorTextField(isTableCellEditor); } @Override public void setItem(Object item) { super.setItem(item); editor.selectAll(); } /** * A subclass of BasicComboBoxEditor that implements UIResource. * BasicComboBoxEditor and PlasticComboBoxEditor don't implement UIResource * directly so that applications can safely override the cellRenderer * property with BasicListCellRenderer subclasses. */ static final class UIResource extends PlasticComboBoxEditor implements javax.swing.plaf.UIResource { // Just an implementation of UIResource UIResource(boolean isTableCellEditor) { super(isTableCellEditor); } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticToolBarUI.java0000644000175000017500000001546311731047364027021 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Component; import java.awt.Container; import java.awt.Graphics; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.*; import javax.swing.border.Border; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalToolBarUI; import com.jgoodies.looks.BorderStyle; import com.jgoodies.looks.HeaderStyle; import com.jgoodies.looks.Options; /** * The JGoodies Plastic look and feel implementation of {@code ToolBarUI}.

* * Corrects the rollover borders and can handle optional {@code Border} types, * as specified by the {@code BorderStyle} or {@code HeaderStyle} * client properties. * * @author Karsten Lentzsch * @version $Revision: 1.12 $ */ public class PlasticToolBarUI extends MetalToolBarUI { private static final String PROPERTY_PREFIX = "ToolBar."; private PropertyChangeListener listener; public static ComponentUI createUI(JComponent b) { return new PlasticToolBarUI(); } // Rollover Borders ***************************************************** @Override protected Border createRolloverBorder() { return PlasticBorders.getRolloverButtonBorder(); } @Override protected void setBorderToRollover(Component c) { if (c instanceof AbstractButton) { super.setBorderToRollover(c); } else if (c instanceof Container) { Container cont = (Container) c; for (int i = 0; i < cont.getComponentCount(); i++) { super.setBorderToRollover(cont.getComponent(i)); } } } // Handling Special Borders ********************************************* /** * Installs a special border, if indicated by the {@code HeaderStyle}. */ @Override protected void installDefaults() { super.installDefaults(); installSpecialBorder(); } @Override protected void installListeners() { super.installListeners(); listener = createBorderStyleListener(); toolBar.addPropertyChangeListener(listener); } @Override protected void uninstallListeners() { toolBar.removePropertyChangeListener(listener); super.uninstallListeners(); } private PropertyChangeListener createBorderStyleListener() { return new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (prop.equals(Options.HEADER_STYLE_KEY) || prop.equals(PlasticLookAndFeel.BORDER_STYLE_KEY)) { PlasticToolBarUI.this.installSpecialBorder(); } } }; } /** * Installs a special border, if either a look-dependent * {@code BorderStyle} or a look-independent * {@code HeaderStyle} has been specified. * A look specific {@code BorderStyle} shadows * a {@code HeaderStyle}.

* * Specifying a {@code HeaderStyle} is recommend. */ private void installSpecialBorder() { String suffix; BorderStyle borderStyle = BorderStyle.from(toolBar, PlasticLookAndFeel.BORDER_STYLE_KEY); if (borderStyle == BorderStyle.EMPTY) { suffix = "emptyBorder"; } else if (borderStyle == BorderStyle.ETCHED) { suffix = "etchedBorder"; } else if (borderStyle == BorderStyle.SEPARATOR) { suffix = "separatorBorder"; } else { HeaderStyle headerStyle = HeaderStyle.from(toolBar); if (headerStyle == HeaderStyle.BOTH) { suffix = "headerBorder"; } else if (headerStyle == HeaderStyle.SINGLE && is3D()) { suffix = "etchedBorder"; } else { suffix = "border"; } } LookAndFeel.installBorder(toolBar, PROPERTY_PREFIX + suffix); } // 3D Effect ************************************************************ @Override public void update(Graphics g, JComponent c) { if (c.isOpaque()) { g.setColor(c.getBackground()); g.fillRect(0, 0, c.getWidth(), c.getHeight()); if (is3D()) { Rectangle bounds = new Rectangle(0, 0, c.getWidth(), c.getHeight()); boolean isHorizontal = ((JToolBar) c).getOrientation() == SwingConstants.HORIZONTAL; PlasticUtils.addLight3DEffekt(g, bounds, isHorizontal); } } paint(g, c); } /** * Checks and answers if we should add a pseudo 3D effect. */ private boolean is3D() { if (PlasticUtils.force3D(toolBar)) { return true; } if (PlasticUtils.forceFlat(toolBar)) { return false; } return PlasticUtils.is3D(PROPERTY_PREFIX) && (HeaderStyle.from(toolBar) != null) && (BorderStyle.from(toolBar, PlasticLookAndFeel.BORDER_STYLE_KEY) != BorderStyle.EMPTY); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPUtils.java0000644000175000017500000001525511731047366026572 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Graphics; import javax.swing.plaf.metal.MetalLookAndFeel; import com.jgoodies.looks.LookUtils; /** * Consists exclusively of static methods that provide convenience behavior. * * @author Karsten Lentzsch * @version $Revision: 1.5 $ */ public final class PlasticXPUtils { private PlasticXPUtils() { // Overrides default constructor; prevents instantiation. } /** * Draws a plain border for an xp button. */ static void drawPlainButtonBorder(Graphics g, int x, int y, int w, int h) { drawButtonBorder(g, x, y, w, h, PlasticLookAndFeel.getControl(), PlasticLookAndFeel.getControlDarkShadow(), LookUtils.getSlightlyBrighter( PlasticLookAndFeel.getControlDarkShadow(), 1.25f) ); } /** * Draws a border for a pressed xp button. */ static void drawPressedButtonBorder(Graphics g, int x, int y, int w, int h) { drawPlainButtonBorder(g, x, y, w, h); Color darkColor = translucentColor(PlasticLookAndFeel.getControlDarkShadow(), 128); Color lightColor = translucentColor(PlasticLookAndFeel.getControlHighlight(), 80); g.translate(x, y); g.setColor(darkColor); g.fillRect(2, 1, w-4, 1); g.setColor(lightColor); g.fillRect(2, h-2, w-4, 1); g.translate(-x, -y); } /** * Draws a border for a default xp button. */ static void drawDefaultButtonBorder(Graphics g, int x, int y, int w, int h) { drawPlainButtonBorder(g, x, y, w, h); drawInnerButtonDecoration(g, x, y, w, h, PlasticLookAndFeel.getPrimaryControlDarkShadow()); } /** * Draws a border for a focused xp button. */ static void drawFocusedButtonBorder(Graphics g, int x, int y, int w, int h) { drawPlainButtonBorder(g, x, y, w, h); drawInnerButtonDecoration(g, x, y, w, h, PlasticLookAndFeel.getFocusColor()); } /** * Draws a border for a disabled xp button. */ static void drawDisabledButtonBorder(Graphics g, int x, int y, int w, int h) { drawButtonBorder(g, x, y, w, h, PlasticLookAndFeel.getControl(), MetalLookAndFeel.getControlShadow(), LookUtils.getSlightlyBrighter( MetalLookAndFeel.getControlShadow())); } /** * Draws a button border for an xp button with the given colors. */ public static void drawButtonBorder( Graphics g, int x, int y, int w, int h, Color backgroundColor, Color edgeColor, Color cornerColor) { g.translate(x, y); // Edges g.setColor(edgeColor); drawRect(g, 0, 0, w-1, h-1); // Near corners g.setColor(cornerColor); g.fillRect(0, 0, 2, 2); g.fillRect(0, h-2, 2, 2); g.fillRect(w-2, 0, 2, 2); g.fillRect(w-2, h-2, 2, 2); // Corners g.setColor(backgroundColor); g.fillRect(0, 0, 1, 1); g.fillRect(0, h-1, 1, 1); g.fillRect(w-1, 0, 1, 1); g.fillRect(w-1, h-1, 1, 1); g.translate(-x, -y); } /** * Draws a button border for an xp button with the given colors. */ private static void drawInnerButtonDecoration( Graphics g, int x, int y, int w, int h, Color baseColor) { Color lightColor = translucentColor(baseColor, 90); Color mediumColor = translucentColor(baseColor, 120); Color darkColor = translucentColor(baseColor, 200); g.translate(x, y); g.setColor(lightColor); g.fillRect(2, 1, w-4, 1); g.setColor(mediumColor); g.fillRect (1, 2, 1, h-4); g.fillRect (w-2, 2, 1, h-4); drawRect(g, 2, 2, w-5, h-5); g.setColor(darkColor); g.fillRect(2, h-2, w-4, 1); g.translate(-x, -y); } /** * An optimized version of Graphics.drawRect. */ static void drawRect(Graphics g, int x, int y, int w, int h) { g.fillRect(x, y, w+1, 1); g.fillRect(x, y+1, 1, h); g.fillRect(x+1, y+h, w, 1); g.fillRect(x+w, y+1, 1, h); } /** * Returns a color that is a translucent copy of the given color. * * @param baseColor the base color * @param alpha the alpha value * @return the translucent color with specified alpha */ private static Color translucentColor(Color baseColor, int alpha) { return new Color(baseColor.getRed(), baseColor.getGreen(), baseColor.getBlue(), alpha); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPRadioButtonUI.java0000644000175000017500000000503511731047366030155 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicButtonListener; import javax.swing.plaf.metal.MetalRadioButtonUI; /** * The JGoodies PlasticXP L&F implementation of {@code RadioButtonUI}. * It differs from its superclass in that it uses a different icon * and has an active border that changes when the mouse is over. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticXPRadioButtonUI extends MetalRadioButtonUI { private static final PlasticXPRadioButtonUI INSTANCE = new PlasticXPRadioButtonUI(); public static ComponentUI createUI(JComponent b) { return INSTANCE; } @Override protected BasicButtonListener createButtonListener(AbstractButton b) { return new ActiveBasicButtonListener(b); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticTextAreaUI.java0000644000175000017500000000775611731047366027204 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.beans.PropertyChangeEvent; import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicTextAreaUI; import javax.swing.text.JTextComponent; /** * The JGoodies Plastic L&F implementation of {@code TextAreaUI}. * In addition to its superclass BasicTextAreaUI, it updates the * background colors using behavior from BasicTextFieldUI. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ public final class PlasticTextAreaUI extends BasicTextAreaUI { /** * Creates a UI for a JTextArea. * * @param c the text area * @return the UI */ public static ComponentUI createUI(JComponent c) { return new PlasticTextAreaUI(); } @Override public void installUI(JComponent c) { super.installUI(c); updateBackground((JTextComponent) c); } /** * This method gets called when a bound property is changed * on the associated JTextComponent. In addition to the superclass * behavior, this UI updates the background if the editable or * enabled property changes . * * @param evt the property change event */ @Override protected void propertyChange(PropertyChangeEvent evt) { super.propertyChange(evt); String propertyName = evt.getPropertyName(); if ( "editable".equals(propertyName) || "enabled".equals(propertyName)) { updateBackground((JTextComponent) evt.getSource()); } } private static void updateBackground(JTextComponent c) { Color background = c.getBackground(); if (!(background instanceof UIResource)) { return; } Color newColor = null; if (!c.isEnabled()) { newColor = UIManager.getColor("TextArea.disabledBackground"); } if (newColor == null && !c.isEditable()) { newColor = UIManager.getColor("TextArea.inactiveBackground"); } if (newColor == null) { newColor = UIManager.getColor("TextArea.background"); } if (newColor != null && newColor != background) { c.setBackground(newColor); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticLookAndFeel.java0000644000175000017500000011555611731047364027350 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Insets; import java.awt.Toolkit; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.UIDefaults; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.plaf.BorderUIResource; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.FontUIResource; import javax.swing.plaf.IconUIResource; import javax.swing.plaf.InsetsUIResource; import javax.swing.plaf.basic.BasicBorders; import javax.swing.plaf.metal.MetalLookAndFeel; import javax.swing.plaf.metal.MetalTheme; import com.jgoodies.common.base.Preconditions; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.FontPolicies; import com.jgoodies.looks.FontPolicy; import com.jgoodies.looks.LookUtils; import com.jgoodies.looks.MicroLayout; import com.jgoodies.looks.MicroLayoutPolicies; import com.jgoodies.looks.MicroLayoutPolicy; import com.jgoodies.looks.Options; import com.jgoodies.looks.common.MinimumSizedIcon; import com.jgoodies.looks.common.RGBGrayFilter; import com.jgoodies.looks.common.ShadowPopupFactory; import com.jgoodies.looks.plastic.theme.SkyBluer; /** * The base class for the JGoodies Plastic look&feel family. * Initializes class and component defaults for the Plastic L&f * and provides keys and optional features for the Plastic family. * * @author Karsten Lentzsch * @version $Revision: 1.46 $ */ public class PlasticLookAndFeel extends MetalLookAndFeel { // System and Client Property Keys **************************************** /** * Client property key to set a border style - shadows the header style. */ public static final String BORDER_STYLE_KEY = "Plastic.borderStyle"; /** * Client property key to disable the pseudo 3D effect. */ public static final String IS_3D_KEY = "Plastic.is3D"; /** * A System property key to set the default theme. */ public static final String DEFAULT_THEME_KEY = "Plastic.defaultTheme"; /** * A System property key that indicates that the high contrast * focus colors shall be choosen - if applicable. * If not set, some focus colors look good but have low contrast. * Basically, the low contrast scheme uses the Plastic colors * before 1.0.7, and the high contrast scheme is 1.0.7 - 1.0.9. */ public static final String HIGH_CONTRAST_FOCUS_ENABLED_KEY = "Plastic.highContrastFocus"; /** * A System property key for the rendering style of the Plastic * TabbedPane. Valid values are: default for the * Plastic 1.0 tabs, and metal for the Metal L&F tabs. */ protected static final String TAB_STYLE_KEY = "Plastic.tabStyle"; /** * A System property value that indicates that Plastic shall render * tabs in the Plastic 1.0 style. This is the default. */ public static final String TAB_STYLE_DEFAULT_VALUE = "default"; /** * A System property value that indicates that Plastic shall * render tabs in the Metal L&F style. */ public static final String TAB_STYLE_METAL_VALUE = "metal"; // State ***************************************************************** /** * Holds whether Plastic uses Metal or Plastic tabbed panes. */ private static boolean useMetalTabs = LookUtils.getSystemProperty(TAB_STYLE_KEY, ""). equalsIgnoreCase(TAB_STYLE_METAL_VALUE); /** * Holds whether we are using the high contrast focus colors. */ private static boolean useHighContrastFocusColors = LookUtils.getSystemProperty(HIGH_CONTRAST_FOCUS_ENABLED_KEY) != null; /** * The List of installed Plastic themes. */ private static List installedThemes; /** The look-global state for the 3D enablement. */ private static boolean is3DEnabled = false; private static boolean selectTextOnKeyboardFocusGained = LookUtils.IS_OS_WINDOWS; // Instance Creation ****************************************************** /** * Constructs the PlasticLookAndFeel, creates the default theme * and sets it as current Plastic theme. */ public PlasticLookAndFeel() { getPlasticTheme(); } // L&f Description ******************************************************** @Override public String getID() { return "JGoodies Plastic"; } @Override public String getName() { return "JGoodies Plastic"; } @Override public String getDescription() { return "The JGoodies Plastic Look and Feel" + " - \u00a9 2001-2012 JGoodies Karsten Lentzsch"; } // Optional Settings ****************************************************** /** * Looks up and retrieves the FontPolicy used * by the JGoodies Plastic Look&Feel family. * If a FontPolicy has been set, it'll be returned. * Otherwise, this method checks if a FontPolicy or FontSet is defined * in the system properties or UIDefaults. If so, it is returned. * If no FontPolicy has been set for this look, in the system * properties or UIDefaults, the default Plastic font policy * will be returned. * * @return the FontPolicy set for this Look&feel - if any, * the FontPolicy specified in the system properties or UIDefaults * - if any, or the default Plastic font policy. * * @see #setFontPolicy * @see Options#PLASTIC_FONT_POLICY_KEY * @see FontPolicies * @see FontPolicies#customSettingsPolicy(FontPolicy) * @see FontPolicies#getDefaultPlasticPolicy() */ public static FontPolicy getFontPolicy() { FontPolicy policy = (FontPolicy) UIManager.get(Options.PLASTIC_FONT_POLICY_KEY); if (policy != null) { return policy; } FontPolicy defaultPolicy = FontPolicies.getDefaultPlasticPolicy(); return FontPolicies.customSettingsPolicy(defaultPolicy); } /** * Sets the FontPolicy to be used with the JGoodies Plastic L&F * family. If the specified policy is {@code null}, the default will * be reset. * * @param fontPolicy the FontPolicy to be used with * the JGoodies Plastic L&F family, or {@code null} to reset * to the default * * @see #getFontPolicy() * @see Options#PLASTIC_FONT_POLICY_KEY */ public static void setFontPolicy(FontPolicy fontPolicy) { UIManager.put(Options.PLASTIC_FONT_POLICY_KEY, fontPolicy); } /** * Looks up and retrieves the MicroLayoutPolicy used by * the JGoodies Plastic Look&Fs. * If a MicroLayoutPolicy has been set for this look, it'll be returned. * Otherwise, the default Plastic micro layout policy will be returned. * * @return the MicroLayoutPolicy set for this Look&feel - if any, * or the default Plastic MicroLayoutPolicy. * * @see #setMicroLayoutPolicy * @see Options#PLASTIC_MICRO_LAYOUT_POLICY_KEY * @see MicroLayoutPolicies */ public static MicroLayoutPolicy getMicroLayoutPolicy() { MicroLayoutPolicy policy = (MicroLayoutPolicy) UIManager.get(Options.PLASTIC_MICRO_LAYOUT_POLICY_KEY); return policy != null ? policy : MicroLayoutPolicies.getDefaultPlasticPolicy(); } /** * Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs. * If the specified policy is {@code null}, the default will be reset. * * @param microLayoutPolicy the MicroLayoutPolicy to be used with * the JGoodies Plastic L&Fs, or {@code null} to reset * to the default * * @see #getMicroLayoutPolicy() * @see Options#PLASTIC_MICRO_LAYOUT_POLICY_KEY */ public static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy) { UIManager.put(Options.PLASTIC_MICRO_LAYOUT_POLICY_KEY, microLayoutPolicy); } protected boolean is3DEnabled() { return is3DEnabled; } public static void set3DEnabled(boolean b) { is3DEnabled = b; } public static String getTabStyle() { return useMetalTabs ? TAB_STYLE_METAL_VALUE : TAB_STYLE_DEFAULT_VALUE; } public static void setTabStyle(String tabStyle) { useMetalTabs = tabStyle.equalsIgnoreCase(TAB_STYLE_METAL_VALUE); } public static boolean getHighContrastFocusColorsEnabled() { return useHighContrastFocusColors; } public static void setHighContrastFocusColorsEnabled(boolean b) { useHighContrastFocusColors = b; } public static boolean isSelectTextOnKeyboardFocusGained() { return selectTextOnKeyboardFocusGained; } /** * Sets whether text field text shall be selected when it gains focus * via the keyboard. This is enabled on Windows by default and * disabled on all other platforms. * * @param b true to enabled, false to disable */ public static void setSelectTextOnKeyboardFocusGained(boolean b) { selectTextOnKeyboardFocusGained = b; } // Overriding Superclass Behavior *************************************** /** * Invoked during {@code UIManager#setLookAndFeel}. In addition * to the superclass behavior, we install the ShadowPopupFactory. * * @see #uninitialize */ @Override public void initialize() { super.initialize(); ShadowPopupFactory.install(); } /** * Invoked during {@code UIManager#setLookAndFeel}. In addition * to the superclass behavior, we uninstall the ShadowPopupFactory. * * @see #initialize */ @Override public void uninitialize() { super.uninitialize(); ShadowPopupFactory.uninstall(); } /** * Returns an icon with a disabled appearance. This method is used * to generate a disabled icon when one has not been specified.

* * This method will be used only on JDK 5.0 and later. * * @param component the component that will display the icon, may be null. * @param icon the icon to generate disabled icon from. * @return disabled icon, or null if a suitable icon can not be generated. */ @Override public Icon getDisabledIcon(JComponent component, Icon icon) { Icon disabledIcon = RGBGrayFilter.getDisabledIcon(component, icon); return disabledIcon != null ? new IconUIResource(disabledIcon) : null; } /** * Initializes the class defaults, that is, overrides some UI delegates * with JGoodies Plastic implementations. * * @param table the UIDefaults table to work with * @see javax.swing.plaf.basic.BasicLookAndFeel#getDefaults() */ @Override protected void initClassDefaults(UIDefaults table) { super.initClassDefaults(table); final String plasticPrefix = "com.jgoodies.looks.plastic.Plastic"; final String commonPrefix = "com.jgoodies.looks.common.ExtBasic"; // Overwrite some of the uiDefaults. Object[] uiDefaults = { // 3D effect; optional narrow margins "ButtonUI", plasticPrefix + "ButtonUI", "ToggleButtonUI", plasticPrefix + "ToggleButtonUI", // 3D effect "ComboBoxUI", plasticPrefix + "ComboBoxUI", "ScrollBarUI", plasticPrefix + "ScrollBarUI", "SpinnerUI", plasticPrefix + "SpinnerUI", // Special borders defined by border style or header style, see LookUtils "MenuBarUI", plasticPrefix + "MenuBarUI", "ToolBarUI", plasticPrefix + "ToolBarUI", // Aligns menu icons "MenuUI", plasticPrefix + "MenuUI", "MenuItemUI", commonPrefix + "MenuItemUI", "CheckBoxMenuItemUI", commonPrefix + "CheckBoxMenuItemUI", "RadioButtonMenuItemUI", commonPrefix + "RadioButtonMenuItemUI", // Provides an option for a no margin border "PopupMenuUI", plasticPrefix + "PopupMenuUI", // Has padding above and below the separator lines "PopupMenuSeparatorUI", commonPrefix + "PopupMenuSeparatorUI", // Honors the screen resolution and uses a minimum button width "OptionPaneUI", plasticPrefix + "OptionPaneUI", // Can installs an optional etched border "ScrollPaneUI", plasticPrefix + "ScrollPaneUI", // Uses a modified split divider "SplitPaneUI", plasticPrefix + "SplitPaneUI", // Selects all text after focus gain via keyboard. "PasswordFieldUI", plasticPrefix + "PasswordFieldUI", // Updates the disabled and inactive background "TextAreaUI", plasticPrefix + "TextAreaUI", // Modified icons and lines "TreeUI", plasticPrefix + "TreeUI", // Just to use Plastic colors "InternalFrameUI", plasticPrefix + "InternalFrameUI", // Share the UI delegate instances "SeparatorUI", plasticPrefix + "SeparatorUI", "ToolBarSeparatorUI", plasticPrefix + "ToolBarSeparatorUI", // Optionally looks up the system icons "FileChooserUI", plasticPrefix + "FileChooserUI" }; if (!useMetalTabs) { // Modified tabs and ability use a version with reduced borders. uiDefaults = append(uiDefaults, "TabbedPaneUI", plasticPrefix + "TabbedPaneUI"); } if (isSelectTextOnKeyboardFocusGained()) { // Selects all text after focus gain via keyboard. uiDefaults = append(uiDefaults, "TextFieldUI", plasticPrefix + "TextFieldUI"); uiDefaults = append(uiDefaults, "FormattedTextFieldUI", plasticPrefix + "FormattedTextFieldUI"); } table.putDefaults(uiDefaults); } @Override protected void initComponentDefaults(UIDefaults table) { super.initComponentDefaults(table); MicroLayout microLayout = getMicroLayoutPolicy().getMicroLayout(getName(), table); Insets buttonBorderInsets = microLayout.getButtonBorderInsets(); Object marginBorder = new BasicBorders.MarginBorder(); Object buttonBorder = PlasticBorders.getButtonBorder(buttonBorderInsets); Object comboBoxButtonBorder = PlasticBorders.getComboBoxArrowButtonBorder(); Border comboBoxEditorBorder = PlasticBorders.getComboBoxEditorBorder(); Object menuItemBorder = PlasticBorders.getMenuItemBorder(); Object textFieldBorder = PlasticBorders.getTextFieldBorder(); Object toggleButtonBorder = PlasticBorders.getToggleButtonBorder(buttonBorderInsets); Object scrollPaneBorder = PlasticBorders.getScrollPaneBorder(); Object tableHeaderBorder = new BorderUIResource( (Border) table.get("TableHeader.cellBorder")); Object menuBarEmptyBorder = marginBorder; Object menuBarSeparatorBorder = PlasticBorders.getSeparatorBorder(); Object menuBarEtchedBorder = PlasticBorders.getEtchedBorder(); Object menuBarHeaderBorder = PlasticBorders.getMenuBarHeaderBorder(); Object toolBarEmptyBorder = marginBorder; Object toolBarSeparatorBorder = PlasticBorders.getSeparatorBorder(); Object toolBarEtchedBorder = PlasticBorders.getEtchedBorder(); Object toolBarHeaderBorder = PlasticBorders.getToolBarHeaderBorder(); Object internalFrameBorder = getInternalFrameBorder(); Object paletteBorder = getPaletteBorder(); Color controlColor = table.getColor("control"); Object checkBoxIcon = PlasticIconFactory.getCheckBoxIcon(); Object checkBoxMargin = microLayout.getCheckBoxMargin(); Object buttonMargin = microLayout.getButtonMargin(); Object textInsets = microLayout.getTextInsets(); Object wrappedTextInsets = microLayout.getWrappedTextInsets(); Insets comboEditorInsets = microLayout.getComboBoxEditorInsets(); Insets comboEditorBorderInsets = comboBoxEditorBorder.getBorderInsets(null); int comboBorderSize = comboEditorBorderInsets.left; int comboPopupBorderSize = microLayout.getComboPopupBorderSize(); int comboRendererGap = comboEditorInsets.left + comboBorderSize - comboPopupBorderSize; Object comboRendererBorder = new EmptyBorder(1, comboRendererGap, 1, comboRendererGap); Object comboTableEditorInsets = new Insets(0, 0, 0, 0); Object menuItemMargin = microLayout.getMenuItemMargin(); Object menuMargin = microLayout.getMenuMargin(); Icon menuItemCheckIcon = new MinimumSizedIcon(); Icon checkBoxMenuItemIcon = PlasticIconFactory.getCheckBoxMenuItemIcon(); Icon radioButtonMenuItemIcon = PlasticIconFactory.getRadioButtonMenuItemIcon(); Color menuItemForeground = table.getColor("MenuItem.foreground"); Color inactiveTextBackground = table.getColor("TextField.inactiveBackground"); // Should be active. int treeFontSize = table.getFont("Tree.font").getSize(); Integer rowHeight = new Integer(treeFontSize + 6); Object treeExpandedIcon = PlasticIconFactory.getExpandedTreeIcon(); Object treeCollapsedIcon = PlasticIconFactory.getCollapsedTreeIcon(); ColorUIResource gray = new ColorUIResource(Color.GRAY); Boolean is3D = Boolean.valueOf(is3DEnabled()); Character passwordEchoChar = new Character(SystemUtils.IS_OS_WINDOWS ? '\u25CF' : '\u2022'); String iconPrefix = "icons/" + (SystemUtils.IS_LOW_RESOLUTION ? "32x32/" : "48x48/"); Object errorIcon = makeIcon(getClass(), iconPrefix + "dialog-error.png"); Object informationIcon = makeIcon(getClass(), iconPrefix + "dialog-information.png"); Object helpIcon = makeIcon(getClass(), iconPrefix + "dialog-help.png"); Object warningIcon = makeIcon(getClass(), iconPrefix + "dialog-warning.png"); Object[] defaults = { "Button.border", buttonBorder, "Button.margin", buttonMargin, "CheckBox.margin", checkBoxMargin, // Use a modified check "CheckBox.icon", checkBoxIcon, "CheckBoxMenuItem.border", menuItemBorder, "CheckBoxMenuItem.margin", menuItemMargin, // 1.4.1 Bug "CheckBoxMenuItem.checkIcon", checkBoxMenuItemIcon, "CheckBoxMenuItem.background", getMenuItemBackground(),// Added by JGoodies "CheckBoxMenuItem.selectionForeground", getMenuItemSelectedForeground(), "CheckBoxMenuItem.selectionBackground", getMenuItemSelectedBackground(), "CheckBoxMenuItem.acceleratorForeground", menuItemForeground, "CheckBoxMenuItem.acceleratorSelectionForeground",getMenuItemSelectedForeground(), "CheckBoxMenuItem.acceleratorSelectionBackground",getMenuItemSelectedBackground(), // ComboBox uses menu item selection colors "ComboBox.selectionForeground", getMenuSelectedForeground(), "ComboBox.selectionBackground", getMenuSelectedBackground(), "ComboBox.arrowButtonBorder", comboBoxButtonBorder, "ComboBox.editorBorder", comboBoxEditorBorder, "ComboBox.editorColumns", new Integer(5), "ComboBox.editorBorderInsets", comboEditorBorderInsets, // Added by JGoodies "ComboBox.editorInsets", textInsets, // Added by JGoodies "ComboBox.tableEditorInsets", comboTableEditorInsets, "ComboBox.rendererBorder", comboRendererBorder, // Added by JGoodies "EditorPane.margin", wrappedTextInsets, "InternalFrame.border", internalFrameBorder, "InternalFrame.paletteBorder", paletteBorder, "List.font", getControlTextFont(), "Menu.border", PlasticBorders.getMenuBorder(), "Menu.margin", menuMargin, "Menu.arrowIcon", PlasticIconFactory.getMenuArrowIcon(), "MenuBar.emptyBorder", menuBarEmptyBorder, // Added by JGoodies "MenuBar.separatorBorder", menuBarSeparatorBorder, // Added by JGoodies "MenuBar.etchedBorder", menuBarEtchedBorder, // Added by JGoodies "MenuBar.headerBorder", menuBarHeaderBorder, // Added by JGoodies "MenuItem.border", menuItemBorder, "MenuItem.checkIcon", menuItemCheckIcon, // Aligns menu items "MenuItem.margin", menuItemMargin, // 1.4.1 Bug "MenuItem.background", getMenuItemBackground(),// Added by JGoodies "MenuItem.selectionForeground", getMenuItemSelectedForeground(),// Added by JGoodies "MenuItem.selectionBackground", getMenuItemSelectedBackground(),// Added by JGoodies "MenuItem.acceleratorForeground", menuItemForeground, "MenuItem.acceleratorSelectionForeground", getMenuItemSelectedForeground(), "MenuItem.acceleratorSelectionBackground", getMenuItemSelectedBackground(), "OptionPane.errorIcon", errorIcon, "OptionPane.informationIcon", informationIcon, "OptionPane.questionIcon", helpIcon , "OptionPane.warningIcon", warningIcon, //"DesktopIcon.icon", makeIcon(superclass, "icons/DesktopIcon.gif"), "FileView.computerIcon", makeIcon(getClass(), "icons/Computer.gif"), "FileView.directoryIcon", makeIcon(getClass(), "icons/TreeClosed.gif"), "FileView.fileIcon", makeIcon(getClass(), "icons/File.gif"), "FileView.floppyDriveIcon", makeIcon(getClass(), "icons/FloppyDrive.gif"), "FileView.hardDriveIcon", makeIcon(getClass(), "icons/HardDrive.gif"), "FileChooser.homeFolderIcon", makeIcon(getClass(), "icons/HomeFolder.gif"), "FileChooser.newFolderIcon", makeIcon(getClass(), "icons/NewFolder.gif"), "FileChooser.upFolderIcon", makeIcon(getClass(), "icons/UpFolder.gif"), "Tree.closedIcon", makeIcon(getClass(), "icons/TreeClosed.gif"), "Tree.openIcon", makeIcon(getClass(), "icons/TreeOpen.gif"), "Tree.leafIcon", makeIcon(getClass(), "icons/TreeLeaf.gif"), "FormattedTextField.border", textFieldBorder, "FormattedTextField.margin", textInsets, "PasswordField.border", textFieldBorder, "PasswordField.margin", textInsets, "PasswordField.echoChar", passwordEchoChar, "PopupMenu.border", PlasticBorders.getPopupMenuBorder(), "PopupMenu.noMarginBorder", PlasticBorders.getNoMarginPopupMenuBorder(), "PopupMenuSeparator.margin", new InsetsUIResource(3, 4, 3, 4), "RadioButton.margin", checkBoxMargin, "RadioButtonMenuItem.border", menuItemBorder, "RadioButtonMenuItem.checkIcon", radioButtonMenuItemIcon, "RadioButtonMenuItem.margin", menuItemMargin, // 1.4.1 Bug "RadioButtonMenuItem.background", getMenuItemBackground(),// Added by JGoodies "RadioButtonMenuItem.selectionForeground", getMenuItemSelectedForeground(), "RadioButtonMenuItem.selectionBackground", getMenuItemSelectedBackground(), "RadioButtonMenuItem.acceleratorForeground", menuItemForeground, "RadioButtonMenuItem.acceleratorSelectionForeground", getMenuItemSelectedForeground(), "RadioButtonMenuItem.acceleratorSelectionBackground", getMenuItemSelectedBackground(), "Separator.foreground", getControlDarkShadow(), "ScrollPane.border", scrollPaneBorder, "ScrollPane.etchedBorder", scrollPaneBorder, // "ScrollPane.background", table.get("window"), "SimpleInternalFrame.activeTitleForeground", getSimpleInternalFrameForeground(), "SimpleInternalFrame.activeTitleBackground", getSimpleInternalFrameBackground(), "Spinner.border", PlasticBorders.getFlush3DBorder(), "Spinner.defaultEditorInsets", textInsets, "SplitPane.dividerSize", new Integer(7), "TabbedPane.focus", getFocusColor(), "TabbedPane.tabInsets", new InsetsUIResource(1, 9, 1, 8), "Table.foreground", table.get("textText"), "Table.gridColor", controlColor, //new ColorUIResource(new Color(216, 216, 216)), "Table.scrollPaneBorder", scrollPaneBorder, "TableHeader.cellBorder", tableHeaderBorder, "TextArea.inactiveBackground", inactiveTextBackground, "TextArea.margin", wrappedTextInsets, "TextField.border", textFieldBorder, "TextField.margin", textInsets, "TitledBorder.font", getTitleTextFont(), "TitledBorder.titleColor", getTitleTextColor(), "ToggleButton.border", toggleButtonBorder, "ToggleButton.margin", buttonMargin, "ToolBar.emptyBorder", toolBarEmptyBorder, // Added by JGoodies "ToolBar.separatorBorder", toolBarSeparatorBorder, // Added by JGoodies "ToolBar.etchedBorder", toolBarEtchedBorder, // Added by JGoodies "ToolBar.headerBorder", toolBarHeaderBorder, // Added by JGoodies "ToolTip.hideAccelerator", Boolean.TRUE, "Tree.expandedIcon", treeExpandedIcon, "Tree.collapsedIcon", treeCollapsedIcon, "Tree.line", gray, "Tree.hash", gray, "Tree.rowHeight", rowHeight, "Button.is3DEnabled", is3D, "ComboBox.is3DEnabled", is3D, "MenuBar.is3DEnabled", is3D, "ToolBar.is3DEnabled", is3D, "ScrollBar.is3DEnabled", is3D, "ToggleButton.is3DEnabled", is3D, // 1.4.1 uses a 2 pixel non-standard border, that leads to bad // alignment in the typical case that the border is not painted "CheckBox.border", marginBorder, "RadioButton.border", marginBorder, // Fix of the issue #21 "ProgressBar.selectionForeground", getSystemTextColor(), "ProgressBar.selectionBackground", getSystemTextColor() }; table.putDefaults(defaults); // Set paths to sounds for auditory feedback String soundPathPrefix = "/javax/swing/plaf/metal/"; Object[] auditoryCues = (Object[]) table.get("AuditoryCues.allAuditoryCues"); if (auditoryCues != null) { Object[] audioDefaults = new String[auditoryCues.length * 2]; for (int i = 0; i < auditoryCues.length; i++) { Object auditoryCue = auditoryCues[i]; audioDefaults[2*i] = auditoryCue; audioDefaults[2*i + 1] = soundPathPrefix + table.getString(auditoryCue); } table.putDefaults(audioDefaults); } } /** * Unlike my superclass I register a unified shadow color. * This color is used by my ThinBevelBorder class. * * @param table the UIDefaults table to work with */ @Override protected void initSystemColorDefaults(UIDefaults table) { super.initSystemColorDefaults(table); table.put("unifiedControlShadow", table.getColor("controlDkShadow")); table.put("primaryControlHighlight", getPrimaryControlHighlight()); } // Color Theme Behavior ************************************************************* private static final String THEME_CLASSNAME_PREFIX = "com.jgoodies.looks.plastic.theme."; /** * Creates and returns the default color theme. Honors the current platform * and platform flavor - if available. * * @return the default color theme for the current environment */ public static PlasticTheme createMyDefaultTheme() { String defaultName; if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED) { defaultName = getDefaultXPTheme(); } else if (LookUtils.IS_OS_WINDOWS_MODERN) { defaultName = "DesertBluer"; } else { defaultName = "SkyBlue"; } // Don't use the default now, so we can detect that the users tried to set one. String userName = LookUtils.getSystemProperty(DEFAULT_THEME_KEY, ""); boolean overridden = userName.length() > 0; String themeName = overridden ? userName : defaultName; PlasticTheme theme = createTheme(themeName); PlasticTheme result = theme != null ? theme : new SkyBluer(); // In case the user tried to set a theme, log a message. if (overridden) { String className = result.getClass().getName().substring( THEME_CLASSNAME_PREFIX.length()); if (className.equals(userName)) { LookUtils.log("I have successfully installed the '" + result.getName() + "' theme."); } else { LookUtils.log("I could not install the Plastic theme '" + userName + "'."); LookUtils.log("I have installed the '" + result.getName() + "' theme, instead."); } } return result; } private static String getDefaultXPTheme() { String fallbackName = "ExperienceBlue"; Toolkit toolkit = Toolkit.getDefaultToolkit(); String xpstyleDll = (String) toolkit.getDesktopProperty("win.xpstyle.dllName"); if (xpstyleDll == null) { return fallbackName; } boolean isStyleLuna = xpstyleDll.endsWith("luna.msstyles"); boolean isStyleRoyale = xpstyleDll.endsWith("Royale.msstyles"); boolean isStyleAero = xpstyleDll.endsWith("Aero.msstyles"); if (isStyleRoyale) { return "ExperienceRoyale"; } if (isStyleLuna) { String xpstyleColorName = (String) toolkit.getDesktopProperty("win.xpstyle.colorName"); if (xpstyleColorName == null) { return fallbackName; } if (xpstyleColorName.equalsIgnoreCase("HomeStead")) { return "ExperienceGreen"; } else if (xpstyleColorName.equalsIgnoreCase("Metallic")) { return "Silver"; } else { return fallbackName; } } if (isStyleAero) { return "LightGray"; } return fallbackName; } /** * Lazily initializes and returns the {@code List} of installed * color themes. * * @return a list of installed color/font themes */ public static List getInstalledThemes() { if (null == installedThemes) { installDefaultThemes(); } Collections.sort(installedThemes, new Comparator() { @Override public int compare(Object o1, Object o2) { MetalTheme theme1 = (MetalTheme) o1; MetalTheme theme2 = (MetalTheme) o2; return theme1.getName().compareTo(theme2.getName()); } }); return installedThemes; } /** * Install the default color themes. */ protected static void installDefaultThemes() { installedThemes = new ArrayList(); String[] themeNames = { "BrownSugar", "DarkStar", "DesertBlue", "DesertBluer", "DesertGreen", "DesertRed", "DesertYellow", "ExperienceBlue", "ExperienceGreen", "ExperienceRoyale", "LightGray", "Silver", "SkyBlue", "SkyBluer", "SkyGreen", "SkyKrupp", "SkyPink", "SkyRed", "SkyYellow"}; for (int i = themeNames.length - 1; i >= 0; i--) { installTheme(createTheme(themeNames[i])); } } /** * Creates and returns a color theme from the specified theme name. * * @param themeName the unqualified name of the theme to create * @return the associated color theme or {@code null} in case of * a problem */ protected static PlasticTheme createTheme(String themeName) { String className = THEME_CLASSNAME_PREFIX + themeName; try { Class cl = Class.forName(className); return (PlasticTheme) cl.newInstance(); } catch (ClassNotFoundException e) { // Ignore the exception here and log below. } catch (IllegalAccessException e) { // Ignore the exception here and log below. } catch (InstantiationException e) { // Ignore the exception here and log below. } LookUtils.log("Can't create theme " + className); return null; } /** * Installs a color theme. * * @param theme the theme to install */ public static void installTheme(PlasticTheme theme) { if (null == installedThemes) { installDefaultThemes(); } installedThemes.add(theme); } /** * Lazily initializes and returns the PlasticTheme. * * @return the current PlasticTheme */ public static PlasticTheme getPlasticTheme() { MetalTheme theme = getCurrentTheme(); if (theme instanceof PlasticTheme) { return (PlasticTheme) theme; } PlasticTheme initialTheme = createMyDefaultTheme(); setPlasticTheme(initialTheme); return initialTheme; } /** * Sets the theme for colors and fonts used by the Plastic L&F.

* * After setting the theme, you need to re-install the Look&Feel, * as well as update the UI's of any previously created components * - just as if you'd change the Look&Feel. * * @param theme the PlasticTheme to be set * * @throws NullPointerException if the theme is null. * * @see #getPlasticTheme() */ public static void setPlasticTheme(PlasticTheme theme) { Preconditions.checkNotNull(theme, "The theme must not be null."); setCurrentTheme(theme); } // Accessed by ProxyLazyValues ****************************************** public static BorderUIResource getInternalFrameBorder() { return new BorderUIResource(PlasticBorders.getInternalFrameBorder()); } public static BorderUIResource getPaletteBorder() { return new BorderUIResource(PlasticBorders.getPaletteBorder()); } // Accessing Theme Colors and Fonts ************************************* public static ColorUIResource getPrimaryControlDarkShadow() { return getPlasticTheme().getPrimaryControlDarkShadow(); } public static ColorUIResource getPrimaryControlHighlight() { return getPlasticTheme().getPrimaryControlHighlight(); } public static ColorUIResource getPrimaryControlInfo() { return getPlasticTheme().getPrimaryControlInfo(); } public static ColorUIResource getPrimaryControlShadow() { return getPlasticTheme().getPrimaryControlShadow(); } public static ColorUIResource getPrimaryControl() { return getPlasticTheme().getPrimaryControl(); } public static ColorUIResource getControlHighlight() { return getPlasticTheme().getControlHighlight(); } public static ColorUIResource getControlDarkShadow() { return getPlasticTheme().getControlDarkShadow(); } public static ColorUIResource getControl() { return getPlasticTheme().getControl(); } public static ColorUIResource getFocusColor() { return getPlasticTheme().getFocusColor(); } public static ColorUIResource getMenuItemBackground() { return getPlasticTheme().getMenuItemBackground(); } public static ColorUIResource getMenuItemSelectedBackground() { return getPlasticTheme().getMenuItemSelectedBackground(); } public static ColorUIResource getMenuItemSelectedForeground() { return getPlasticTheme().getMenuItemSelectedForeground(); } public static ColorUIResource getWindowTitleBackground() { return getPlasticTheme().getWindowTitleBackground(); } public static ColorUIResource getWindowTitleForeground() { return getPlasticTheme().getWindowTitleForeground(); } public static ColorUIResource getWindowTitleInactiveBackground() { return getPlasticTheme().getWindowTitleInactiveBackground(); } public static ColorUIResource getWindowTitleInactiveForeground() { return getPlasticTheme().getWindowTitleInactiveForeground(); } public static ColorUIResource getSimpleInternalFrameForeground() { return getPlasticTheme().getSimpleInternalFrameForeground(); } public static ColorUIResource getSimpleInternalFrameBackground() { return getPlasticTheme().getSimpleInternalFrameBackground(); } public static ColorUIResource getTitleTextColor() { return getPlasticTheme().getTitleTextColor(); } public static FontUIResource getTitleTextFont() { return getPlasticTheme().getTitleTextFont(); } // Helper Code ************************************************************ /** * Appends the key and value to the given source array and returns * a copy that has the two new elements at its end. * * @return an array with the key and value appended */ private static Object[] append(Object[] source, String key, Object value) { int length = source.length; Object[] destination = new Object[length + 2]; System.arraycopy(source, 0, destination, 0, length); destination[length] = key; destination[length + 1] = value; return destination; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticTreeUI.java0000644000175000017500000001231011731047364026342 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Component; import java.awt.Graphics; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicTreeUI; import com.jgoodies.looks.Options; /** * The JGoodies Plastic Look&Feel implementation of {@code TreeUI}. * It provides two line styles: angled dashed lines, or no lines at all. * By default, lines are drawn. *

* You can change the line style by setting a client property. * The property key and values are a subset of the values used * by the Metal L&F tree. To hide lines use one of the following: *

 * JTree tree1 = new JTree();
 * tree1.putClientProperty("JTree.lineStyle", "None");
 *
 * JTree tree2 = new JTree();
 * tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
 *                         Options.TREE_LINE_STYLE_NONE_VALUE);
 * 
* * Although lines are shown by default, you could code: *
 * JTree tree1 = new JTree();
 * tree1.putClientProperty("JTree.lineStyle", "Angled");
 *
 * JTree tree2 = new JTree();
 * tree1.putClientProperty(Options.TREE_LINE_STYLE_KEY,
 *                         Options.TREE_LINE_STYLE_ANGLED_VALUE);
 * 
* * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticTreeUI extends BasicTreeUI { private boolean linesEnabled = true; private PropertyChangeListener lineStyleHandler; public static ComponentUI createUI(JComponent b) { return new PlasticTreeUI(); } // Installation *********************************************************** @Override public void installUI(JComponent c) { super.installUI(c); updateLineStyle(c.getClientProperty(Options.TREE_LINE_STYLE_KEY)); lineStyleHandler = new LineStyleHandler(); c.addPropertyChangeListener(lineStyleHandler); } @Override public void uninstallUI(JComponent c) { c.removePropertyChangeListener(lineStyleHandler); super.uninstallUI(c); } // Painting *************************************************************** @Override protected void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom) { if (linesEnabled) { drawDashedVerticalLine(g, x, top, bottom); } } @Override protected void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right) { if (linesEnabled) { drawDashedHorizontalLine(g, y, left, right); } } // Draws the icon centered at (x,y) @Override protected void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y) { icon.paintIcon( c, graphics, x - icon.getIconWidth() / 2 - 1, y - icon.getIconHeight() / 2); } // Helper Code ************************************************************ private void updateLineStyle(Object lineStyle) { linesEnabled = !Options.TREE_LINE_STYLE_NONE_VALUE.equals(lineStyle); } // Listens for changes of the line style property private class LineStyleHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent e) { String name = e.getPropertyName(); Object value = e.getNewValue(); if (name.equals(Options.TREE_LINE_STYLE_KEY)) { updateLineStyle(value); } } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticMenuUI.java0000644000175000017500000000672211731047366026363 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Graphics; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.plaf.ComponentUI; import com.jgoodies.looks.common.ExtBasicMenuUI; /** * The JGoodies Plastic look&feel implementation of {@code MenuUI}. * It differs from the superclass in that it uses an overhauled menu * rendering an aligmnent system. Furthermore, you can set a client property * Options.NO_ICONS_KEY to indicate that this menu has no icons. * * @author Karsten Lentzsch * @version $Revision: 1.14 $ * * @see com.jgoodies.looks.Options */ public final class PlasticMenuUI extends ExtBasicMenuUI { private boolean oldOpaque; public static ComponentUI createUI(JComponent b) { return new PlasticMenuUI(); } @Override protected void installDefaults() { super.installDefaults(); oldOpaque = menuItem.isOpaque(); } /** * Makes the item transparent, if it is not a sub menu and the model is not selected. */ @Override protected void paintMenuItem(Graphics g, JComponent c, Icon aCheckIcon, Icon anArrowIcon, Color background, Color foreground, int textIconGap) { JMenuItem b = (JMenuItem) c; if (((JMenu) menuItem).isTopLevelMenu()) { b.setOpaque(false); if (b.getModel().isSelected()) { int menuWidth = menuItem.getWidth(); int menuHeight = menuItem.getHeight(); Color oldColor = g.getColor(); g.setColor(background); g.fillRect(0, 0, menuWidth, menuHeight); g.setColor(oldColor); } } super.paintMenuItem(g, c, aCheckIcon, anArrowIcon, background, foreground, textIconGap); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticScrollBarUI.java0000644000175000017500000002273111731047364027336 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Adjustable; import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalScrollBarUI; /** * The JGoodies Plastic L&F implementation of {@code ScrollBarUI}. * Can add a pseudo 3D effect and honors the Plastic Option * ScrollBar.maxBumpsWidth to limit the with of the scroll bar bumps. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public final class PlasticScrollBarUI extends MetalScrollBarUI { private static final String PROPERTY_PREFIX = "ScrollBar."; public static final String MAX_BUMPS_WIDTH_KEY = PROPERTY_PREFIX + "maxBumpsWidth"; private Color shadowColor; private Color highlightColor; private Color darkShadowColor; private Color thumbColor; private Color thumbShadow; private Color thumbHighlightColor; private PlasticBumps bumps; public static ComponentUI createUI(JComponent b) { return new PlasticScrollBarUI(); } @Override protected void installDefaults() { super.installDefaults(); bumps = new PlasticBumps(10, 10, thumbHighlightColor, thumbShadow, thumbColor); } @Override protected JButton createDecreaseButton(int orientation) { decreaseButton = new PlasticArrowButton(orientation, scrollBarWidth, isFreeStanding); return decreaseButton; } @Override protected JButton createIncreaseButton(int orientation) { increaseButton = new PlasticArrowButton(orientation, scrollBarWidth, isFreeStanding); return increaseButton; } @Override protected void configureScrollBarColors() { super.configureScrollBarColors(); shadowColor = UIManager.getColor(PROPERTY_PREFIX + "shadow"); highlightColor = UIManager.getColor(PROPERTY_PREFIX + "highlight"); darkShadowColor = UIManager.getColor(PROPERTY_PREFIX + "darkShadow"); thumbColor = UIManager.getColor(PROPERTY_PREFIX + "thumb"); thumbShadow = UIManager.getColor(PROPERTY_PREFIX + "thumbShadow"); thumbHighlightColor = UIManager.getColor(PROPERTY_PREFIX + "thumbHighlight"); } @Override protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { g.translate(trackBounds.x, trackBounds.y); boolean leftToRight = PlasticUtils.isLeftToRight(c); if (scrollbar.getOrientation() == Adjustable.VERTICAL) { if (!isFreeStanding) { if (!leftToRight) { trackBounds.width += 1; g.translate(-1, 0); } else { trackBounds.width += 2; } } if (c.isEnabled()) { g.setColor(darkShadowColor); g.drawLine(0, 0, 0, trackBounds.height - 1); g.drawLine(trackBounds.width - 2, 0, trackBounds.width - 2, trackBounds.height - 1); g.drawLine(1, trackBounds.height - 1, trackBounds.width - 1, trackBounds.height - 1); g.drawLine(1, 0, trackBounds.width - 2, 0); g.setColor(shadowColor); // g.setColor( Color.red); g.drawLine(1, 1, 1, trackBounds.height - 2); g.drawLine(1, 1, trackBounds.width - 3, 1); if (scrollbar.getValue() != scrollbar.getMaximum()) { // thumb shadow int y = thumbRect.y + thumbRect.height - trackBounds.y; g.drawLine(1, y, trackBounds.width - 1, y); } g.setColor(highlightColor); g.drawLine(trackBounds.width - 1, 0, trackBounds.width - 1, trackBounds.height - 1); } else { PlasticUtils.drawDisabledBorder(g, 0, 0, trackBounds.width, trackBounds.height); } if (!isFreeStanding) { if (!leftToRight) { trackBounds.width -= 1; g.translate(1, 0); } else { trackBounds.width -= 2; } } } else { // HORIZONTAL if (!isFreeStanding) { trackBounds.height += 2; } if (c.isEnabled()) { g.setColor(darkShadowColor); g.drawLine(0, 0, trackBounds.width - 1, 0); // top g.drawLine(0, 1, 0, trackBounds.height - 2); // left g.drawLine(0, trackBounds.height - 2, trackBounds.width - 1, trackBounds.height - 2); // bottom g.drawLine(trackBounds.width - 1, 1, trackBounds.width - 1, trackBounds.height - 1); // right g.setColor(shadowColor); // g.setColor( Color.red); g.drawLine(1, 1, trackBounds.width - 2, 1); // top g.drawLine(1, 1, 1, trackBounds.height - 3); // left g.drawLine(0, trackBounds.height - 1, trackBounds.width - 1, trackBounds.height - 1); // bottom if (scrollbar.getValue() != scrollbar.getMaximum()) { // thumb shadow int x = thumbRect.x + thumbRect.width - trackBounds.x; g.drawLine(x, 1, x, trackBounds.height - 1); } } else { PlasticUtils.drawDisabledBorder(g, 0, 0, trackBounds.width, trackBounds.height); } if (!isFreeStanding) { trackBounds.height -= 2; } } g.translate(-trackBounds.x, -trackBounds.y); } @Override protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { if (!c.isEnabled()) { return; } boolean leftToRight = PlasticUtils.isLeftToRight(c); g.translate(thumbBounds.x, thumbBounds.y); if (scrollbar.getOrientation() == Adjustable.VERTICAL) { if (!isFreeStanding) { if (!leftToRight) { thumbBounds.width += 1; g.translate(-1, 0); } else { thumbBounds.width += 2; } } g.setColor(thumbColor); g.fillRect(0, 0, thumbBounds.width - 2, thumbBounds.height - 1); g.setColor(thumbShadow); g.drawRect(0, 0, thumbBounds.width - 2, thumbBounds.height - 1); g.setColor(thumbHighlightColor); g.drawLine(1, 1, thumbBounds.width - 3, 1); g.drawLine(1, 1, 1, thumbBounds.height - 2); paintBumps(g, c, 3, 4, thumbBounds.width - 6, thumbBounds.height - 7); if (!isFreeStanding) { if (!leftToRight) { thumbBounds.width -= 1; g.translate(1, 0); } else { thumbBounds.width -= 2; } } } else { // HORIZONTAL if (!isFreeStanding) { thumbBounds.height += 2; } g.setColor(thumbColor); g.fillRect(0, 0, thumbBounds.width - 1, thumbBounds.height - 2); g.setColor(thumbShadow); g.drawRect(0, 0, thumbBounds.width - 1, thumbBounds.height - 2); g.setColor(thumbHighlightColor); g.drawLine(1, 1, thumbBounds.width - 2, 1); g.drawLine(1, 1, 1, thumbBounds.height - 3); paintBumps(g, c, 4, 3, thumbBounds.width - 7, thumbBounds.height - 6); if (!isFreeStanding) { thumbBounds.height -= 2; } } g.translate(-thumbBounds.x, -thumbBounds.y); if (PlasticUtils.is3D(PROPERTY_PREFIX)) { paintThumb3D(g, thumbBounds); } } private void paintBumps(Graphics g, JComponent c, int x, int y, int width, int height) { if (!useNarrowBumps()) { bumps.setBumpArea(width, height); bumps.paintIcon(c, g, x, y); } else { int maxWidth = UIManager.getInt(MAX_BUMPS_WIDTH_KEY); int myWidth = Math.min(maxWidth, width); int myHeight = Math.min(maxWidth, height); int myX = x + (width - myWidth) / 2; int myY = y + (height - myHeight) / 2; bumps.setBumpArea(myWidth, myHeight); bumps.paintIcon(c, g, myX, myY); } } private void paintThumb3D(Graphics g, Rectangle thumbBounds) { boolean isHorizontal = scrollbar.getOrientation() == Adjustable.HORIZONTAL; int width = thumbBounds.width - (isHorizontal ? 3 : 1); int height = thumbBounds.height - (isHorizontal ? 1 : 3); Rectangle r = new Rectangle(thumbBounds.x + 2, thumbBounds.y + 2, width, height); PlasticUtils.addLight3DEffekt(g, r, isHorizontal); } // Accessing Special Client Properties ************************************ private static boolean useNarrowBumps() { Object value = UIManager.get(MAX_BUMPS_WIDTH_KEY); return value != null && value instanceof Integer; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticSeparatorUI.java0000644000175000017500000000457311731047364027417 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalSeparatorUI; /** * The JGoodies Plastic L&F implementation of {@code SeparatorUI}. * It differs from its superclass in that it uses a shared UI delegate.

* * Thanks to Andrej Golovnin for his feedback and suggestions. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class PlasticSeparatorUI extends MetalSeparatorUI { /** Shared UI object. */ private static ComponentUI separatorUI; public static ComponentUI createUI(JComponent c) { if (separatorUI == null) { separatorUI = new PlasticSeparatorUI(); } return separatorUI; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPIconFactory.java0000644000175000017500000002555211731047364027711 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.*; import java.io.Serializable; import javax.swing.*; import javax.swing.plaf.UIResource; import javax.swing.plaf.metal.MetalLookAndFeel; import com.jgoodies.common.base.Strings; import com.jgoodies.looks.LookUtils; /** * Factory class that vends {@code Icon}s for the JGoodies * Plastic XP look&feel. * These icons are used extensively in PlasticXP via the defaults mechanism. * While other look and feels often use GIFs for icons, creating icons * in code facilitates switching to other themes. *

* Each method in this class returns either an {@code Icon} or * {@code null}, where {@code null} implies that there is * no default icon. * * @author Karsten Lentzsch * @version $Revision: 1.13 $ */ public final class PlasticXPIconFactory { private static CheckBoxIcon checkBoxIcon; private static RadioButtonIcon radioButtonIcon; private PlasticXPIconFactory() { // Overrides default constructor; prevents instantiation. } /** * Lazily creates and returns the check box icon. * * @return the check box icon */ static Icon getCheckBoxIcon() { if (checkBoxIcon == null) { checkBoxIcon = new CheckBoxIcon(); } return checkBoxIcon; } /** * Lazily creates and returns the radio button icon. * * @return the check box icon */ static Icon getRadioButtonIcon() { if (radioButtonIcon == null) { radioButtonIcon = new RadioButtonIcon(); } return radioButtonIcon; } /** * Paints the the icon and focus border for Plastic XP check boxes. */ private static final class CheckBoxIcon implements Icon, UIResource, Serializable { private static final int SIZE = LookUtils.IS_LOW_RESOLUTION ? 13 : 15; @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { JCheckBox cb = (JCheckBox) c; ButtonModel model = cb.getModel(); Graphics2D g2 = (Graphics2D) g; boolean paintFocus = model.isArmed() && !model.isPressed() || cb.hasFocus() && Strings.isBlank(cb.getText()); final RenderingHints.Key key = RenderingHints.KEY_ANTIALIASING; Object newAAHint = RenderingHints.VALUE_ANTIALIAS_ON; Object oldAAHint = g2.getRenderingHint(key); if (newAAHint != oldAAHint) { g2.setRenderingHint(key, newAAHint); } else { oldAAHint = null; } drawBorder(g2, model.isEnabled(), x, y, SIZE - 1, SIZE - 1); drawFill(g2, model.isPressed(), x + 1, y + 1, SIZE - 2, SIZE - 2); if (paintFocus) { drawFocus(g2, x + 1, y + 1, SIZE - 3, SIZE - 3); } if (model.isSelected()) { drawCheck(g2, model.isEnabled(), x + 3, y + 3, SIZE - 7, SIZE - 7); } if (oldAAHint != null) { g2.setRenderingHint(key, oldAAHint); } } private static void drawBorder(Graphics2D g2, boolean enabled, int x, int y, int width, int height) { g2.setColor(enabled ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlDisabled()); g2.drawRect(x, y, width, height); } private static void drawCheck(Graphics2D g2, boolean enabled, int x, int y, int width, int height) { g2.setColor(enabled ? UIManager.getColor("CheckBox.check") : MetalLookAndFeel.getControlDisabled()); int right = x + width; int bottom = y + height; int startY = y + height / 3; int turnX = x + width / 2 - 2; g2.drawLine(x , startY , turnX, bottom-3); g2.drawLine(x , startY + 1, turnX, bottom-2); g2.drawLine(x , startY + 2, turnX, bottom-1); g2.drawLine(turnX + 1, bottom - 2, right, y ); g2.drawLine(turnX + 1, bottom - 1, right, y + 1 ); g2.drawLine(turnX + 1, bottom , right, y + 2 ); } private static void drawFill(Graphics2D g2, boolean pressed, int x, int y, int w, int h) { Color upperLeft; Color lowerRight; if (pressed) { upperLeft = MetalLookAndFeel.getControlShadow(); lowerRight = PlasticLookAndFeel.getControlHighlight(); } else { upperLeft = PlasticLookAndFeel.getControl(); lowerRight = PlasticLookAndFeel.getControlHighlight().brighter(); } g2.setPaint(new GradientPaint(x, y, upperLeft, x + w, y + h, lowerRight)); g2.fillRect(x, y, w, h); } private static void drawFocus(Graphics2D g2, int x, int y, int width, int height) { g2.setPaint(new GradientPaint( x, y, PlasticLookAndFeel.getFocusColor().brighter(), width, height, PlasticLookAndFeel.getFocusColor() /*.darker()*/ )); g2.drawRect(x, y, width, height); g2.drawRect(x + 1, y + 1, width - 2, height - 2); } } /** * Paints the the icon and focus border for Plastic XP check boxes. */ private static final class RadioButtonIcon implements Icon, UIResource, Serializable { private static final int SIZE = LookUtils.IS_LOW_RESOLUTION ? 13 : 15; private static final Stroke FOCUS_STROKE = new BasicStroke(2); @Override public int getIconWidth() { return SIZE; } @Override public int getIconHeight() { return SIZE; } @Override public void paintIcon(Component c, Graphics g, int x, int y) { Graphics2D g2 = (Graphics2D) g; AbstractButton rb = (AbstractButton) c; ButtonModel model = rb.getModel(); boolean paintFocus = model.isArmed() && !model.isPressed() || rb.hasFocus() && Strings.isBlank(rb.getText()); final RenderingHints.Key key = RenderingHints.KEY_ANTIALIASING; Object newAAHint = RenderingHints.VALUE_ANTIALIAS_ON; Object oldAAHint = g2.getRenderingHint(key); if (newAAHint != oldAAHint) { g2.setRenderingHint(key, newAAHint); } else { oldAAHint = null; } drawFill(g2, model.isPressed(), x, y, SIZE - 1, SIZE - 1); if (paintFocus) { drawFocus(g2, x + 1, y + 1, SIZE - 3, SIZE - 3); } if (model.isSelected()) { drawCheck(g2, c, model.isEnabled(), x + 4, y + 4, SIZE - 8, SIZE - 8); } drawBorder(g2, model.isEnabled(), x, y, SIZE-1, SIZE-1); if (oldAAHint != null) { g2.setRenderingHint(key, oldAAHint); } } private static void drawBorder(Graphics2D g2, boolean enabled, int x, int y, int w, int h) { g2.setColor(enabled ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlDisabled()); g2.drawOval(x, y, w, h); } private static void drawCheck(Graphics2D g2, Component c, boolean enabled, int x, int y, int w, int h) { g2.translate(x,y); if (enabled) { g2.setColor(UIManager.getColor("RadioButton.check")); g2.fillOval(0,0,w,h); UIManager.getIcon("RadioButton.checkIcon").paintIcon(c, g2, 0,0); } else { g2.setColor(MetalLookAndFeel.getControlDisabled()); g2.fillOval(0,0,w,h); } g2.translate(-x, -y); } private static void drawFill(Graphics2D g2, boolean pressed, int x, int y, int w, int h) { Color upperLeft; Color lowerRight; if (pressed) { upperLeft = MetalLookAndFeel.getControlShadow(); lowerRight = PlasticLookAndFeel.getControlHighlight(); } else { upperLeft = PlasticLookAndFeel.getControl(); lowerRight = PlasticLookAndFeel.getControlHighlight().brighter(); } g2.setPaint(new GradientPaint(x, y, upperLeft, x + w, y + h, lowerRight)); g2.fillOval(x, y, w, h); } private static void drawFocus(Graphics2D g2, int x, int y, int w, int h) { g2.setPaint( new GradientPaint( x, y, PlasticLookAndFeel.getFocusColor().brighter(), w, h, PlasticLookAndFeel.getFocusColor())); Stroke stroke = g2.getStroke(); g2.setStroke(FOCUS_STROKE); g2.drawOval(x, y, w, h); g2.setStroke(stroke); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticPasswordFieldUI.java0000644000175000017500000000524511731047366030224 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.JComponent; import javax.swing.JPasswordField; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicPasswordFieldUI; import javax.swing.text.Caret; /** * The JGoodies PlasticXP Look&Feel implementation of a password field UI * delegate. It differs from its superclass in that it utilizes a custom caret. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public final class PlasticPasswordFieldUI extends BasicPasswordFieldUI { /** * Creates a UI for a {@link JPasswordField}. * * @param c the password field component * @return the UI */ public static ComponentUI createUI(JComponent c) { return new PlasticPasswordFieldUI(); } /** * Creates the caret for a field. * * @return the caret */ @Override protected Caret createCaret() { return PlasticLookAndFeel.isSelectTextOnKeyboardFocusGained() ? new PlasticFieldCaret() : super.createCaret(); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticOptionPaneUI.java0000644000175000017500000000547011731047366027532 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Container; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicOptionPaneUI; import com.jgoodies.looks.common.ExtButtonAreaLayout; /** * The JGoodies Plastic Look&Feel implementation of * {@code OptionPaneUI}. Honors the screen resolution and * uses a minimum button with that complies better with the Mac and Windows * UI style guides. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticOptionPaneUI extends BasicOptionPaneUI { public static ComponentUI createUI(JComponent b) { return new PlasticOptionPaneUI(); } /** * Creates and returns a Container containin the buttons. The buttons * are created by calling {@code getButtons}. */ @Override protected Container createButtonArea() { JPanel bottom = new JPanel(new ExtButtonAreaLayout(true, 6)); bottom.setBorder(UIManager.getBorder("OptionPane.buttonAreaBorder")); addButtonComponents(bottom, getButtons(), getInitialValueIndex()); return bottom; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticInternalFrameUI.java0000644000175000017500000001606711762220336030203 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Container; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.JInternalFrame; import javax.swing.LookAndFeel; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicInternalFrameUI; /** * The JGoodies Plastic Look and Feel implementation of {@code InternalFrameUI}.

* * Uses a {@code PlasticInternalFrameTitlePane} * that in turn uses {@code PlasticTheme} colors.

* * Although this class is not intended for subclassing, there's no final marker. * If you extend this class, carefully obey all explicit and implicit * constraints made in this class and its superclasses. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public class PlasticInternalFrameUI extends BasicInternalFrameUI { private static final String FRAME_TYPE = "JInternalFrame.frameType"; public static final String IS_PALETTE = "JInternalFrame.isPalette"; private static final String PALETTE_FRAME = "palette"; private static final String OPTION_DIALOG = "optionDialog"; private static final Border EMPTY_BORDER = new EmptyBorder(0, 0, 0, 0); private PlasticInternalFrameTitlePane titlePane; private PropertyChangeListener paletteListener; private PropertyChangeListener contentPaneListener; public PlasticInternalFrameUI(JInternalFrame b) { super(b); } public static ComponentUI createUI(JComponent c) { return new PlasticInternalFrameUI((JInternalFrame) c); } @Override public void installUI(JComponent c) { frame = (JInternalFrame) c; paletteListener = new PaletteListener (this); contentPaneListener = new ContentPaneListener(); c.addPropertyChangeListener(paletteListener); c.addPropertyChangeListener(contentPaneListener); super.installUI(c); Object paletteProp = c.getClientProperty(IS_PALETTE); if (paletteProp != null) { setPalette(((Boolean) paletteProp).booleanValue()); } Container content = frame.getContentPane(); stripContentBorder(content); } @Override public void uninstallUI(JComponent c) { frame = (JInternalFrame) c; c.removePropertyChangeListener(paletteListener); c.removePropertyChangeListener(contentPaneListener); Container cont = ((JInternalFrame) c).getContentPane(); if (cont instanceof JComponent) { JComponent content = (JComponent) cont; if (content.getBorder() == EMPTY_BORDER) { content.setBorder(null); } } super.uninstallUI(c); } @Override protected void installDefaults() { super.installDefaults(); /* Enable the content pane to inherit background color * from its parent by setting its background color to null. * Fixes bug#4268949, which has been fixed in 1.4, too. */ JComponent contentPane = (JComponent) frame.getContentPane(); if (contentPane != null) { Color bg = contentPane.getBackground(); if (bg instanceof UIResource) { contentPane.setBackground(null); } } frame.setBackground(UIManager.getLookAndFeelDefaults().getColor("control")); } @Override protected void installKeyboardActions() { // Do nothing } @Override protected void uninstallKeyboardActions() { // Do nothing } private static void stripContentBorder(Object c) { if (c instanceof JComponent) { JComponent contentComp = (JComponent) c; Border contentBorder = contentComp.getBorder(); if (contentBorder == null || contentBorder instanceof UIResource) { contentComp.setBorder(EMPTY_BORDER); } } } @Override protected JComponent createNorthPane(JInternalFrame w) { titlePane = new PlasticInternalFrameTitlePane(w); return titlePane; } public void setPalette(boolean isPalette) { String key = isPalette ? "InternalFrame.paletteBorder" : "InternalFrame.border"; LookAndFeel.installBorder(frame, key); titlePane.setPalette(isPalette); } private void setFrameType(String frameType) { String key; boolean hasPalette = frameType.equals(PALETTE_FRAME); if (frameType.equals(OPTION_DIALOG)) { key = "InternalFrame.optionDialogBorder"; } else if (hasPalette) { key = "InternalFrame.paletteBorder"; } else { key = "InternalFrame.border"; } LookAndFeel.installBorder(frame, key); titlePane.setPalette(hasPalette); } private static final class PaletteListener implements PropertyChangeListener { private final PlasticInternalFrameUI ui; private PaletteListener(PlasticInternalFrameUI ui) { this.ui = ui; } @Override public void propertyChange(PropertyChangeEvent e) { String name = e.getPropertyName(); Object value = e.getNewValue(); if (name.equals(FRAME_TYPE)) { if (value instanceof String) { ui.setFrameType((String) value); } } else if (name.equals(IS_PALETTE)) { ui.setPalette(Boolean.TRUE.equals(value)); } } } private static final class ContentPaneListener implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent e) { String name = e.getPropertyName(); if (name.equals(JInternalFrame.CONTENT_PANE_PROPERTY)) { PlasticInternalFrameUI.stripContentBorder(e.getNewValue()); } } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticUtils.java0000644000175000017500000002463011731047364026315 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.*; import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.plaf.metal.MetalLookAndFeel; /** * Consists exclusively of static methods that provide convenience behavior. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticUtils { private PlasticUtils() { // Overrides default constructor; prevents instantiation. } static void drawDark3DBorder(Graphics g, int x, int y, int w, int h) { drawFlush3DBorder(g, x, y, w, h); g.setColor(PlasticLookAndFeel.getControl()); g.drawLine(x+1, y+1, 1, h - 3); g.drawLine(y+1, y+1, w - 3, 1); } static void drawDisabledBorder(Graphics g, int x, int y, int w, int h) { g.setColor(MetalLookAndFeel.getControlShadow()); drawRect(g, x, y, w - 1, h - 1); } /* * Unlike {@code MetalUtils} we first draw with highlight then dark shadow */ static void drawFlush3DBorder(Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlHighlight()); drawRect(g, 1, 1, w - 2, h - 2); g.drawLine(0, h - 1, 0, h - 1); g.drawLine(w - 1, 0, w - 1, 0); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); drawRect(g, 0, 0, w - 2, h - 2); g.translate(-x, -y); } /* * Copied from {@code MetalUtils}. */ static void drawPressed3DBorder(Graphics g, int x, int y, int w, int h) { g.translate(x, y); drawFlush3DBorder(g, 0, 0, w, h); g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(1, 1, 1, h - 3); g.drawLine(1, 1, w - 3, 1); g.translate(-x, -y); } /* * Copied from {@code MetalUtils}. */ static void drawButtonBorder(Graphics g, int x, int y, int w, int h, boolean active) { if (active) { drawActiveButtonBorder(g, x, y, w, h); } else { drawFlush3DBorder(g, x, y, w, h); } } /* * Copied from {@code MetalUtils}. */ static void drawActiveButtonBorder(Graphics g, int x, int y, int w, int h) { drawFlush3DBorder(g, x, y, w, h); g.setColor( PlasticLookAndFeel.getPrimaryControl() ); g.drawLine( x+1, y+1, x+1, h-3 ); g.drawLine( x+1, y+1, w-3, x+1 ); g.setColor( PlasticLookAndFeel.getPrimaryControlDarkShadow() ); g.drawLine( x+2, h-2, w-2, h-2 ); g.drawLine( w-2, y+2, w-2, h-2 ); } /* * Modified edges. */ static void drawDefaultButtonBorder(Graphics g, int x, int y, int w, int h, boolean active) { drawButtonBorder(g, x+1, y+1, w-1, h-1, active); g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlDarkShadow() ); drawRect(g, 0, 0, w-3, h-3 ); g.drawLine(w-2, 0, w-2, 0); g.drawLine(0, h-2, 0, h-2); g.setColor(PlasticLookAndFeel.getControl()); g.drawLine(w-1, 0, w-1, 0); g.drawLine(0, h-1, 0, h-1); g.translate(-x, -y); } static void drawDefaultButtonPressedBorder(Graphics g, int x, int y, int w, int h) { drawPressed3DBorder(g, x + 1, y + 1, w - 1, h - 1); g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); drawRect(g, 0, 0, w - 3, h - 3); g.drawLine(w - 2, 0, w - 2, 0); g.drawLine(0, h - 2, 0, h - 2); g.setColor(PlasticLookAndFeel.getControl()); g.drawLine(w - 1, 0, w - 1, 0); g.drawLine(0, h - 1, 0, h - 1); g.translate(-x, -y); } static void drawThinFlush3DBorder(Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlHighlight()); g.drawLine(0, 0, w - 2, 0); g.drawLine(0, 0, 0, h - 2); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawLine(w - 1, 0, w - 1, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); g.translate(-x, -y); } static void drawThinPressed3DBorder(Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawLine(0, 0, w - 2, 0); g.drawLine(0, 0, 0, h - 2); g.setColor(PlasticLookAndFeel.getControlHighlight()); g.drawLine(w - 1, 0, w - 1, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); g.translate(-x, -y); } /* * Convenience function for determining ComponentOrientation. Helps us * avoid having Munge directives throughout the code. */ static boolean isLeftToRight(Component c) { return c.getComponentOrientation().isLeftToRight(); } // 3D Effects *********************************************************************** /** * Checks and returns whether the specified component type has 3D effects. * * @param keyPrefix the prefix of the key used to lookup the setting * @return true if the component type shall be rendered with a 3D effect * @see #force3D(JComponent) * @see #forceFlat(JComponent) */ static boolean is3D(String keyPrefix) { Object value = UIManager.get(keyPrefix + "is3DEnabled"); return Boolean.TRUE.equals(value); } /** * Checks and returns whether we have a custom hint that forces the 3D mode. * * @param c the component to inspect * @return true if the given component has a 3D hint set * @see #forceFlat(JComponent) */ static boolean force3D(JComponent c) { Object value = c.getClientProperty(PlasticLookAndFeel.IS_3D_KEY); return Boolean.TRUE.equals(value); } /** * Checks and returns whether we have a custom hint that prevents the 3D mode. * * @param c the component to inspect * @return true if the given component has a flat hint set * @see #force3D(JComponent) */ static boolean forceFlat(JComponent c) { Object value = c.getClientProperty(PlasticLookAndFeel.IS_3D_KEY); return Boolean.FALSE.equals(value); } // Painting 3D Effects ************************************************************* private static final float FRACTION_3D = 0.5f; private static void add3DEffekt(Graphics g, Rectangle r, boolean isHorizontal, Color startC0, Color stopC0, Color startC1, Color stopC1) { Graphics2D g2 = (Graphics2D) g; int xb0, yb0, xb1, yb1, xd0, yd0, xd1, yd1, width, height; if (isHorizontal) { width = r.width; height = (int) (r.height * FRACTION_3D); xb0 = r.x; yb0 = r.y; xb1 = xb0; yb1 = yb0 + height; xd0 = xb1; yd0 = yb1; xd1 = xd0; yd1 = r.y + r.height; } else { width = (int) (r.width * FRACTION_3D); height = r.height; xb0 = r.x; yb0 = r.y; xb1 = xb0 + width; yb1 = yb0; xd0 = xb1; yd0 = yb0; xd1 = r.x + r.width; yd1 = yd0; } g2.setPaint(new GradientPaint(xb0, yb0, stopC0, xb1, yb1, startC0)); g2.fillRect(r.x, r.y, width, height); g2.setPaint(new GradientPaint(xd0, yd0, startC1, xd1, yd1, stopC1)); g2.fillRect(xd0, yd0, width, height); } static void add3DEffekt(Graphics g, Rectangle r) { Color brightenStop = UIManager.getColor("Plastic.brightenStop"); if (null == brightenStop) { brightenStop = PlasticTheme.BRIGHTEN_STOP; } // Add round sides Graphics2D g2 = (Graphics2D) g; int border = 10; g2.setPaint(new GradientPaint(r.x, r.y, brightenStop, r.x + border, r.y, PlasticTheme.BRIGHTEN_START)); g2.fillRect(r.x, r.y, border, r.height); int x = r.x + r.width -border; int y = r.y; g2.setPaint(new GradientPaint(x, y, PlasticTheme.DARKEN_START, x + border, y, PlasticTheme.LT_DARKEN_STOP)); g2.fillRect(x, y, border, r.height); add3DEffekt(g, r, true, PlasticTheme.BRIGHTEN_START, brightenStop, PlasticTheme.DARKEN_START, PlasticTheme.LT_DARKEN_STOP); } static void addLight3DEffekt(Graphics g, Rectangle r, boolean isHorizontal) { Color ltBrightenStop = UIManager.getColor("Plastic.ltBrightenStop"); if (null == ltBrightenStop) { ltBrightenStop = PlasticTheme.LT_BRIGHTEN_STOP; } add3DEffekt(g, r, isHorizontal, PlasticTheme.BRIGHTEN_START, ltBrightenStop, PlasticTheme.DARKEN_START, PlasticTheme.LT_DARKEN_STOP); } /* * TODO: Required by the Chartster and JPathReport Filler; move to a * FillerUI. */ public static void addLight3DEffekt(Graphics g, Rectangle r) { Color ltBrightenStop = UIManager.getColor("Plastic.ltBrightenStop"); if (null == ltBrightenStop) { ltBrightenStop = PlasticTheme.LT_BRIGHTEN_STOP; } add3DEffekt(g, r, true, PlasticTheme.DARKEN_START, PlasticTheme.LT_DARKEN_STOP, PlasticTheme.BRIGHTEN_START, ltBrightenStop); } // Low level graphics *************************************************** /* * An optimized version of Graphics.drawRect. */ private static void drawRect(Graphics g, int x, int y, int w, int h) { g.fillRect(x, y, w+1, 1); g.fillRect(x, y+1, 1, h); g.fillRect(x+1, y+h, w, 1); g.fillRect(x+w, y+1, 1, h); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/0000755000175000017500000000000011731047350024122 5ustar tonytonyjgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/package.html0000644000175000017500000000461711731047350026413 0ustar tonytony Contains theme classes for the JGoodies Plastic L&Fs.

Related Documentation

For more information see: @see com.jgoodies.looks @see com.jgoodies.looks.common @see com.jgoodies.looks.plastic @see com.jgoodies.looks.windows jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/SkyBluer.java0000644000175000017500000000772411731047350026537 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticLookAndFeel; import com.jgoodies.looks.plastic.PlasticScrollBarUI; import com.jgoodies.looks.plastic.PlasticTheme; /** * A theme with medium blue primary colors and a light gray window background. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public class SkyBluer extends PlasticTheme { @Override public String getName() { return "Sky Bluer"; } @Override protected ColorUIResource getPrimary1() { return Colors.BLUE_MEDIUM_DARKEST; } @Override protected ColorUIResource getPrimary2() { return Colors.BLUE_MEDIUM_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.BLUE_MEDIUM_LIGHTEST; } @Override protected ColorUIResource getSecondary1() { return Colors.GRAY_MEDIUMDARK; } @Override protected ColorUIResource getSecondary2() { return Colors.GRAY_LIGHT; } @Override protected ColorUIResource getSecondary3() { return Colors.GRAY_LIGHTER; } @Override public ColorUIResource getMenuItemSelectedBackground() { return getPrimary2(); } @Override public ColorUIResource getMenuItemSelectedForeground() { return getWhite(); } @Override public ColorUIResource getMenuSelectedBackground() { return getSecondary2(); } @Override public ColorUIResource getFocusColor() { return PlasticLookAndFeel.getHighContrastFocusColorsEnabled() ? Colors.YELLOW_FOCUS : super.getFocusColor(); } /* * TODO: The following two lines are likely an improvement. * However, they require a rewrite of the PlasticInternalFrameTitlePanel. public ColorUIResource getWindowTitleBackground() { return getPrimary1(); } public ColorUIResource getWindowTitleForeground() { return WHITE; } */ @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(30), }; table.putDefaults(uiDefaults); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/SkyBlue.java0000644000175000017500000000367411731047350026355 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; /** * A theme with low saturated blue primary colors and a light gray * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class SkyBlue extends AbstractSkyTheme { @Override public String getName() { return "Sky Blue"; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/Silver.java0000644000175000017500000000672611731047350026244 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticLookAndFeel; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A completely gray or silver theme that has been optimized to work * in Windows XP environments. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public class Silver extends ExperienceBlue { private static final ColorUIResource GRAY_LIGHT_LIGHTER = new ColorUIResource(190, 190, 190); @Override public String getName() { return "Silver"; } @Override protected ColorUIResource getPrimary1() { return Colors.GRAY_MEDIUMDARK; } @Override protected ColorUIResource getPrimary2() { return Colors.GRAY_MEDIUMLIGHT; } @Override protected ColorUIResource getPrimary3() { return GRAY_LIGHT_LIGHTER; } @Override protected ColorUIResource getSecondary1() { return Colors.GRAY_MEDIUM; } @Override protected ColorUIResource getSecondary2() { return getPrimary2(); } @Override protected ColorUIResource getSecondary3() { return Colors.GRAY_LIGHTER2; } @Override public ColorUIResource getFocusColor() { return PlasticLookAndFeel.getHighContrastFocusColorsEnabled() ? Colors.ORANGE_FOCUS : Colors.BLUE_MEDIUM_DARK; } @Override public ColorUIResource getTitleTextColor() { return Colors.GRAY_DARKEST; } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(50), }; table.putDefaults(uiDefaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/DesertRed.java0000644000175000017500000000463311731047350026654 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; /** * A theme with low saturated red primary colors and a light brown * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class DesertRed extends DesertBlue { @Override public String getName() { return "Desert Red"; } @Override protected ColorUIResource getPrimary2() { return Colors.RED_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.RED_LOW_LIGHTER; } @Override public ColorUIResource getFocusColor() { return Colors.PINK_LOW_DARK; } @Override public ColorUIResource getTitleTextColor() { return Colors.GRAY_DARKER; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/SkyYellow.java0000644000175000017500000000577011731047350026740 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A theme with yellow primary colors and a light gray window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class SkyYellow extends AbstractSkyTheme { @Override public String getName() { return "Sky Yellow"; } @Override protected ColorUIResource getPrimary1() { return Colors.GRAY_DARK; } @Override protected ColorUIResource getPrimary2() { return Colors.YELLOW_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.YELLOW_LOW_LIGHTEST; } @Override public ColorUIResource getFocusColor() { return Colors.ORANGE_FOCUS; } @Override public ColorUIResource getPrimaryControlShadow() { return getPrimary3(); } @Override public ColorUIResource getMenuItemSelectedBackground() { return Colors.YELLOW_LOW_MEDIUMDARK; } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(30), }; table.putDefaults(uiDefaults); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/BrownSugar.java0000644000175000017500000000660411731047350027064 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; /** * An inverted theme with light foreground colors and a dark brown * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class BrownSugar extends InvertedColorTheme { private final ColorUIResource softWhite = new ColorUIResource(165, 157, 143); private final ColorUIResource primary1 = new ColorUIResource( 83, 83, 61); //90, 90, 66);// Dunkel: Rollbalkenrahmen-Dunkel private final ColorUIResource primary2 = new ColorUIResource(115, 107, 82); //132, 123, 90);// Mittel: Rollbalkenhintergrund private final ColorUIResource primary3 = new ColorUIResource(156, 156, 123); //148, 140, 107); //181, 173, 148); // Hell: Ordnerflche, Selektion, Rollbalken-Hoch, Menhintergrund private final ColorUIResource secondary1 = new ColorUIResource( 35, 33, 29); // Abwrts (dunkler)73, 59, 23); private final ColorUIResource secondary2 = new ColorUIResource(105, 99, 87); // Aufwrts (heller)136, 112, 46); private final ColorUIResource secondary3 = new ColorUIResource( 92, 87, 76); // Flche 134, 104, 22); @Override public String getName() { return "Brown Sugar"; } @Override protected ColorUIResource getPrimary1() { return primary1; } @Override protected ColorUIResource getPrimary2() { return primary2; } @Override protected ColorUIResource getPrimary3() { return primary3; } @Override protected ColorUIResource getSecondary1() { return secondary1; } @Override protected ColorUIResource getSecondary2() { return secondary2; } @Override protected ColorUIResource getSecondary3() { return secondary3; } @Override protected ColorUIResource getSoftWhite() { return softWhite; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/InvertedColorTheme.java0000644000175000017500000001441011731047350030527 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import java.awt.Color; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticTheme; /** * The abstract superclass of all inverted Plastic themes, * that have light foreground and dark window background colors. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public abstract class InvertedColorTheme extends PlasticTheme { private final ColorUIResource softWhite = new ColorUIResource(154, 154, 154); private final ColorUIResource primary1 = new ColorUIResource(83, 83, 61); //90, 90, 66);// Dunkel: Rollbalkenrahmen-Dunkel private final ColorUIResource primary2 = new ColorUIResource(115, 107, 82); //132, 123, 90);// Mittel: Rollbalkenhintergrund private final ColorUIResource primary3 = new ColorUIResource(156, 156, 123); //148, 140, 107); //181, 173, 148); // Hell: Ordnerflche, Selektion, Rollbalken-Hoch, Menhintergrund private final ColorUIResource secondary1 = new ColorUIResource(32, 32, 32); // Abwrts (dunkler)73, 59, 23); private final ColorUIResource secondary2 = new ColorUIResource(96, 96, 96); // Aufwrts (heller)136, 112, 46); private final ColorUIResource secondary3 = new ColorUIResource(84, 84, 84); // Flche 134, 104, 22); @Override public ColorUIResource getSimpleInternalFrameBackground() { return getWhite(); } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { "TextField.ineditableForeground", getSoftWhite(), "Plastic.brightenStop", new Color(255, 255, 255, 20), "Plastic.ltBrightenStop", new Color(255, 255, 255, 16), "SimpleInternalFrame.activeTitleBackground", getPrimary2() }; table.putDefaults(uiDefaults); } @Override public ColorUIResource getControlDisabled() { return getSoftWhite(); } @Override public ColorUIResource getControlHighlight() { return getSoftWhite(); } @Override public ColorUIResource getControlInfo() { return getWhite(); } @Override public ColorUIResource getInactiveSystemTextColor() { return getSoftWhite(); } @Override public ColorUIResource getMenuDisabledForeground() { return getSoftWhite(); } @Override public ColorUIResource getMenuItemSelectedBackground() { return getPrimary3(); } @Override public ColorUIResource getMenuItemSelectedForeground() { return getBlack(); } @Override public ColorUIResource getMenuSelectedBackground() { return getPrimary2(); } @Override public ColorUIResource getMenuSelectedForeground() { return getWhite(); } @Override protected ColorUIResource getPrimary1() { return primary1; } @Override protected ColorUIResource getPrimary2() { return primary2; } @Override protected ColorUIResource getPrimary3() { return primary3; } @Override public ColorUIResource getPrimaryControlHighlight() { return getSoftWhite(); } @Override protected ColorUIResource getSecondary1() { return secondary1; } @Override protected ColorUIResource getSecondary2() { return secondary2; } @Override protected ColorUIResource getSecondary3() { return secondary3; } @Override public ColorUIResource getSeparatorBackground() { return getSoftWhite(); } protected ColorUIResource getSoftWhite() { return softWhite; } @Override public ColorUIResource getTitleTextColor() { return getControlInfo(); } @Override public ColorUIResource getToggleButtonCheckColor() { return getWhite(); } @Override public ColorUIResource getFocusColor() { return Colors.GRAY_FOCUS; } // public FontUIResource getControlTextFont() { // return getFont(); // } // // public FontUIResource getMenuTextFont() { // return getFont(); // } // // public FontUIResource getWindowTitleFont() { // return getFont(); // } // // public FontUIResource getSystemTextFont() { // return getFont(); // } // // public FontUIResource getUserTextFont() { // return getFont(); // } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/DarkStar.java0000644000175000017500000000661311731047350026506 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; /** * An inverted theme with light foreground colors and a black * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class DarkStar extends InvertedColorTheme { private final ColorUIResource softWhite = new ColorUIResource(154, 154, 154); private final ColorUIResource primary1 = new ColorUIResource( 83, 83, 61); //90, 90, 66);// Dunkel: Rollbalkenrahmen-Dunkel private final ColorUIResource primary2 = new ColorUIResource(115, 107, 82); //132, 123, 90);// Mittel: Rollbalkenhintergrund private final ColorUIResource primary3 = new ColorUIResource(156, 156, 123); //148, 140, 107); //181, 173, 148); // Hell: Ordnerflche, Selektion, Rollbalken-Hoch, Menhintergrund private final ColorUIResource secondary1 = new ColorUIResource( 32, 32, 32); // Abwrts (dunkler)73, 59, 23); private final ColorUIResource secondary2 = new ColorUIResource( 96, 96, 96); // Aufwrts (heller)136, 112, 46); private final ColorUIResource secondary3 = new ColorUIResource( 84, 84, 84); // Flche 134, 104, 22); @Override public String getName() { return "Dark Star"; } @Override protected ColorUIResource getPrimary1() { return primary1; } @Override protected ColorUIResource getPrimary2() { return primary2; } @Override protected ColorUIResource getPrimary3() { return primary3; } @Override protected ColorUIResource getSecondary1() { return secondary1; } @Override protected ColorUIResource getSecondary2() { return secondary2; } @Override protected ColorUIResource getSecondary3() { return secondary3; } @Override protected ColorUIResource getSoftWhite() { return softWhite; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/ExperienceRoyale.java0000644000175000017500000001067711731047350030243 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A theme with low saturated blue primary colors and a light gray/blueish * window background. It has been optimized to work with Windows XP * using the "Royale" desktop theme. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ * * @since 2.0.3 */ public class ExperienceRoyale extends DesertBluer { @Override public String getName() { return "Experience Royale"; } protected static final ColorUIResource ROYALE_BACKGROUND = new ColorUIResource(235, 233, 237); protected static final ColorUIResource ROYALE_BACKGROUND_DARKER = new ColorUIResource(167, 166, 170); protected static final ColorUIResource ROYALE_SELECTION = new ColorUIResource(51, 94, 168); private static final ColorUIResource SECONDARY1 = Colors.GRAY_MEDIUM; private static final ColorUIResource SECONDARY2 = ROYALE_BACKGROUND_DARKER; private static final ColorUIResource SECONDARY3 = ROYALE_BACKGROUND; @Override protected ColorUIResource getPrimary1() { return ROYALE_SELECTION; } @Override protected ColorUIResource getPrimary2() { return Colors.BLUE_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.BLUE_LOW_LIGHTEST; } @Override protected ColorUIResource getSecondary1() { return SECONDARY1; } @Override protected ColorUIResource getSecondary2() { return SECONDARY2; } @Override protected ColorUIResource getSecondary3() { return SECONDARY3; } @Override public ColorUIResource getFocusColor() { return Colors.ORANGE_FOCUS; } @Override public ColorUIResource getPrimaryControlShadow() { return getPrimary3(); } @Override public ColorUIResource getMenuSelectedBackground() { return getPrimary1(); } @Override public ColorUIResource getMenuSelectedForeground() { return WHITE; } @Override public ColorUIResource getMenuItemBackground() { return WHITE; } @Override public ColorUIResource getToggleButtonCheckColor() { return Colors.GREEN_CHECK; } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { "ScrollBar.thumbHighlight", getPrimaryControlHighlight(), PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(22), }; table.putDefaults(uiDefaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/DesertYellow.java0000644000175000017500000000565611731047350027423 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A theme with low saturated yellow primary colors and a light brown * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class DesertYellow extends DesertBlue { @Override public String getName() { return "Desert Yellow"; } @Override protected ColorUIResource getPrimary2() { return Colors.YELLOW_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.YELLOW_LOW_LIGHTEST; } @Override public ColorUIResource getTitleTextColor() { return Colors.GRAY_DARKER; } @Override public ColorUIResource getMenuItemSelectedBackground() { return Colors.YELLOW_LOW_MEDIUMDARK; } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { "ScrollBar.is3DEnabled", Boolean.TRUE, PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(30), }; table.putDefaults(uiDefaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/SkyRed.java0000644000175000017500000000445611731047350026177 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; /** * A theme with low saturated red primary colors and a light gray * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class SkyRed extends AbstractSkyTheme { @Override public String getName() { return "Sky Red"; } @Override protected ColorUIResource getPrimary1() { return Colors.RED_LOW_DARK; } @Override protected ColorUIResource getPrimary2() { return Colors.RED_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.RED_LOW_LIGHTER; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/LightGray.java0000644000175000017500000000750211731047350026663 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticLookAndFeel; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A very light color theme intended to be used on Windows Vista in Aero style. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @since 2.0.3 */ public class LightGray extends ExperienceBlue { private static final ColorUIResource GRAY_VERY_LIGHT = new ColorUIResource(244, 244, 244); @Override public String getName() { return "Light Gray"; } @Override protected ColorUIResource getPrimary1() { return new ColorUIResource(51, 153, 255); // Selection } @Override protected ColorUIResource getPrimary2() { return Colors.GRAY_MEDIUMLIGHT; } @Override protected ColorUIResource getPrimary3() { return new ColorUIResource(225, 240, 255); // GRAY_VERY_LIGHT; } @Override protected ColorUIResource getSecondary1() { // 3D Schattenseite return Colors.GRAY_MEDIUM; } @Override protected ColorUIResource getSecondary2() { // Disabled Border return getPrimary2(); } @Override protected ColorUIResource getSecondary3() { return GRAY_VERY_LIGHT; // Window background } @Override public ColorUIResource getFocusColor() { return PlasticLookAndFeel.getHighContrastFocusColorsEnabled() ? Colors.ORANGE_FOCUS : Colors.BLUE_MEDIUM_DARK; } @Override public ColorUIResource getTitleTextColor() { return Colors.GRAY_DARKEST; } @Override public ColorUIResource getSimpleInternalFrameBackground() { return Colors.GRAY_MEDIUMDARK; } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(30), "TabbedPane.selected", getWhite(), "TabbedPane.selectHighlight", Colors.GRAY_MEDIUM, }; table.putDefaults(uiDefaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/DesertBluer.java0000644000175000017500000000666311731047350027220 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticLookAndFeel; /** * A theme with medium saturated blue primary colors and a light brown * window background. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public class DesertBluer extends SkyBluer { private final ColorUIResource primary1 = new ColorUIResource( 10, 36, 106); private final ColorUIResource primary2 = new ColorUIResource( 85, 115, 170); private final ColorUIResource primary3 = new ColorUIResource(172, 210, 248); private final ColorUIResource secondary2 = new ColorUIResource(148, 144, 140); private final ColorUIResource secondary3 = new ColorUIResource(212, 208, 200); @Override public String getName() { return "Desert Bluer"; } @Override protected ColorUIResource getPrimary1() { return primary1; } @Override protected ColorUIResource getPrimary2() { return primary2; } @Override protected ColorUIResource getPrimary3() { return primary3; } @Override protected ColorUIResource getSecondary1() { return Colors.GRAY_MEDIUM; } @Override protected ColorUIResource getSecondary2() { return secondary2; } @Override protected ColorUIResource getSecondary3() { return secondary3; } @Override public ColorUIResource getTextHighlightColor() { return getPrimary1(); } @Override public ColorUIResource getHighlightedTextColor() { return getWhite(); } @Override public ColorUIResource getMenuItemSelectedBackground() { return getPrimary1(); } @Override public ColorUIResource getFocusColor() { return PlasticLookAndFeel.getHighContrastFocusColorsEnabled() ? Colors.ORANGE_FOCUS : super.getFocusColor(); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/SkyKrupp.java0000644000175000017500000000612411731047350026560 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticLookAndFeel; /** * A theme with metal blue primary colors and a light gray window background. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public class SkyKrupp extends AbstractSkyTheme { @Override public String getName() { return "Sky Krupp"; } private final ColorUIResource primary1 = new ColorUIResource(54, 54, 90); private final ColorUIResource primary2 = new ColorUIResource(156, 156, 178); private final ColorUIResource primary3 = new ColorUIResource(197, 197, 221); @Override protected ColorUIResource getPrimary1() { return primary1; } @Override protected ColorUIResource getPrimary2() { return primary2; } @Override protected ColorUIResource getPrimary3() { return primary3; } @Override public ColorUIResource getMenuItemSelectedBackground() { return getPrimary1(); } @Override public ColorUIResource getMenuItemSelectedForeground() { return getWhite(); } @Override public ColorUIResource getMenuSelectedBackground() { return getSecondary2(); } @Override public ColorUIResource getFocusColor() { return PlasticLookAndFeel.getHighContrastFocusColorsEnabled() ? Colors.ORANGE_FOCUS : Colors.GRAY_DARK; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/Colors.java0000644000175000017500000001460611731047350026235 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import java.awt.Color; import javax.swing.plaf.ColorUIResource; /** * Consists of base colors useful for building new color themes. *

* The field names use the following naming convention: * <color name>_<saturation>_<brightness>, * for example: {@code BLUE_HIGH_LIGHT} and {@code GREEN_MEDIUM_LIGHTER}.

* * The saturation values are: {@code LOW}, {@code MEDIUM}, * and {@code HIGH}. Brightness values are: * {@code DARKEST}, {@code DARKER}, {@code DARK}, * {@code MEDIUM}, {@code LIGHT}, {@code LIGHTER}, * and {@code LIGHTEST}. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ final class Colors { // Gray Colors ********************************************************************** static final ColorUIResource GRAY_DARKEST = new ColorUIResource( 64, 64, 64); static final ColorUIResource GRAY_DARKER = new ColorUIResource( 82, 82, 82); static final ColorUIResource GRAY_DARK = new ColorUIResource( 90, 90, 90); static final ColorUIResource GRAY_MEDIUMDARK = new ColorUIResource(110, 110, 110); static final ColorUIResource GRAY_MEDIUM = new ColorUIResource(128, 128, 128); static final ColorUIResource GRAY_MEDIUMLIGHT = new ColorUIResource(150, 150, 150); static final ColorUIResource GRAY_LIGHT = new ColorUIResource(170, 170, 170); static final ColorUIResource GRAY_LIGHTER = new ColorUIResource(220, 220, 220); static final ColorUIResource GRAY_LIGHTER2 = new ColorUIResource(230, 230, 230); static final ColorUIResource GRAY_LIGHTEST = new ColorUIResource(240, 240, 240); // Brown Colors ********************************************************************* static final ColorUIResource BROWN_LIGHTEST = new ColorUIResource(242, 241, 238); // Blue Colors ********************************************************************* static final ColorUIResource BLUE_LOW_MEDIUM = new ColorUIResource(166, 202, 240); static final ColorUIResource BLUE_LOW_LIGHTEST = new ColorUIResource(195, 212, 232); static final ColorUIResource BLUE_MEDIUM_DARKEST = new ColorUIResource( 44, 73, 135); static final ColorUIResource BLUE_MEDIUM_DARK = new ColorUIResource( 49, 106, 196); static final ColorUIResource BLUE_MEDIUM_MEDIUM = new ColorUIResource( 85, 115, 170); // 58, 110, 165); static final ColorUIResource BLUE_MEDIUM_LIGHTEST = new ColorUIResource(172, 210, 248); //189, 220, 251); //153, 179, 205); // Green Colors ********************************************************************* static final ColorUIResource GREEN_LOW_DARK = new ColorUIResource( 75, 148, 75); static final ColorUIResource GREEN_LOW_MEDIUM = new ColorUIResource(112, 190, 112); static final ColorUIResource GREEN_LOW_LIGHTEST = new ColorUIResource(200, 222, 200); static final ColorUIResource GREEN_CHECK = new ColorUIResource( 33, 161, 33); // Pink Colors ********************************************************************** static final ColorUIResource PINK_HIGH_DARK = new ColorUIResource(128, 0, 128); //192, 0, 192); static final ColorUIResource PINK_LOW_DARK = new ColorUIResource(128, 70, 128); //192, 0, 192); static final ColorUIResource PINK_LOW_MEDIUM = new ColorUIResource(190, 150, 190); static final ColorUIResource PINK_LOW_LIGHTER = new ColorUIResource(233, 207, 233); // Red Colors ********************************************************************** static final ColorUIResource RED_LOW_DARK = new ColorUIResource(128, 70, 70); static final ColorUIResource RED_LOW_MEDIUM = new ColorUIResource(190, 112, 112); static final ColorUIResource RED_LOW_LIGHTER = new ColorUIResource(222, 200, 200); // Yellow Colors ******************************************************************* static final ColorUIResource YELLOW_LOW_MEDIUMDARK = new ColorUIResource(182, 149, 18); static final ColorUIResource YELLOW_LOW_MEDIUM = new ColorUIResource(244, 214, 96); static final ColorUIResource YELLOW_LOW_LIGHTEST = new ColorUIResource(249, 225, 131); // Focus Colors ********************************************************************* static final ColorUIResource BLUE_FOCUS = BLUE_MEDIUM_LIGHTEST; static final ColorUIResource ORANGE_FOCUS = new ColorUIResource(245, 165, 16); static final ColorUIResource YELLOW_FOCUS = new ColorUIResource(255, 223, 63); static final ColorUIResource GRAY_FOCUS = new ColorUIResource(Color.LIGHT_GRAY); }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/DesertBlue.java0000644000175000017500000000734511731047350027034 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticLookAndFeel; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A theme with low saturated blue primary colors and a light brown * window background. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public class DesertBlue extends DesertBluer { @Override public String getName() { return "Desert Blue"; } private static final ColorUIResource SECONDARY2 = new ColorUIResource(148, 144, 140); private static final ColorUIResource SECONDARY3 = new ColorUIResource(211, 210, 204); @Override protected ColorUIResource getPrimary1() { return Colors.GRAY_DARK; } @Override protected ColorUIResource getPrimary2() { return Colors.BLUE_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.BLUE_LOW_LIGHTEST; } @Override protected ColorUIResource getSecondary1() { return Colors.GRAY_MEDIUM; } @Override protected ColorUIResource getSecondary2() { return SECONDARY2; } @Override protected ColorUIResource getSecondary3() { return SECONDARY3; } @Override public ColorUIResource getTitleTextColor() { return Colors.BLUE_MEDIUM_DARKEST;} @Override public ColorUIResource getFocusColor() { return PlasticLookAndFeel.getHighContrastFocusColorsEnabled() ? Colors.YELLOW_FOCUS : Colors.BLUE_MEDIUM_DARK; } // Background @Override public ColorUIResource getPrimaryControlShadow() { return getPrimary3(); } @Override public ColorUIResource getMenuItemSelectedBackground() { return getPrimary1(); } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { "ScrollBar.is3DEnabled", Boolean.FALSE, "ScrollBar.thumbHighlight", getPrimaryControlHighlight(), PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, null, }; table.putDefaults(uiDefaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/AbstractSkyTheme.java0000644000175000017500000000672111731047350030210 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A theme with low saturated blue primary colors and a light gray * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public abstract class AbstractSkyTheme extends SkyBluer { private static final ColorUIResource SECONDARY2 = new ColorUIResource(164, 164, 164); private static final ColorUIResource SECONDARY3 = new ColorUIResource(225, 225, 225); @Override protected ColorUIResource getPrimary1() { return Colors.GRAY_DARK; } @Override protected ColorUIResource getPrimary2() { return Colors.BLUE_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.BLUE_LOW_LIGHTEST; } @Override protected ColorUIResource getSecondary1() { return Colors.GRAY_MEDIUM; } @Override protected ColorUIResource getSecondary2() { return SECONDARY2; } @Override protected ColorUIResource getSecondary3() { return SECONDARY3; } // Background @Override public ColorUIResource getPrimaryControlShadow() { return getPrimary3(); } @Override public ColorUIResource getMenuItemSelectedBackground() { return getPrimary1(); } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, null, "ScrollBar.thumbHighlight", getPrimaryControlHighlight(), }; table.putDefaults(uiDefaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/ExperienceGreen.java0000644000175000017500000000511711731047350030041 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; /** * A theme with low saturated green primary colors and a light brown * window background. It has been optimized to work with Windows XP * default desktop settings. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class ExperienceGreen extends ExperienceBlue { @Override public String getName() { return "Experience Green"; } private static final ColorUIResource FOCUS = new ColorUIResource(245, 165, 16); @Override protected ColorUIResource getPrimary1() { return Colors.GREEN_LOW_DARK; } @Override protected ColorUIResource getPrimary2() { return Colors.GREEN_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.GREEN_LOW_LIGHTEST; } @Override public ColorUIResource getFocusColor() { return FOCUS; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/SkyGreen.java0000644000175000017500000000431311731047350026515 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; /** * A theme with low saturated green primary colors and a light gray * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class SkyGreen extends AbstractSkyTheme { @Override public String getName() { return "Sky Green"; } @Override protected ColorUIResource getPrimary2() { return Colors.GREEN_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.GREEN_LOW_LIGHTEST; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/ExperienceBlue.java0000644000175000017500000001045611731047350027672 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A theme with low saturated blue primary colors and a light brown * window background. It has been optimized to work with Windows XP * default desktop settings. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public class ExperienceBlue extends DesertBluer { @Override public String getName() { return "Experience Blue"; } protected static final ColorUIResource LUNA_BACKGROUND = new ColorUIResource(236, 233, 216); protected static final ColorUIResource LUNA_BACKGROUND_DARKER = new ColorUIResource(189, 190, 176); private static final ColorUIResource SECONDARY1 = Colors.GRAY_MEDIUM; private static final ColorUIResource SECONDARY2 = LUNA_BACKGROUND_DARKER; private static final ColorUIResource SECONDARY3 = LUNA_BACKGROUND; @Override protected ColorUIResource getPrimary1() { return Colors.BLUE_MEDIUM_DARK; } @Override protected ColorUIResource getPrimary2() { return Colors.BLUE_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.BLUE_LOW_LIGHTEST; } @Override protected ColorUIResource getSecondary1() { return SECONDARY1; } @Override protected ColorUIResource getSecondary2() { return SECONDARY2; } @Override protected ColorUIResource getSecondary3() { return SECONDARY3; } @Override public ColorUIResource getFocusColor() { return Colors.ORANGE_FOCUS; } @Override public ColorUIResource getPrimaryControlShadow() { return getPrimary3(); } @Override public ColorUIResource getMenuSelectedBackground() { return getPrimary1(); } @Override public ColorUIResource getMenuSelectedForeground() { return WHITE; } @Override public ColorUIResource getMenuItemBackground() { return WHITE; } @Override public ColorUIResource getToggleButtonCheckColor() { return Colors.GREEN_CHECK; } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { "ScrollBar.thumbHighlight", getPrimaryControlHighlight(), PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(22), }; table.putDefaults(uiDefaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/DesertGreen.java0000644000175000017500000000447211731047350027203 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.plaf.ColorUIResource; /** * A theme with low saturated green primary colors and a light brown * window background. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class DesertGreen extends DesertBlue { @Override public String getName() { return "Desert Green"; } @Override protected ColorUIResource getPrimary2() { return Colors.GREEN_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.GREEN_LOW_LIGHTEST; } @Override public ColorUIResource getTitleTextColor() { return Colors.GRAY_DARKER; } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/theme/SkyPink.java0000644000175000017500000000541211731047350026357 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic.theme; import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import com.jgoodies.looks.plastic.PlasticScrollBarUI; /** * A theme with pink foreground and a light gray window background color. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public class SkyPink extends AbstractSkyTheme { @Override public String getName() { return "Sky Pink"; } @Override protected ColorUIResource getPrimary1() { return Colors.PINK_LOW_DARK; } @Override protected ColorUIResource getPrimary2() { return Colors.PINK_LOW_MEDIUM; } @Override protected ColorUIResource getPrimary3() { return Colors.PINK_LOW_LIGHTER; } @Override public ColorUIResource getHighlightedTextColor() { return getControlTextColor(); } @Override public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); Object[] uiDefaults = { PlasticScrollBarUI.MAX_BUMPS_WIDTH_KEY, new Integer(30), }; table.putDefaults(uiDefaults); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticButtonUI.java0000644000175000017500000001244111731047366026725 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Container; import java.awt.Graphics; import java.awt.Rectangle; import javax.swing.*; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalButtonUI; /** * The JGoodies Plastic L&F implementation of {@code ButtonUI}. * It differs from the superclass {@code MetalButtonUI} in that * it can add a pseudo 3D effect and that the border can paint the focus. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public class PlasticButtonUI extends MetalButtonUI { private static final PlasticButtonUI INSTANCE = new PlasticButtonUI(); private boolean borderPaintsFocus; public static ComponentUI createUI(JComponent b) { return INSTANCE; } /** * Installs defaults. */ @Override public void installDefaults(AbstractButton b) { super.installDefaults(b); borderPaintsFocus = Boolean.TRUE.equals(UIManager.get("Button.borderPaintsFocus")); } // Painting *************************************************************** @Override public void update(Graphics g, JComponent c) { if (c.isOpaque()) { AbstractButton b = (AbstractButton) c; if (isToolBarButton(b)) { c.setOpaque(false); } else if (b.isContentAreaFilled()) { g.setColor(c.getBackground()); g.fillRect(0, 0, c.getWidth(), c.getHeight()); if (is3D(b)) { Rectangle r = new Rectangle( 1, 1, c.getWidth() - 2, c.getHeight() - 1); PlasticUtils.add3DEffekt(g, r); } } } paint(g, c); } /** * Paints the focus with close to the button's border. */ @Override protected void paintFocus( Graphics g, AbstractButton b, Rectangle viewRect, Rectangle textRect, Rectangle iconRect) { if (borderPaintsFocus) { return; } boolean isDefault = b instanceof JButton && ((JButton) b).isDefaultButton(); int topLeftInset = isDefault ? 3 : 2; int width = b.getWidth() - 1 - topLeftInset * 2; int height = b.getHeight() - 1 - topLeftInset * 2; g.setColor(getFocusColor()); g.drawRect(topLeftInset, topLeftInset, width - 1, height - 1); } // Private Helper Code ************************************************************** /** * Checks and answers if this is button is in a tool bar. * * @param b the button to check * @return true if in tool bar, false otherwise */ protected boolean isToolBarButton(AbstractButton b) { Container parent = b.getParent(); return parent != null && (parent instanceof JToolBar || parent.getParent() instanceof JToolBar); } /** * Checks and answers if this button shall use a pseudo 3D effect. * * @param b the button to check * @return true indicates a 3D effect, false flat */ protected boolean is3D(AbstractButton b) { if (PlasticUtils.force3D(b)) { return true; } if (PlasticUtils.forceFlat(b)) { return false; } ButtonModel model = b.getModel(); return PlasticUtils.is3D("Button.") && b.isBorderPainted() && model.isEnabled() && !(model.isPressed() && model.isArmed()); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPCheckBoxUI.java0000644000175000017500000000474211731047364027413 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.AbstractButton; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicButtonListener; import javax.swing.plaf.metal.MetalCheckBoxUI; /** * The JGoodies PlasticXP l&l implementation of {@code CheckBoxUI}. * Unlike its superclass, it uses a button listener that sets the armed state * if the mouse is over. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticXPCheckBoxUI extends MetalCheckBoxUI { private static final PlasticXPCheckBoxUI INSTANCE = new PlasticXPCheckBoxUI(); public static ComponentUI createUI(JComponent b){ return INSTANCE; } @Override protected BasicButtonListener createButtonListener(AbstractButton b) { return new ActiveBasicButtonListener(b); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/Plastic3DLookAndFeel.java0000644000175000017500000000606611731047366027534 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.UIDefaults; /** * Intializes class and component defaults for the JGoodies Plastic3D * look&feel. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ public class Plastic3DLookAndFeel extends PlasticLookAndFeel { /** * Constructs the JGoodies Plastic3D look&feel. */ public Plastic3DLookAndFeel() { } @Override public String getID() { return "JGoodies Plastic 3D"; } @Override public String getName() { return "JGoodies Plastic 3D"; } @Override public String getDescription() { return "The JGoodies Plastic 3D Look and Feel" + " - \u00a9 2001-2012 JGoodies Karsten Lentzsch"; } @Override protected boolean is3DEnabled() { return true; } /** * Initializes the Plastic3D component defaults. * * @param table the UIDefaults table to work with */ @Override protected void initComponentDefaults(UIDefaults table) { super.initComponentDefaults(table); Object menuBarBorder = PlasticBorders.getThinRaisedBorder(); Object toolBarBorder = PlasticBorders.getThinRaisedBorder(); Object[] defaults = { "MenuBar.border", menuBarBorder, "ToolBar.border", toolBarBorder, }; table.putDefaults(defaults); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticXPSpinnerUI.java0000644000175000017500000001754611731047364027351 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalLookAndFeel; /** * The JGoodies PlasticXP Look&Feel implementation of {@code SpinnerUI}. * Configures the default editor to adjust font baselines and component * bounds. Also, changes the border of the buttons and the size of the arrows. * * @author Karsten Lentzsch * @version $Revision: 1.11 $ */ public final class PlasticXPSpinnerUI extends PlasticSpinnerUI { public static ComponentUI createUI(JComponent b) { return new PlasticXPSpinnerUI(); } @Override protected Component createArrowButton(int direction) { return new SpinnerXPArrowButton(direction); } /** * It differs from its superclass in that it uses the same formula as JDK * to calculate the arrow height. */ private static final class SpinnerXPArrowButton extends PlasticArrowButton { SpinnerXPArrowButton(int direction) { // If you change the value of the button width, don't forget // to change it in PlasticXPBorders#XPSpinnerBorder too. super(direction, UIManager.getInt("ScrollBar.width") - 1, false); } @Override protected int calculateArrowHeight(int height, int width) { int arrowHeight = Math.min((height - 4) / 3, (width - 4) / 3); return Math.max(arrowHeight, 3); } @Override protected boolean isPaintingNorthBottom() { return true; } @Override protected int calculateArrowOffset() { return 1; } @Override protected void paintNorth(Graphics g, boolean leftToRight, boolean isEnabled, Color arrowColor, boolean isPressed, int width, int height, int w, int h, int arrowHeight, int arrowOffset, boolean paintBottom) { if (!isFreeStanding) { height += 1; g.translate(0, -1); if (!leftToRight) { width += 1; g.translate(-1, 0); } else { width += 2; } } // Draw the arrow g.setColor(arrowColor); int startY = 1 + ((h + 1) - arrowHeight) / 2; // KL was (h + 1) int startX = w / 2; // System.out.println( "startX :" + startX + " startY :"+startY); for (int line = 0; line < arrowHeight; line++) { g.fillRect(startX - line - arrowOffset, startY + line, 2 * (line + 1), 1); } paintNorthBorder(g, isEnabled, width, height, paintBottom); if (!isFreeStanding) { height -= 1; g.translate(0, 1); if (!leftToRight) { width -= 1; g.translate(1, 0); } else { width -= 2; } } } private void paintNorthBorder(Graphics g, boolean isEnabled, int w, int h, boolean paintBottom) { if (isEnabled) { boolean isPressed = model.isPressed() && model.isArmed(); if (isPressed) { PlasticXPUtils.drawPressedButtonBorder(g, 0, 1, w - 2, h); } else { PlasticXPUtils.drawPlainButtonBorder(g, 0, 1, w - 2, h); } } else { PlasticXPUtils.drawDisabledButtonBorder(g, 0, 1, w - 2, h + 1); } // Paint one pixel on the arrow button's left hand side. g.setColor(isEnabled ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlShadow()); g.fillRect(0, 1, 1, 1); if (paintBottom) { g.fillRect(0, h - 1, w - 1, 1); } } @Override protected void paintSouth(Graphics g, boolean leftToRight, boolean isEnabled, Color arrowColor, boolean isPressed, int width, int height, int w, int h, int arrowHeight, int arrowOffset) { if (!isFreeStanding) { height += 1; if (!leftToRight) { width += 1; g.translate(-1, 0); } else { width += 2; } } // Draw the arrow g.setColor(arrowColor); int startY = (((h + 0) - arrowHeight) / 2) + arrowHeight - 2; // KL was h + 1 int startX = w / 2; //System.out.println( "startX2 :" + startX + " startY2 :"+startY); for (int line = 0; line < arrowHeight; line++) { g.fillRect(startX - line - arrowOffset, startY - line, 2 * (line + 1), 1); } paintSouthBorder(g, isEnabled, width, height); if (!isFreeStanding) { height -= 1; if (!leftToRight) { width -= 1; g.translate(1, 0); } else { width -= 2; } } } private void paintSouthBorder(Graphics g, boolean isEnabled, int w, int h) { if (isEnabled) { boolean isPressed = model.isPressed() && model.isArmed(); if (isPressed) { PlasticXPUtils.drawPressedButtonBorder(g, 0, -2, w - 2, h + 1); } else { PlasticXPUtils.drawPlainButtonBorder(g, 0, -2, w - 2, h + 1); } } else { PlasticXPUtils.drawDisabledButtonBorder(g, 0, -2, w-2, h + 1); } // Paint one pixel on the arrow button's left hand side. g.setColor(isEnabled ? PlasticLookAndFeel.getControlDarkShadow() : MetalLookAndFeel.getControlShadow()); g.fillRect(0, h - 2, 1, 1); } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticTabbedPaneUI.java0000644000175000017500000035303711731047364027446 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicTabbedPaneUI; import javax.swing.plaf.metal.MetalLookAndFeel; import javax.swing.plaf.metal.MetalTabbedPaneUI; import javax.swing.text.View; import com.jgoodies.looks.Options; /** * The JGoodies Plastic Look&Feel implementation of * {@code TabbedPaneUI}. It differs from its superclass * {@code MetalTabbedPaneUI} in that it paints new tab shapes, * provides two options, and supports ClearLook. *

* You can enable or disable icons in tabs globally via * com.jgoodies.looks.Options.setTabIconsEnabled(boolean). *

* To disable the content border set *

 * JTabbedPane tabbedPane = new JTabbedPane();
 * tabbedPane.putClientProperty(Option.NO_CONTENT_BORDER_KEY, Boolean.TRUE);
 * 
* To paint embedded tabs use *
 * JTabbedPane tabbedPane = new JTabbedPane();
 * tabbedPane.putClientProperty(Option.EMBEDDED_TABS_KEY, Boolean.TRUE);
 * 
*

* There's a special mode that helps you detect content borders in * heavily wrapped component hierarchies - such as the NetBeans IDE. * In this marked mode the content border is painted as a Magenta line. * You can enable this mode by setting the System property * markContentBorders to true; in a command line: *

 * java -DmarkContentBorders=true
 * 

* * Thanks to Andrej Golovnin for his feedback and suggestions. * * @author Karsten Lentzsch * @version $Revision: 1.15 $ * * @see Options */ public final class PlasticTabbedPaneUI extends MetalTabbedPaneUI { // State ****************************************************************** /** * Describes if tabs are painted with or without icons. */ private static boolean isTabIconsEnabled = Options.isTabIconsEnabled(); /** * Describes if we paint no content border or not; is false by default. * You can disable the content border by setting the client property * Options.NO_CONTENT_BORDER_KEY to Boolean.TRUE; */ private Boolean noContentBorder; /** * Describes if we paint tabs in an embedded style that is with * less decoration; this is false by default. * You can enable the embedded tabs style by setting the client property * Options.EMBEDDED_TABS_KEY to Boolean.TRUE. */ private Boolean embeddedTabs; /** * Holds the renderer that is used to render the tabs. */ private AbstractRenderer renderer; /** For use when tabLayoutPolicy == SCROLL_TAB_LAYOUT. */ private ScrollableTabSupport tabScroller; /** * Creates the {@code PlasticTabbedPaneUI}. * * @see javax.swing.plaf.ComponentUI#createUI(JComponent) */ public static ComponentUI createUI(JComponent tabPane) { return new PlasticTabbedPaneUI(); } /** * Installs the UI. * * @see javax.swing.plaf.ComponentUI#installUI(JComponent) */ @Override public void installUI(JComponent c) { super.installUI(c); embeddedTabs = (Boolean) c.getClientProperty(Options.EMBEDDED_TABS_KEY); noContentBorder = (Boolean) c.getClientProperty(Options.NO_CONTENT_BORDER_KEY); renderer = createRenderer(tabPane); } /** * Uninstalls the UI. * @see javax.swing.plaf.ComponentUI#uninstallUI(JComponent) */ @Override public void uninstallUI(JComponent c) { renderer = null; super.uninstallUI(c); } /** * Creates and installs any required subcomponents for the JTabbedPane. * Invoked by installUI. * @see javax.swing.plaf.basic.BasicTabbedPaneUI#installComponents() */ @Override protected void installComponents() { if (scrollableTabLayoutEnabled()) { if (tabScroller == null) { tabScroller = new ScrollableTabSupport(tabPane.getTabPlacement()); tabPane.add(tabScroller.viewport); } } } /** * Removes any installed subcomponents from the JTabbedPane. * Invoked by uninstallUI. * @see javax.swing.plaf.basic.BasicTabbedPaneUI#uninstallComponents() */ @Override protected void uninstallComponents() { if (scrollableTabLayoutEnabled()) { tabPane.remove(tabScroller.viewport); tabPane.remove(tabScroller.scrollForwardButton); tabPane.remove(tabScroller.scrollBackwardButton); tabScroller = null; } } @Override protected void installKeyboardActions() { super.installKeyboardActions(); // if the layout policy is the SCROLL_TAB_LAYOUT, then replace // the forward and backward actions, installed in the action map // in the supper class, by our own. if (scrollableTabLayoutEnabled()) { Action forwardAction = new ScrollTabsForwardAction(); Action backwardAction = new ScrollTabsBackwardAction(); ActionMap am = SwingUtilities.getUIActionMap(tabPane); am.put("scrollTabsForwardAction", forwardAction); am.put("scrollTabsBackwardAction", backwardAction); tabScroller.scrollForwardButton.setAction(forwardAction); tabScroller.scrollBackwardButton.setAction(backwardAction); } } /** * Checks and answers if content border will be painted. * This is controlled by the component's client property * Options.NO_CONTENT_BORDER or Options.EMBEDDED. */ private boolean hasNoContentBorder() { return Boolean.TRUE.equals(noContentBorder); } /** * Checks and answers if tabs are painted with minimal decoration. */ private boolean hasEmbeddedTabs() { return Boolean.TRUE.equals(embeddedTabs); } /** * Creates the renderer used to lay out and paint the tabs. * @param tabbedPane the UIs component * @return AbstractRenderer the renderer that will be used to paint */ private AbstractRenderer createRenderer(JTabbedPane tabbedPane) { return hasEmbeddedTabs() ? AbstractRenderer.createEmbeddedRenderer(tabbedPane) : AbstractRenderer.createRenderer(tabPane); } /** * Creates and answer a handler that listens to property changes. * Unlike the superclass BasicTabbedPane, the PlasticTabbedPaneUI * uses an extended Handler. */ @Override protected PropertyChangeListener createPropertyChangeListener() { return new MyPropertyChangeHandler(); } @Override protected ChangeListener createChangeListener() { return new TabSelectionHandler(); } /* * Private helper method for the next three methods. */ private void doLayout() { tabPane.revalidate(); tabPane.repaint(); } /** * Updates the renderer and layout. This message is sent by * my PropertyChangeHandler whenever the tab placement changes. */ private void tabPlacementChanged() { renderer = createRenderer(tabPane); if (scrollableTabLayoutEnabled()) { tabScroller.createButtons(); } doLayout(); } /** * Updates the embedded tabs property. This message is sent by * my PropertyChangeHandler whenever the embedded tabs property changes. */ private void embeddedTabsPropertyChanged(Boolean newValue) { embeddedTabs = newValue; renderer = createRenderer(tabPane); doLayout(); } /** * Updates the no content border property. This message is sent * by my PropertyChangeHandler whenever the noContentBorder * property changes. */ private void noContentBorderPropertyChanged(Boolean newValue) { noContentBorder = newValue; tabPane.repaint(); } @Override public void paint(Graphics g, JComponent c) { int selectedIndex = tabPane.getSelectedIndex(); int tabPlacement = tabPane.getTabPlacement(); ensureCurrentLayout(); // Paint tab area // If scrollable tabs are enabled, the tab area will be // painted by the scrollable tab panel instead. // if (!scrollableTabLayoutEnabled()) { // WRAP_TAB_LAYOUT paintTabArea(g, tabPlacement, selectedIndex); } // Paint content border paintContentBorder(g, tabPlacement, selectedIndex); } @Override protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect) { Rectangle tabRect = rects[tabIndex]; int selectedIndex = tabPane.getSelectedIndex(); boolean isSelected = selectedIndex == tabIndex; Graphics2D g2 = null; Polygon cropShape = null; Shape save = null; int cropx = 0; int cropy = 0; if (scrollableTabLayoutEnabled()) { if (g instanceof Graphics2D) { g2 = (Graphics2D) g; // Render visual for cropped tab edge... Rectangle viewRect = tabScroller.viewport.getViewRect(); int cropline; switch (tabPlacement) { case LEFT: case RIGHT: cropline = viewRect.y + viewRect.height; if (tabRect.y < cropline && tabRect.y + tabRect.height > cropline) { cropShape = createCroppedTabClip(tabPlacement, tabRect, cropline); cropx = tabRect.x; cropy = cropline - 1; } break; case TOP: case BOTTOM: default: cropline = viewRect.x + viewRect.width; if (tabRect.x < cropline && tabRect.x + tabRect.width > cropline) { cropShape = createCroppedTabClip(tabPlacement, tabRect, cropline); cropx = cropline - 1; cropy = tabRect.y; } } if (cropShape != null) { save = g.getClip(); g2.clip(cropShape); } } } paintTabBackground(g, tabPlacement, tabIndex, tabRect.x, tabRect.y, tabRect.width, tabRect.height, isSelected); paintTabBorder(g, tabPlacement, tabIndex, tabRect.x, tabRect.y, tabRect.width, tabRect.height, isSelected); String title = tabPane.getTitleAt(tabIndex); Font font = tabPane.getFont(); FontMetrics metrics = g.getFontMetrics(font); Icon icon = getIconForTab(tabIndex); layoutLabel(tabPlacement, metrics, tabIndex, title, icon, tabRect, iconRect, textRect, isSelected); paintText(g, tabPlacement, font, metrics, tabIndex, title, textRect, isSelected); paintIcon(g, tabPlacement, tabIndex, icon, iconRect, isSelected); paintFocusIndicator(g, tabPlacement, rects, tabIndex, iconRect, textRect, isSelected); if (cropShape != null) { paintCroppedTabEdge(g, tabPlacement, tabIndex, isSelected, cropx, cropy); g.setClip(save); } } /* * This method will create and return a polygon shape for the given tab * rectangle which has been cropped at the specified cropline with a torn * edge visual. e.g. A "File" tab which has cropped been cropped just after * the "i": * ------------- * | ..... | * | . | * | ... . | * | . . | * | . . | * | . . | * -------------- * * The x, y arrays below define the pattern used to create a "torn" edge * segment which is repeated to fill the edge of the tab. For tabs placed on * TOP and BOTTOM, this righthand torn edge is created by line segments * which are defined by coordinates obtained by subtracting xCropLen[i] from * (tab.x + tab.width) and adding yCroplen[i] to (tab.y). For tabs placed on * LEFT or RIGHT, the bottom torn edge is created by subtracting xCropLen[i] * from (tab.y + tab.height) and adding yCropLen[i] to (tab.x). */ private final int[] xCropLen = { 1, 1, 0, 0, 1, 1, 2, 2 }; private final int[] yCropLen = { 0, 3, 3, 6, 6, 9, 9, 12 }; private static final int CROP_SEGMENT = 12; private Polygon createCroppedTabClip(int tabPlacement, Rectangle tabRect, int cropline) { int rlen = 0; int start = 0; int end = 0; int ostart = 0; switch (tabPlacement) { case LEFT: case RIGHT: rlen = tabRect.width; start = tabRect.x; end = tabRect.x + tabRect.width; ostart = tabRect.y; break; case TOP: case BOTTOM: default: rlen = tabRect.height; start = tabRect.y; end = tabRect.y + tabRect.height; ostart = tabRect.x; } int rcnt = rlen / CROP_SEGMENT; if (rlen % CROP_SEGMENT > 0) { rcnt++; } int npts = 2 + rcnt * 8; int[] xp = new int[npts]; int[] yp = new int[npts]; int pcnt = 0; xp[pcnt] = ostart; yp[pcnt++] = end; xp[pcnt] = ostart; yp[pcnt++] = start; for (int i = 0; i < rcnt; i++) { for (int j = 0; j < xCropLen.length; j++) { xp[pcnt] = cropline - xCropLen[j]; yp[pcnt] = start + i * CROP_SEGMENT + yCropLen[j]; if (yp[pcnt] >= end) { yp[pcnt] = end; pcnt++; break; } pcnt++; } } if (tabPlacement == SwingConstants.TOP || tabPlacement == SwingConstants.BOTTOM) { return new Polygon(xp, yp, pcnt); } //LEFT or RIGHT return new Polygon(yp, xp, pcnt); } /* If tabLayoutPolicy == SCROLL_TAB_LAYOUT, this method will paint an edge * indicating the tab is cropped in the viewport display */ private void paintCroppedTabEdge(Graphics g, int tabPlacement, int tabIndex, boolean isSelected, int x, int y) { switch (tabPlacement) { case LEFT: case RIGHT: int xx = x; g.setColor(shadow); while (xx <= x + rects[tabIndex].width) { for (int i = 0; i < xCropLen.length; i += 2) { g.drawLine(xx + yCropLen[i], y - xCropLen[i], xx + yCropLen[i + 1] - 1, y - xCropLen[i + 1]); } xx += CROP_SEGMENT; } break; case TOP: case BOTTOM: default: int yy = y; g.setColor(shadow); while (yy <= y + rects[tabIndex].height) { for (int i = 0; i < xCropLen.length; i += 2) { g.drawLine(x - xCropLen[i], yy + yCropLen[i], x - xCropLen[i + 1], yy + yCropLen[i + 1] - 1); } yy += CROP_SEGMENT; } } } private void ensureCurrentLayout() { if (!tabPane.isValid()) { tabPane.validate(); } /* If tabPane doesn't have a peer yet, the validate() call will * silently fail. We handle that by forcing a layout if tabPane * is still invalid. See bug 4237677. */ if (!tabPane.isValid()) { TabbedPaneLayout layout = (TabbedPaneLayout) tabPane.getLayout(); layout.calculateLayoutInfo(); } } /** * Returns the tab index which intersects the specified point * in the JTabbedPane's coordinate space. */ @Override public int tabForCoordinate(JTabbedPane pane, int x, int y) { ensureCurrentLayout(); Point p = new Point(x, y); if (scrollableTabLayoutEnabled()) { translatePointToTabPanel(x, y, p); Rectangle viewRect = tabScroller.viewport.getViewRect(); if (!viewRect.contains(p)) { return -1; } } int tabCount = tabPane.getTabCount(); for (int i = 0; i < tabCount; i++) { if (rects[i].contains(p.x, p.y)) { return i; } } return -1; } @Override protected Rectangle getTabBounds(int tabIndex, Rectangle dest) { dest.width = rects[tabIndex].width; dest.height = rects[tabIndex].height; if (scrollableTabLayoutEnabled()) { // SCROLL_TAB_LAYOUT // Need to translate coordinates based on viewport location & // view position Point vpp = tabScroller.viewport.getLocation(); Point viewp = tabScroller.viewport.getViewPosition(); dest.x = rects[tabIndex].x + vpp.x - viewp.x; dest.y = rects[tabIndex].y + vpp.y - viewp.y; } else { // WRAP_TAB_LAYOUT dest.x = rects[tabIndex].x; dest.y = rects[tabIndex].y; } return dest; } /** * Returns the index of the tab closest to the passed in location, note * that the returned tab may not contain the location x,y. */ private int getClosestTab(int x, int y) { int min = 0; int tabCount = Math.min(rects.length, tabPane.getTabCount()); int max = tabCount; int tabPlacement = tabPane.getTabPlacement(); boolean useX = tabPlacement == TOP || tabPlacement == BOTTOM; int want = useX ? x : y; while (min != max) { int current = (max + min) / 2; int minLoc; int maxLoc; if (useX) { minLoc = rects[current].x; maxLoc = minLoc + rects[current].width; } else { minLoc = rects[current].y; maxLoc = minLoc + rects[current].height; } if (want < minLoc) { max = current; if (min == max) { return Math.max(0, current - 1); } } else if (want >= maxLoc) { min = current; if (max - min <= 1) { return Math.max(current + 1, tabCount - 1); } } else { return current; } } return min; } /** * Returns a point which is translated from the specified point in the * JTabbedPane's coordinate space to the coordinate space of the * ScrollableTabPanel. This is used for SCROLL_TAB_LAYOUT ONLY. */ private Point translatePointToTabPanel(int srcx, int srcy, Point dest) { Point vpp = tabScroller.viewport.getLocation(); Point viewp = tabScroller.viewport.getViewPosition(); dest.x = srcx - vpp.x + viewp.x; dest.y = srcy - vpp.y + viewp.y; return dest; } @Override protected void paintTabArea(Graphics g, int tabPlacement, int selectedIndex) { int tabCount = tabPane.getTabCount(); Rectangle iconRect = new Rectangle(), textRect = new Rectangle(); Rectangle clipRect = g.getClipBounds(); // Paint tabRuns of tabs from back to front for (int i = runCount - 1; i >= 0; i--) { int start = tabRuns[i]; int next = tabRuns[i == runCount - 1 ? 0 : i + 1]; int end = next != 0 ? next - 1 : tabCount - 1; for (int j = end; j >= start; j--) { if (j != selectedIndex && rects[j].intersects(clipRect)) { paintTab(g, tabPlacement, rects, j, iconRect, textRect); } } } // Paint selected tab if its in the front run // since it may overlap other tabs if (selectedIndex >= 0 && rects[selectedIndex].intersects(clipRect)) { paintTab(g, tabPlacement, rects, selectedIndex, iconRect, textRect); } } /* * Copied here from super(super)class to avoid labels being centered on * vertical tab runs if they consist of icon and text */ @Override protected void layoutLabel( int tabPlacement, FontMetrics metrics, int tabIndex, String title, Icon icon, Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected) { textRect.x = textRect.y = iconRect.x = iconRect.y = 0; //fix of issue #4 View v = getTextViewForTab(tabIndex); if (v != null) { tabPane.putClientProperty("html", v); } Rectangle calcRectangle = new Rectangle(tabRect); if (isSelected) { Insets calcInsets = getSelectedTabPadInsets(tabPlacement); calcRectangle.x += calcInsets.left; calcRectangle.y += calcInsets.top; calcRectangle.width -= calcInsets.left + calcInsets.right; calcRectangle.height -= calcInsets.bottom + calcInsets.top; } int xNudge = getTabLabelShiftX(tabPlacement, tabIndex, isSelected); int yNudge = getTabLabelShiftY(tabPlacement, tabIndex, isSelected); if ((tabPlacement == RIGHT || tabPlacement == LEFT) && icon != null && title != null && !title.equals("")) { SwingUtilities.layoutCompoundLabel( tabPane, metrics, title, icon, SwingConstants.CENTER, SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.TRAILING, calcRectangle, iconRect, textRect, textIconGap); xNudge += 4; } else { SwingUtilities.layoutCompoundLabel( tabPane, metrics, title, icon, SwingConstants.CENTER, SwingConstants.CENTER, SwingConstants.CENTER, SwingConstants.TRAILING, calcRectangle, iconRect, textRect, textIconGap); iconRect.y += calcRectangle.height % 2; } //fix of issue #4 tabPane.putClientProperty("html", null); iconRect.x += xNudge; iconRect.y += yNudge; textRect.x += xNudge; textRect.y += yNudge; } /** * Answers the icon for the tab with the specified index. * In case, we have globally switched of the use tab icons, * we answer {@code null} if and only if we have a title. */ @Override protected Icon getIconForTab(int tabIndex) { String title = tabPane.getTitleAt(tabIndex); boolean hasTitle = title != null && title.length() > 0; return !isTabIconsEnabled && hasTitle ? null : super.getIconForTab(tabIndex); } /** * Creates the layout manager used to set the tab's bounds. */ @Override protected LayoutManager createLayoutManager() { if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) { return new TabbedPaneScrollLayout(); } /* WRAP_TAB_LAYOUT */ return new TabbedPaneLayout(); } /* In an attempt to preserve backward compatibility for programs * which have extended BasicTabbedPaneUI to do their own layout, the * UI uses the installed layoutManager (and not tabLayoutPolicy) to * determine if scrollTabLayout is enabled. */ private boolean scrollableTabLayoutEnabled() { return tabPane.getLayout() instanceof TabbedPaneScrollLayout; } protected boolean isTabInFirstRun(int tabIndex) { return getRunForTab(tabPane.getTabCount(), tabIndex) == 0; } @Override protected void paintContentBorder(Graphics g, int tabPlacement, int selectedIndex) { int width = tabPane.getWidth(); int height = tabPane.getHeight(); Insets insets = tabPane.getInsets(); int x = insets.left; int y = insets.top; int w = width - insets.right - insets.left; int h = height - insets.top - insets.bottom; switch (tabPlacement) { case LEFT : x += calculateTabAreaWidth(tabPlacement, runCount, maxTabWidth); w -= x - insets.left; break; case RIGHT : w -= calculateTabAreaWidth(tabPlacement, runCount, maxTabWidth); break; case BOTTOM : h -= calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); break; case TOP : default : y += calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); h -= y - insets.top; } // Fill region behind content area g.setColor(selectColor == null ? tabPane.getBackground() : selectColor); g.fillRect(x, y, w, h); Rectangle selRect; selRect = selectedIndex < 0 ? null : getTabBounds(selectedIndex, calcRect); boolean drawBroken = selectedIndex >= 0 && isTabInFirstRun(selectedIndex); boolean isContentBorderPainted = !hasNoContentBorder(); // It sounds a bit odd to call paintContentBorder with // a parameter isContentBorderPainted set to false. // But in this case the part of the border touching the tab // area will still be painted so best let the renderer decide. renderer.paintContentBorderTopEdge (g, x, y, w, h, drawBroken, selRect, isContentBorderPainted); renderer.paintContentBorderLeftEdge (g, x, y, w, h, drawBroken, selRect, isContentBorderPainted); renderer.paintContentBorderBottomEdge(g, x, y, w, h, drawBroken, selRect, isContentBorderPainted); renderer.paintContentBorderRightEdge (g, x, y, w, h, drawBroken, selRect, isContentBorderPainted); } // // Here comes a number of methods that are just delegated to the // appropriate renderer // /** * Returns the insets (i.e. the width) of the content Border. */ @Override protected Insets getContentBorderInsets(int tabPlacement) { return renderer.getContentBorderInsets(super.getContentBorderInsets(tabPlacement)); } /** * Returns the amount by which the Tab Area is inset. */ @Override protected Insets getTabAreaInsets(int tabPlacement) { return renderer.getTabAreaInsets(super.getTabAreaInsets(tabPlacement)); } /** * Returns the amount by which the label should be shifted horizontally. */ @Override protected int getTabLabelShiftX(int tabPlacement, int tabIndex, boolean isSelected) { return renderer.getTabLabelShiftX(tabIndex, isSelected); } /** * Returns the amount by which the label should be shifted vertically. */ @Override protected int getTabLabelShiftY(int tabPlacement, int tabIndex, boolean isSelected) { return renderer.getTabLabelShiftY(tabIndex, isSelected); } /** * Returns the amount (in pixels) by which two runs should overlap. */ @Override protected int getTabRunOverlay(int tabPlacement) { return renderer.getTabRunOverlay(tabRunOverlay); } /** * This boolean controls wheather the given run should be padded to * use up as much space as the others (with more tabs in them). */ @Override protected boolean shouldPadTabRun(int tabPlacement, int run) { return renderer.shouldPadTabRun(run, super.shouldPadTabRun(tabPlacement, run)); } /** * Returns the amount by which the run number {@code run} * should be indented. Add six pixels for every run to make * diagonal lines align. */ @Override protected int getTabRunIndent(int tabPlacement, int run) { return renderer.getTabRunIndent(run); } /** * Returns the insets for this tab. */ @Override protected Insets getTabInsets(int tabPlacement, int tabIndex) { return renderer.getTabInsets(tabIndex, tabInsets); } /** * Returns the insets for selected tab. */ @Override protected Insets getSelectedTabPadInsets(int tabPlacement) { return renderer.getSelectedTabPadInsets(); } /** * Draws the rectancle around the Tab label which indicates keyboard focus. */ @Override protected void paintFocusIndicator( Graphics g, int tabPlacement, Rectangle[] rectangles, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { renderer.paintFocusIndicator(g, rectangles, tabIndex, iconRect, textRect, isSelected); } /** * Fills the background of the given tab to make sure overlap of * tabs is handled correctly. * Note: that tab backgrounds seem to be painted somewhere else, too. */ @Override protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected) { renderer.paintTabBackground(g, tabIndex, x, y, w, h, isSelected); } /** * Paints the border for one tab. Gets the bounds of the tab as parameters. * Note that the result is not clipped so you can paint outside that * rectangle. Tabs painted later on have a chance to overwrite though. */ @Override protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected) { renderer.paintTabBorder(g, tabIndex, x, y, w, h, isSelected); } /** * Answers wheather tab runs should be rotated. If true, the layout mechanism * will move the run containing the selected tab so that it touches * the content pane. */ @Override protected boolean shouldRotateTabRuns(int tabPlacement) { return false; } private final class TabSelectionHandler implements ChangeListener { private final Rectangle rect = new Rectangle(); @Override public void stateChanged(ChangeEvent e) { JTabbedPane tabPane = (JTabbedPane) e.getSource(); tabPane.revalidate(); tabPane.repaint(); if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) { int index = tabPane.getSelectedIndex(); if (index < rects.length && index != -1) { rect.setBounds(rects[index]); Point viewPosition = tabScroller.viewport.getViewPosition(); if (rect.x < viewPosition.x) { rect.x -= renderer.getTabsOverlay(); } else { rect.x += renderer.getTabsOverlay(); } tabScroller.tabPanel.scrollRectToVisible(rect); } } } } /** * Catches and handles property change events. In addition to the super * class behavior we listen to changes of the ancestor, tab placement, * and JGoodies options for content border, and embedded tabs. */ private final class MyPropertyChangeHandler extends BasicTabbedPaneUI.PropertyChangeHandler { @Override public void propertyChange(PropertyChangeEvent e) { String pName = e.getPropertyName(); if (null == pName) { return; } super.propertyChange(e); if (pName.equals("tabPlacement")) { tabPlacementChanged(); return; } if (pName.equals(Options.EMBEDDED_TABS_KEY)) { embeddedTabsPropertyChanged((Boolean) e.getNewValue()); return; } if (pName.equals(Options.NO_CONTENT_BORDER_KEY)) { noContentBorderPropertyChanged((Boolean) e.getNewValue()); return; } } } /** * Does all the layout work. The result is stored in the container * class's instance variables. Mainly the rects[] vector. */ private class TabbedPaneLayout extends BasicTabbedPaneUI.TabbedPaneLayout { @Override protected void calculateTabRects(int tabPlacement, int tabCount) { FontMetrics metrics = getFontMetrics(); Dimension size = tabPane.getSize(); Insets insets = tabPane.getInsets(); Insets theTabAreaInsets = getTabAreaInsets(tabPlacement); int fontHeight = metrics.getHeight(); int selectedIndex = tabPane.getSelectedIndex(); int theTabRunOverlay; int i, j; int x, y; int returnAt; boolean verticalTabRuns = tabPlacement == LEFT || tabPlacement == RIGHT; boolean leftToRight = PlasticUtils.isLeftToRight(tabPane); // // Calculate bounds within which a tab run must fit // switch (tabPlacement) { case LEFT : maxTabWidth = calculateMaxTabWidth(tabPlacement); x = insets.left + theTabAreaInsets.left; y = insets.top + theTabAreaInsets.top; returnAt = size.height - (insets.bottom + theTabAreaInsets.bottom); break; case RIGHT : maxTabWidth = calculateMaxTabWidth(tabPlacement); x = size.width - insets.right - theTabAreaInsets.right - maxTabWidth; y = insets.top + theTabAreaInsets.top; returnAt = size.height - (insets.bottom + theTabAreaInsets.bottom); break; case BOTTOM : maxTabHeight = calculateMaxTabHeight(tabPlacement); x = insets.left + theTabAreaInsets.left; y = size.height - insets.bottom - theTabAreaInsets.bottom - maxTabHeight; returnAt = size.width - (insets.right + theTabAreaInsets.right); break; case TOP : default : maxTabHeight = calculateMaxTabHeight(tabPlacement); x = insets.left + theTabAreaInsets.left; y = insets.top + theTabAreaInsets.top; returnAt = size.width - (insets.right + theTabAreaInsets.right); break; } theTabRunOverlay = getTabRunOverlay(tabPlacement); runCount = 0; selectedRun = -1; //keeps track of where we are in the current run. //this helps not to rely on fragile positioning //informaion to find out wheter the active Tab //is the first in run int tabInRun = -1; // make a copy of returnAt for the current run and modify // that so returnAt may still be used later on int runReturnAt = returnAt; if (tabCount == 0) { return; } // Run through tabs and partition them into runs Rectangle rect; for (i = 0; i < tabCount; i++) { rect = rects[i]; tabInRun++; if (!verticalTabRuns) { // Tabs on TOP or BOTTOM.... if (i > 0) { rect.x = rects[i - 1].x + rects[i - 1].width; } else { tabRuns[0] = 0; runCount = 1; maxTabWidth = 0; rect.x = x; // tabInRun = 0; } rect.width = calculateTabWidth(tabPlacement, i, metrics); maxTabWidth = Math.max(maxTabWidth, rect.width); // Never move a TAB down a run if it is the first in run. // Even if there isn't enough room, moving it to a fresh // line won't help. // if (rect.x != 2 + insets.left && rect.x + rect.width > returnAt) { // Never rely on phisical position information to determine // logical position (if you can avoid it) if (tabInRun != 0 && rect.x + rect.width > runReturnAt) { if (runCount > tabRuns.length - 1) { expandTabRunsArray(); } // just created a new run, adjust some counters tabInRun = 0; tabRuns[runCount] = i; runCount++; rect.x = x; runReturnAt = runReturnAt - 2 * getTabRunIndent(tabPlacement, runCount); } // Initialize y position in case there's just one run rect.y = y; rect.height = maxTabHeight /* - 2*/; } else { // Tabs on LEFT or RIGHT... if (i > 0) { rect.y = rects[i - 1].y + rects[i - 1].height; } else { tabRuns[0] = 0; runCount = 1; maxTabHeight = 0; rect.y = y; // tabInRun = 0; } rect.height = calculateTabHeight(tabPlacement, i, fontHeight); maxTabHeight = Math.max(maxTabHeight, rect.height); // Never move a TAB over a run if it is the first in run. // Even if there isn't enough room, moving it to a fresh // run won't help. // if (rect.y != 2 + insets.top && rect.y + rect.height > returnAt) { if (tabInRun != 0 && rect.y + rect.height > runReturnAt) { if (runCount > tabRuns.length - 1) { expandTabRunsArray(); } tabRuns[runCount] = i; runCount++; rect.y = y; tabInRun = 0; runReturnAt -= 2 * getTabRunIndent(tabPlacement, runCount); } // Initialize x position in case there's just one column rect.x = x; rect.width = maxTabWidth /* - 2*/; } if (i == selectedIndex) { selectedRun = runCount - 1; } } if (runCount > 1) { // Re-distribute tabs in case last run has leftover space //last line flush left is OK // normalizeTabRuns(tabPlacement, tabCount, verticalTabRuns? y : x, returnAt); //don't need to recalculate selectedRun if not changed // selectedRun = getRunForTab(tabCount, selectedIndex); // Rotate run array so that selected run is first if (shouldRotateTabRuns(tabPlacement)) { rotateTabRuns(tabPlacement, selectedRun); } } // Step through runs from back to front to calculate // tab y locations and to pad runs appropriately for (i = runCount - 1; i >= 0; i--) { int start = tabRuns[i]; int next = tabRuns[i == runCount - 1 ? 0 : i + 1]; int end = next != 0 ? next - 1 : tabCount - 1; int indent = getTabRunIndent(tabPlacement, i); if (!verticalTabRuns) { for (j = start; j <= end; j++) { rect = rects[j]; rect.y = y; rect.x += indent; // try to make tabRunIndent symmetric // rect.width -= 2* indent + 20; } if (shouldPadTabRun(tabPlacement, i)) { padTabRun(tabPlacement, start, end, returnAt - 2 * indent); } if (tabPlacement == BOTTOM) { y -= maxTabHeight - theTabRunOverlay; } else { y += maxTabHeight - theTabRunOverlay; } } else { for (j = start; j <= end; j++) { rect = rects[j]; rect.x = x; rect.y += indent; } if (shouldPadTabRun(tabPlacement, i)) { padTabRun(tabPlacement, start, end, returnAt - 2 * indent); } if (tabPlacement == RIGHT) { x -= maxTabWidth - theTabRunOverlay; } else { x += maxTabWidth - theTabRunOverlay; } } } // Pad the selected tab so that it appears raised in front padSelectedTab(tabPlacement, selectedIndex); // if right to left and tab placement on the top or // the bottom, flip x positions and adjust by widths if (!leftToRight && !verticalTabRuns) { int rightMargin = size.width - (insets.right + theTabAreaInsets.right); for (i = 0; i < tabCount; i++) { rects[i].x = rightMargin - rects[i].x - rects[i].width + renderer.getTabsOverlay(); } } } /** * Overridden to insure the same behavior in JDK 6.0 as in JDK 5.0. */ @Override protected void padSelectedTab(int tabPlacement, int selectedIndex) { if (selectedIndex >= 0) { Rectangle selRect = rects[selectedIndex]; Insets padInsets = getSelectedTabPadInsets(tabPlacement); selRect.x -= padInsets.left; selRect.width += padInsets.left + padInsets.right; selRect.y -= padInsets.top; selRect.height += padInsets.top + padInsets.bottom; } } } private boolean requestFocusForVisibleComponent() { Component visibleComponent = getVisibleComponent(); if (visibleComponent.isFocusable()) { visibleComponent.requestFocus(); return true; } if (visibleComponent instanceof JComponent) { if (((JComponent) visibleComponent).requestDefaultFocus()) { return true; } } return false; } private static class ScrollTabsForwardAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { JTabbedPane pane = null; Object src = e.getSource(); if (src instanceof JTabbedPane) { pane = (JTabbedPane) src; } else if (src instanceof PlasticArrowButton) { pane = (JTabbedPane) ((PlasticArrowButton) src).getParent(); } else { return; // shouldn't happen } PlasticTabbedPaneUI ui = (PlasticTabbedPaneUI) pane.getUI(); if (ui.scrollableTabLayoutEnabled()) { ui.tabScroller.scrollForward(pane.getTabPlacement()); } } } private static class ScrollTabsBackwardAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { JTabbedPane pane = null; Object src = e.getSource(); if (src instanceof JTabbedPane) { pane = (JTabbedPane) src; } else if (src instanceof PlasticArrowButton) { pane = (JTabbedPane) ((PlasticArrowButton) src).getParent(); } else { return; // shouldn't happen } PlasticTabbedPaneUI ui = (PlasticTabbedPaneUI) pane.getUI(); if (ui.scrollableTabLayoutEnabled()) { ui.tabScroller.scrollBackward(pane.getTabPlacement()); } } } private final class TabbedPaneScrollLayout extends TabbedPaneLayout { @Override protected int preferredTabAreaHeight(int tabPlacement, int width) { return calculateMaxTabHeight(tabPlacement); } @Override protected int preferredTabAreaWidth(int tabPlacement, int height) { return calculateMaxTabWidth(tabPlacement); } @Override public void layoutContainer(Container parent) { int tabPlacement = tabPane.getTabPlacement(); int tabCount = tabPane.getTabCount(); Insets insets = tabPane.getInsets(); int selectedIndex = tabPane.getSelectedIndex(); Component visibleComponent = getVisibleComponent(); calculateLayoutInfo(); if (selectedIndex < 0) { if (visibleComponent != null) { // The last tab was removed, so remove the component setVisibleComponent(null); } } else { Component selectedComponent = tabPane.getComponentAt(selectedIndex); boolean shouldChangeFocus = false; // In order to allow programs to use a single component // as the display for multiple tabs, we will not change // the visible compnent if the currently selected tab // has a null component. This is a bit dicey, as we don't // explicitly state we support this in the spec, but since // programs are now depending on this, we're making it work. // if (selectedComponent != null) { if (selectedComponent != visibleComponent && visibleComponent != null) { if (SwingUtilities.findFocusOwner(visibleComponent) != null) { shouldChangeFocus = true; } } setVisibleComponent(selectedComponent); } int tx, ty, tw, th; // tab area bounds int cx, cy, cw, ch; // content area bounds Insets contentInsets = getContentBorderInsets(tabPlacement); Rectangle bounds = tabPane.getBounds(); int numChildren = tabPane.getComponentCount(); if (numChildren > 0) { switch (tabPlacement) { case LEFT: // calculate tab area bounds tw = calculateTabAreaWidth(tabPlacement, runCount, maxTabWidth); th = bounds.height - insets.top - insets.bottom; tx = insets.left; ty = insets.top; // calculate content area bounds cx = tx + tw + contentInsets.left; cy = ty + contentInsets.top; cw = bounds.width - insets.left - insets.right - tw - contentInsets.left - contentInsets.right; ch = bounds.height - insets.top - insets.bottom - contentInsets.top - contentInsets.bottom; break; case RIGHT: // calculate tab area bounds tw = calculateTabAreaWidth(tabPlacement, runCount, maxTabWidth); th = bounds.height - insets.top - insets.bottom; tx = bounds.width - insets.right - tw; ty = insets.top; // calculate content area bounds cx = insets.left + contentInsets.left; cy = insets.top + contentInsets.top; cw = bounds.width - insets.left - insets.right - tw - contentInsets.left - contentInsets.right; ch = bounds.height - insets.top - insets.bottom - contentInsets.top - contentInsets.bottom; break; case BOTTOM: // calculate tab area bounds tw = bounds.width - insets.left - insets.right; th = calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); tx = insets.left; ty = bounds.height - insets.bottom - th; // calculate content area bounds cx = insets.left + contentInsets.left; cy = insets.top + contentInsets.top; cw = bounds.width - insets.left - insets.right - contentInsets.left - contentInsets.right; ch = bounds.height - insets.top - insets.bottom - th - contentInsets.top - contentInsets.bottom; break; case TOP: default: // calculate tab area bounds tw = bounds.width - insets.left - insets.right; th = calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); tx = insets.left; ty = insets.top; // calculate content area bounds cx = tx + contentInsets.left; cy = ty + th + contentInsets.top; cw = bounds.width - insets.left - insets.right - contentInsets.left - contentInsets.right; ch = bounds.height - insets.top - insets.bottom - th - contentInsets.top - contentInsets.bottom; } for (int i = 0; i < numChildren; i++) { Component child = tabPane.getComponent(i); if (tabScroller != null && child == tabScroller.viewport) { JViewport viewport = (JViewport) child; Rectangle viewRect = viewport.getViewRect(); int vw = tw; int vh = th; Dimension butSize = tabScroller.scrollForwardButton.getPreferredSize(); switch (tabPlacement) { case LEFT: case RIGHT: int totalTabHeight = rects[tabCount - 1].y + rects[tabCount - 1].height; if (totalTabHeight > th) { // Allow space for scrollbuttons vh = th > 2 * butSize.height ? th - 2 * butSize.height : 0; if (totalTabHeight - viewRect.y <= vh) { // Scrolled to the end, so ensure the // viewport size is // such that the scroll offset aligns // with a tab vh = totalTabHeight - viewRect.y; } } break; case BOTTOM: case TOP: default: int totalTabWidth = rects[tabCount - 1].x + rects[tabCount - 1].width + renderer.getTabsOverlay(); if (totalTabWidth > tw) { // Need to allow space for scrollbuttons vw = tw > 2 * butSize.width ? tw - 2 * butSize.width : 0; if (totalTabWidth - viewRect.x <= vw) { // Scrolled to the end, so ensure the // viewport size is // such that the scroll offset aligns // with a tab vw = totalTabWidth - viewRect.x; } } } child.setBounds(tx, ty, vw, vh); } else if (tabScroller != null && (child == tabScroller.scrollForwardButton || child == tabScroller.scrollBackwardButton)) { Component scrollbutton = child; Dimension bsize = scrollbutton.getPreferredSize(); int bx = 0; int by = 0; int bw = bsize.width; int bh = bsize.height; boolean visible = false; switch (tabPlacement) { case LEFT: case RIGHT: int totalTabHeight = rects[tabCount - 1].y + rects[tabCount - 1].height + renderer.getTabsOverlay(); if (totalTabHeight > th) { visible = true; bx = tabPlacement == LEFT ? tx + tw - bsize.width : tx; by = child == tabScroller.scrollForwardButton ? bounds.height - insets.bottom - bsize.height : bounds.height - insets.bottom - 2 * bsize.height; } break; case BOTTOM: case TOP: default: int totalTabWidth = rects[tabCount - 1].x + rects[tabCount - 1].width + renderer.getTabsOverlay(); if (totalTabWidth > tw) { visible = true; bx = child == tabScroller.scrollForwardButton ? bounds.width - insets.left - bsize.width : bounds.width - insets.left - 2 * bsize.width; by = tabPlacement == TOP ? ty + th - bsize.height : ty; } } child.setVisible(visible); if (visible) { child.setBounds(bx, by, bw, bh); } } else { // All content children... child.setBounds(cx, cy, cw, ch); } } if (shouldChangeFocus) { if (!requestFocusForVisibleComponent()) { tabPane.requestFocus(); } } } } } @Override protected void calculateTabRects(int tabPlacement, int tabCount) { FontMetrics metrics = getFontMetrics(); Dimension size = tabPane.getSize(); Insets insets = tabPane.getInsets(); Insets tabAreaInsets = getTabAreaInsets(tabPlacement); int fontHeight = metrics.getHeight(); int selectedIndex = tabPane.getSelectedIndex(); boolean verticalTabRuns = tabPlacement == LEFT || tabPlacement == RIGHT; boolean leftToRight = PlasticUtils.isLeftToRight(tabPane); int x = tabAreaInsets.left; int y = tabAreaInsets.top; int totalWidth = 0; int totalHeight = 0; // // Calculate bounds within which a tab run must fit // switch(tabPlacement) { case LEFT: case RIGHT: maxTabWidth = calculateMaxTabWidth(tabPlacement); break; case BOTTOM: case TOP: default: maxTabHeight = calculateMaxTabHeight(tabPlacement); } runCount = 0; selectedRun = -1; if (tabCount == 0) { return; } selectedRun = 0; runCount = 1; // Run through tabs and lay them out in a single run Rectangle rect; for (int i = 0; i < tabCount; i++) { rect = rects[i]; if (!verticalTabRuns) { // Tabs on TOP or BOTTOM.... if (i > 0) { rect.x = rects[i-1].x + rects[i-1].width; } else { tabRuns[0] = 0; maxTabWidth = 0; totalHeight += maxTabHeight; rect.x = x; } rect.width = calculateTabWidth(tabPlacement, i, metrics); totalWidth = rect.x + rect.width + renderer.getTabsOverlay(); maxTabWidth = Math.max(maxTabWidth, rect.width); rect.y = y; rect.height = maxTabHeight/* - 2*/; } else { // Tabs on LEFT or RIGHT... if (i > 0) { rect.y = rects[i-1].y + rects[i-1].height; } else { tabRuns[0] = 0; maxTabHeight = 0; totalWidth = maxTabWidth; rect.y = y; } rect.height = calculateTabHeight(tabPlacement, i, fontHeight); totalHeight = rect.y + rect.height; maxTabHeight = Math.max(maxTabHeight, rect.height); rect.x = x; rect.width = maxTabWidth/* - 2*/; } } // Pad the selected tab so that it appears raised in front padSelectedTab(tabPlacement, selectedIndex); // if right to left and tab placement on the top or // the bottom, flip x positions and adjust by widths if (!leftToRight && !verticalTabRuns) { int rightMargin = size.width - (insets.right + tabAreaInsets.right); for (int i = 0; i < tabCount; i++) { rects[i].x = rightMargin - rects[i].x - rects[i].width; } } tabScroller.tabPanel.setPreferredSize(new Dimension(totalWidth, totalHeight)); } } private final class ScrollableTabSupport implements ActionListener, ChangeListener { public ScrollableTabViewport viewport; public ScrollableTabPanel tabPanel; public JButton scrollForwardButton; public JButton scrollBackwardButton; public int leadingTabIndex; private final Point tabViewPosition = new Point(0, 0); ScrollableTabSupport(int tabPlacement) { viewport = new ScrollableTabViewport(); tabPanel = new ScrollableTabPanel(); viewport.setView(tabPanel); viewport.addChangeListener(this); createButtons(); } /** * Recreates the scroll buttons and adds them to the TabbedPane. */ void createButtons() { if (scrollForwardButton != null) { tabPane.remove(scrollForwardButton); scrollForwardButton.removeActionListener(this); tabPane.remove(scrollBackwardButton); scrollBackwardButton.removeActionListener(this); } int tabPlacement = tabPane.getTabPlacement(); int width = UIManager.getInt("ScrollBar.width"); if (tabPlacement == TOP || tabPlacement == BOTTOM) { scrollForwardButton = new ArrowButton(EAST, width); scrollBackwardButton = new ArrowButton(WEST, width); } else { // tabPlacement = LEFT || RIGHT scrollForwardButton = new ArrowButton(SOUTH, width); scrollBackwardButton = new ArrowButton(NORTH, width); } scrollForwardButton.addActionListener(this); scrollBackwardButton.addActionListener(this); tabPane.add(scrollForwardButton); tabPane.add(scrollBackwardButton); } public void scrollForward(int tabPlacement) { Dimension viewSize = viewport.getViewSize(); Rectangle viewRect = viewport.getViewRect(); if (tabPlacement == TOP || tabPlacement == BOTTOM) { if (viewRect.width >= viewSize.width - viewRect.x) { return; // no room left to scroll } } else { // tabPlacement == LEFT || tabPlacement == RIGHT if (viewRect.height >= viewSize.height - viewRect.y) { return; } } setLeadingTabIndex(tabPlacement, leadingTabIndex + 1); } public void scrollBackward(int tabPlacement) { if (leadingTabIndex == 0) { return; // no room left to scroll } setLeadingTabIndex(tabPlacement, leadingTabIndex - 1); } public void setLeadingTabIndex(int tabPlacement, int index) { leadingTabIndex = index; Dimension viewSize = viewport.getViewSize(); Rectangle viewRect = viewport.getViewRect(); switch (tabPlacement) { case TOP: case BOTTOM: tabViewPosition.x = leadingTabIndex == 0 ? 0 : rects[leadingTabIndex].x - renderer.getTabsOverlay(); if (viewSize.width - tabViewPosition.x < viewRect.width) { // We've scrolled to the end, so adjust the viewport size // to ensure the view position remains aligned on a tab // boundary Dimension extentSize = new Dimension(viewSize.width - tabViewPosition.x, viewRect.height); viewport.setExtentSize(extentSize); } break; case LEFT: case RIGHT: tabViewPosition.y = leadingTabIndex == 0 ? 0 : rects[leadingTabIndex].y; if (viewSize.height - tabViewPosition.y < viewRect.height) { // We've scrolled to the end, so adjust the viewport size // to ensure the view position remains aligned on a tab // boundary Dimension extentSize = new Dimension(viewRect.width, viewSize.height - tabViewPosition.y); viewport.setExtentSize(extentSize); } } viewport.setViewPosition(tabViewPosition); } @Override public void stateChanged(ChangeEvent e) { JViewport viewport = (JViewport) e.getSource(); int tabPlacement = tabPane.getTabPlacement(); int tabCount = tabPane.getTabCount(); Rectangle vpRect = viewport.getBounds(); Dimension viewSize = viewport.getViewSize(); Rectangle viewRect = viewport.getViewRect(); leadingTabIndex = getClosestTab(viewRect.x, viewRect.y); // If the tab isn't right aligned, adjust it. if (leadingTabIndex + 1 < tabCount) { switch (tabPlacement) { case TOP: case BOTTOM: if (rects[leadingTabIndex].x < viewRect.x) { leadingTabIndex++; } break; case LEFT: case RIGHT: if (rects[leadingTabIndex].y < viewRect.y) { leadingTabIndex++; } break; } } Insets contentInsets = getContentBorderInsets(tabPlacement); switch (tabPlacement) { case LEFT: tabPane.repaint(vpRect.x + vpRect.width, vpRect.y, contentInsets.left, vpRect.height); scrollBackwardButton.setEnabled(viewRect.y > 0 && leadingTabIndex > 0); scrollForwardButton.setEnabled(leadingTabIndex < tabCount - 1 && viewSize.height - viewRect.y > viewRect.height); break; case RIGHT: tabPane.repaint(vpRect.x - contentInsets.right, vpRect.y, contentInsets.right, vpRect.height); scrollBackwardButton.setEnabled(viewRect.y > 0 && leadingTabIndex > 0); scrollForwardButton.setEnabled(leadingTabIndex < tabCount - 1 && viewSize.height - viewRect.y > viewRect.height); break; case BOTTOM: tabPane.repaint(vpRect.x, vpRect.y - contentInsets.bottom, vpRect.width, contentInsets.bottom); scrollBackwardButton.setEnabled(viewRect.x > 0 && leadingTabIndex > 0); scrollForwardButton.setEnabled(leadingTabIndex < tabCount - 1 && viewSize.width - viewRect.x > viewRect.width); break; case TOP: default: tabPane.repaint(vpRect.x, vpRect.y + vpRect.height, vpRect.width, contentInsets.top); scrollBackwardButton.setEnabled(viewRect.x > 0 && leadingTabIndex > 0); scrollForwardButton.setEnabled(leadingTabIndex < tabCount - 1 && viewSize.width - viewRect.x > viewRect.width); } } /** * ActionListener for the scroll buttons. */ @Override public void actionPerformed(ActionEvent e) { ActionMap map = tabPane.getActionMap(); if (map != null) { String actionKey; if (e.getSource() == scrollForwardButton) { actionKey = "scrollTabsForwardAction"; } else { actionKey = "scrollTabsBackwardAction"; } Action action = map.get(actionKey); if (action != null && action.isEnabled()) { action.actionPerformed(new ActionEvent(tabPane, ActionEvent.ACTION_PERFORMED, null, e.getWhen(), e .getModifiers())); } } } } private final class ScrollableTabViewport extends JViewport implements UIResource { public ScrollableTabViewport() { super(); setName("TabbedPane.scrollableViewport"); setScrollMode(SIMPLE_SCROLL_MODE); setOpaque(tabPane.isOpaque()); Color bgColor = UIManager.getColor("TabbedPane.tabAreaBackground"); if (bgColor == null) { bgColor = tabPane.getBackground(); } setBackground(bgColor); } } private final class ScrollableTabPanel extends JPanel implements UIResource { public ScrollableTabPanel() { super(null); setOpaque(tabPane.isOpaque()); Color bgColor = UIManager.getColor("TabbedPane.tabAreaBackground"); if (bgColor == null) { bgColor = tabPane.getBackground(); } setBackground(bgColor); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); PlasticTabbedPaneUI.this.paintTabArea(g, tabPane.getTabPlacement(), tabPane.getSelectedIndex()); } } private static final class ArrowButton extends JButton implements UIResource { private final int buttonWidth; private final int direction; private boolean mouseIsOver; ArrowButton(int direction, int buttonWidth) { this.direction = direction; this.buttonWidth = buttonWidth; setRequestFocusEnabled(false); } @Override protected void processMouseEvent(MouseEvent e) { super.processMouseEvent(e); switch (e.getID()) { case MouseEvent.MOUSE_ENTERED: mouseIsOver = true; revalidate(); repaint(); break; case MouseEvent.MOUSE_EXITED: mouseIsOver = false; revalidate(); repaint(); break; } } @Override protected void paintBorder(Graphics g) { if (mouseIsOver && isEnabled()) { super.paintBorder(g); } } @Override protected void paintComponent(Graphics g) { if (mouseIsOver) { super.paintComponent(g); } else { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); } paintArrow(g); } private void paintArrow(Graphics g) { Color oldColor = g.getColor(); boolean isEnabled = isEnabled(); g.setColor(isEnabled ? MetalLookAndFeel.getControlInfo() : MetalLookAndFeel.getControlDisabled()); int arrowWidth, arrowHeight; switch (direction) { case NORTH: case SOUTH: arrowWidth = 9; arrowHeight = 5; break; case WEST: case EAST: default: arrowWidth = 5; arrowHeight = 9; break; } int x = (getWidth() - arrowWidth ) / 2; int y = (getHeight() - arrowHeight) / 2; g.translate(x, y); boolean paintShadow = !mouseIsOver || !isEnabled; Color shadow = isEnabled ? MetalLookAndFeel.getControlShadow() : UIManager.getColor("ScrollBar.highlight"); switch (direction) { case NORTH: g.fillRect(0, 4, 9, 1); g.fillRect(1, 3, 7, 1); g.fillRect(2, 2, 5, 1); g.fillRect(3, 1, 3, 1); g.fillRect(4, 0, 1, 1); if (paintShadow) { g.setColor(shadow); g.fillRect(1, 5, 9, 1); } break; case SOUTH: g.fillRect(0, 0, 9, 1); g.fillRect(1, 1, 7, 1); g.fillRect(2, 2, 5, 1); g.fillRect(3, 3, 3, 1); g.fillRect(4, 4, 1, 1); if (paintShadow) { g.setColor(shadow); g.drawLine(5, 4, 8, 1); g.drawLine(5, 5, 9, 1); } break; case WEST: g.fillRect(0, 4, 1, 1); g.fillRect(1, 3, 1, 3); g.fillRect(2, 2, 1, 5); g.fillRect(3, 1, 1, 7); g.fillRect(4, 0, 1, 9); if (paintShadow) { g.setColor(shadow); g.fillRect(5, 1, 1, 9); } break; case EAST: g.fillRect(0, 0, 1, 9); g.fillRect(1, 1, 1, 7); g.fillRect(2, 2, 1, 5); g.fillRect(3, 3, 1, 3); g.fillRect(4, 4, 1, 1); if (paintShadow) { g.setColor(shadow); g.drawLine(1, 8, 4, 5); g.drawLine(1, 9, 5, 5); } break; } g.translate(-x, -y); g.setColor(oldColor); } @Override public Dimension getPreferredSize() { return new Dimension(buttonWidth, buttonWidth); } @Override public Dimension getMinimumSize() { return getPreferredSize(); } @Override public Dimension getMaximumSize() { return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); } } /** * This is the abstract superclass for all TabbedPane renderers. * Those will be defined in the rest of this file */ private abstract static class AbstractRenderer { protected static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0); protected static final Insets NORTH_INSETS = new Insets(1, 0, 0, 0); protected static final Insets WEST_INSETS = new Insets(0, 1, 0, 0); protected static final Insets SOUTH_INSETS = new Insets(0, 0, 1, 0); protected static final Insets EAST_INSETS = new Insets(0, 0, 0, 1); protected final JTabbedPane tabPane; protected final int tabPlacement; protected Color shadowColor; protected Color darkShadow; protected Color selectColor; protected Color selectLight; protected Color selectHighlight; protected Color lightHighlight; protected Color focus; private AbstractRenderer(JTabbedPane tabPane) { initColors(); this.tabPane = tabPane; this.tabPlacement = tabPane.getTabPlacement(); } private static AbstractRenderer createRenderer(JTabbedPane tabPane) { switch (tabPane.getTabPlacement()) { case SwingConstants.TOP : return new TopRenderer(tabPane); case SwingConstants.BOTTOM : return new BottomRenderer(tabPane); case SwingConstants.LEFT : return new LeftRenderer(tabPane); case SwingConstants.RIGHT : return new RightRenderer(tabPane); default : return new TopRenderer(tabPane); } } private static AbstractRenderer createEmbeddedRenderer(JTabbedPane tabPane) { switch (tabPane.getTabPlacement()) { case SwingConstants.TOP : return new TopEmbeddedRenderer(tabPane); case SwingConstants.BOTTOM : return new BottomEmbeddedRenderer(tabPane); case SwingConstants.LEFT : return new LeftEmbeddedRenderer(tabPane); case SwingConstants.RIGHT : return new RightEmbeddedRenderer(tabPane); default : return new TopEmbeddedRenderer(tabPane); } } private void initColors() { shadowColor = UIManager.getColor("TabbedPane.shadow"); darkShadow = UIManager.getColor("TabbedPane.darkShadow"); selectColor = UIManager.getColor("TabbedPane.selected"); focus = UIManager.getColor("TabbedPane.focus"); selectHighlight = UIManager.getColor("TabbedPane.selectHighlight"); lightHighlight = UIManager.getColor("TabbedPane.highlight"); selectLight = new Color( (2 * selectColor.getRed() + selectHighlight.getRed()) / 3, (2 * selectColor.getGreen() + selectHighlight.getGreen()) / 3, (2 * selectColor.getBlue() + selectHighlight.getBlue()) / 3); } protected boolean isFirstDisplayedTab(int tabIndex, int position, int paneBorder) { return tabIndex == 0; // return (position - paneBorder) < 8; } protected Insets getTabAreaInsets(Insets defaultInsets) { return defaultInsets; } protected Insets getContentBorderInsets(Insets defaultInsets) { return defaultInsets; } /** * Returns the amount by which the label should be shifted horizontally. */ protected int getTabLabelShiftX(int tabIndex, boolean isSelected) { return 0; } /** * Returns the amount by which the label should be shifted vertically. */ protected int getTabLabelShiftY(int tabIndex, boolean isSelected) { return 0; } /** * Returns the amount of overlap for two Runs. */ protected int getTabRunOverlay(int tabRunOverlay) { return tabRunOverlay; } /** * Returns if a run should be padded with empty space * to take up as much room as the others. */ protected boolean shouldPadTabRun(int run, boolean aPriori) { return aPriori; } /** * Returns the amount by which the run number {@code run} * should be indented. Add a few pixels for every run to make * diagonal lines align. */ protected int getTabRunIndent(int run) { return 0; } /** * Returns the insets for the given tab. */ protected abstract Insets getTabInsets(int tabIndex, Insets tabInsets); /** * Draws the rectancle around the Tab label which indicates keyboard focus. */ protected abstract void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected); /** * Fills the background of the given tab to make sure overlap of * tabs is handled correctly. */ protected abstract void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected); /** * Paints the border around the given tab. */ protected abstract void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected); /** * Returns additional the insets for the selected tab. This allows to "raise" * The selected tab over the others */ protected Insets getSelectedTabPadInsets() { return EMPTY_INSETS; } /** * Draws the top edge of the border around the content area. * Draw unbroken line for tabs are not on TOP * override where appropriate. */ protected void paintContentBorderTopEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { if (isContentBorderPainted) { g.setColor(selectHighlight); g.fillRect(x, y, w - 1, 1); } } /** * Draws the bottom edge of the Border around the content area. * Draw broken line if selected tab is visible and adjacent to content * and TabPlacement is same as painted edge. */ protected void paintContentBorderBottomEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { if (isContentBorderPainted) { g.setColor(darkShadow); g.fillRect(x, y + h - 1, w - 1, 1); } } /** * Draws the left edge of the Border around the content area. * Draw broken line if selected tab is visible and adjacent to content * and TabPlacement is same as painted edge */ protected void paintContentBorderLeftEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { if (isContentBorderPainted) { g.setColor(selectHighlight); g.fillRect(x, y, 1, h - 1); } } /** * Draws the right edge of the Border around the content area. * Draw broken line if selected tab is visible and adjacent to content * and TabPlacement is same as painted edge */ protected void paintContentBorderRightEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { if (isContentBorderPainted) { g.setColor(darkShadow); g.fillRect(x + w - 1, y, 1, h); } } /** * Returns the amount of overlap for two tabs. */ protected int getTabsOverlay() { return 0; } } /** * The renderer for the case where tabs are displayed below the contents * and with minimal decoration. */ private static final class BottomEmbeddedRenderer extends AbstractRenderer { private BottomEmbeddedRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected Insets getTabAreaInsets(Insets insets) { return EMPTY_INSETS; } @Override protected Insets getContentBorderInsets(Insets defaultInsets) { return SOUTH_INSETS; } @Override protected Insets getSelectedTabPadInsets() { return EMPTY_INSETS; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top, tabInsets.left, tabInsets.bottom, tabInsets.right); } /** * Paints no focus: minimal decoration is really minimal. */ @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { // Embedded tabs paint no focus. } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { g.setColor(selectColor); g.fillRect(x, y, w + 1, h); } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { int bottom = h; int right = w + 1; g.translate(x, y); if (isFirstDisplayedTab(tabIndex, x, tabPane.getBounds().x)) { if (isSelected) { // selected and first in line g.setColor(shadowColor); g.fillRect(right, 0, 1, bottom - 1); g.fillRect(right - 1, bottom - 1, 1, 1); // it is open to discussion if the outer border of the tab // should be painted because in the primary case it won't // be visible anyway. uncomment the following two lines if wanted // g.fillRect(0,bottom, right, 1); // g.fillRect(-1,0,1,bottom; g.setColor(selectHighlight); g.fillRect(0, 0, 1, bottom); g.fillRect(right - 1, 0, 1, bottom - 1); g.fillRect(1, bottom - 1, right - 2, 1); } else { //not selected and first in line } } else { if (isSelected) { //selected and not first in line g.setColor(shadowColor); g.fillRect(0, 0, 1, bottom - 1); g.fillRect(1, bottom - 1, 1, 1); g.fillRect(right, 0, 1, bottom - 1); g.fillRect(right - 1, bottom - 1, 1, 1); // outside line: // g.fillRect(2,bottom, right-3, 1); g.setColor(selectHighlight); g.fillRect(1, 0, 1, bottom - 1); g.fillRect(right - 1, 0, 1, bottom - 1); g.fillRect(2, bottom - 1, right - 3, 1); } else { g.setColor(shadowColor); g.fillRect(1, h / 2, 1, h - h / 2); } } g.translate(-x, -y); } @Override protected void paintContentBorderBottomEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { g.setColor(shadowColor); g.fillRect(x, y + h - 1, w, 1); } } /** * The renderer for the case where Tabs are below the content and * decoration is standard. */ private static final class BottomRenderer extends AbstractRenderer { private BottomRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected Insets getTabAreaInsets(Insets defaultInsets) { return new Insets(defaultInsets.top, defaultInsets.left + 5, defaultInsets.bottom, defaultInsets.right); } @Override protected int getTabLabelShiftY(int tabIndex, boolean isSelected) { return isSelected ? 0 : -1; } @Override protected int getTabRunOverlay(int tabRunOverlay) { return tabRunOverlay - 2; } @Override protected int getTabRunIndent(int run) { return 6 * run; } @Override protected Insets getSelectedTabPadInsets() { return SOUTH_INSETS; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top, tabInsets.left - 2, tabInsets.bottom, tabInsets.right - 2); } @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { if (!tabPane.hasFocus() || !isSelected) { return; } Rectangle tabRect = rects[tabIndex]; int top = tabRect.y; int left = tabRect.x + 6; int height = tabRect.height - 3; int width = tabRect.width - 12; g.setColor(focus); g.drawRect(left, top, width, height); } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { g.setColor(selectColor); g.fillRect(x, y, w, h); } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { int bottom = h - 1; int right = w + 4; g.translate(x - 3, y); // Paint Border g.setColor(selectHighlight); // Paint left g.fillRect(0, 0, 1, 2); g.drawLine(0, 2, 4, bottom - 4); g.fillRect(5, bottom - 3, 1, 2); g.fillRect(6, bottom - 1, 1, 1); // Paint bootom g.fillRect(7, bottom, 1, 1); g.setColor(darkShadow); g.fillRect(8, bottom, right - 13, 1); // Paint right g.drawLine(right + 1, 0, right - 3, bottom - 4); g.fillRect(right - 4, bottom - 3, 1, 2); g.fillRect(right - 5, bottom - 1, 1, 1); g.translate(-x + 3, -y); } @Override protected void paintContentBorderBottomEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { int bottom = y + h - 1; int right = x + w - 1; g.translate(x, bottom); if (drawBroken && selRect.x >= x && selRect.x <= x + w) { // Break line to show visual connection to selected tab g.setColor(darkShadow); g.fillRect(0, 0, selRect.x - x - 2, 1); if (selRect.x + selRect.width < x + w - 2) { g.setColor(darkShadow); g.fillRect(selRect.x + selRect.width + 2 - x, 0, right - selRect.x - selRect.width - 2, 1); } } else { g.setColor(darkShadow); g.fillRect(0, 0, w - 1, 1); } g.translate(-x, -bottom); } @Override protected int getTabsOverlay() { return 4; } } /** * The renderer for tabs on the left with minimal decoration. */ private static final class LeftEmbeddedRenderer extends AbstractRenderer { private LeftEmbeddedRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected Insets getTabAreaInsets(Insets insets) { return EMPTY_INSETS; } @Override protected Insets getContentBorderInsets(Insets defaultInsets) { return WEST_INSETS; } @Override protected int getTabRunOverlay(int tabRunOverlay) { return 0; } @Override protected boolean shouldPadTabRun(int run, boolean aPriori) { return false; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top, tabInsets.left, tabInsets.bottom, tabInsets.right); } @Override protected Insets getSelectedTabPadInsets() { return EMPTY_INSETS; } /** * minimal decoration is really minimal: no focus. */ @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { // Embedded tabs paint no focus. } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { g.setColor(selectColor); g.fillRect(x, y, w, h); } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { int bottom = h; int right = w; g.translate(x, y); if (isFirstDisplayedTab(tabIndex, y, tabPane.getBounds().y)) { if (isSelected) { //selected and first in line g.setColor(selectHighlight); g.fillRect(0, 0, right, 1); g.fillRect(0, 0, 1, bottom - 1); g.fillRect(1, bottom - 1, right - 1, 1); g.setColor(shadowColor); g.fillRect(0, bottom - 1, 1, 1); g.fillRect(1, bottom, right - 1, 1); // outside line: // g.fillRect(-1,0,1,bottom-1) } else { //not selected but first in line } } else { if (isSelected) { //selected but not first in line g.setColor(selectHighlight); g.fillRect(1, 1, right - 1, 1); g.fillRect(0, 2, 1, bottom - 2); g.fillRect(1, bottom - 1, right - 1, 1); g.setColor(shadowColor); g.fillRect(1, 0, right - 1, 1); g.fillRect(0, 1, 1, 1); g.fillRect(0, bottom - 1, 1, 1); g.fillRect(1, bottom, right - 1, 1); // outside line: // g.fillRect(-1,2,1,bottom-3) } else { g.setColor(shadowColor); g.fillRect(0, 0, right / 3, 1); } } g.translate(-x, -y); } @Override protected void paintContentBorderLeftEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { g.setColor(shadowColor); g.fillRect(x, y, 1, h); } } /** * Renderer for tabs on the left with normal decoration. */ private static final class LeftRenderer extends AbstractRenderer { private LeftRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected Insets getTabAreaInsets(Insets defaultInsets) { return new Insets(defaultInsets.top + 4, defaultInsets.left, defaultInsets.bottom, defaultInsets.right); } @Override protected int getTabLabelShiftX(int tabIndex, boolean isSelected) { return 1; } @Override protected int getTabRunOverlay(int tabRunOverlay) { return 1; } @Override protected boolean shouldPadTabRun(int run, boolean aPriori) { return false; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top, tabInsets.left - 5, tabInsets.bottom + 1, tabInsets.right - 5); } @Override protected Insets getSelectedTabPadInsets() { return WEST_INSETS; } @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { if (!tabPane.hasFocus() || !isSelected) { return; } Rectangle tabRect = rects[tabIndex]; int top = tabRect.y + 2; int left = tabRect.x + 3; int height = tabRect.height - 5; int width = tabRect.width - 6; g.setColor(focus); g.drawRect(left, top, width, height); } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { if (!isSelected) { g.setColor(selectLight); g.fillRect(x + 1, y + 1, w - 1, h - 2); } else { g.setColor(selectColor); g.fillRect(x + 1, y + 1, w - 3, h - 2); } } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { int bottom = h - 1; int left = 0; g.translate(x, y); // Paint Border g.setColor(selectHighlight); // Paint top g.fillRect(left + 2, 0, w - 2 - left, 1); // Paint left g.fillRect(left + 1, 1, 1, 1); g.fillRect(left, 2, 1, bottom - 3); g.setColor(darkShadow); g.fillRect(left + 1, bottom - 1, 1, 1); // Paint bottom g.fillRect(left + 2, bottom, w - 2 - left, 1); g.translate(-x, -y); } @Override protected void paintContentBorderLeftEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { g.setColor(selectHighlight); if (drawBroken && selRect.y >= y && selRect.y <= y + h) { // Break line to show visual connection to selected tab g.fillRect(x, y, 1, selRect.y + 1 - y); if (selRect.y + selRect.height < y + h - 2) { g.fillRect(x, selRect.y + selRect.height - 1, 1, y + h - selRect.y - selRect.height); } } else { g.fillRect(x, y, 1, h - 1); } } } /** * The renderer for tabs on the right with minimal decoration. */ private static final class RightEmbeddedRenderer extends AbstractRenderer { private RightEmbeddedRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected Insets getTabAreaInsets(Insets insets) { return EMPTY_INSETS; } @Override protected Insets getContentBorderInsets(Insets defaultInsets) { return EAST_INSETS; } @Override protected int getTabRunIndent(int run) { return 4 * run; } @Override protected int getTabRunOverlay(int tabRunOverlay) { return 0; } @Override protected boolean shouldPadTabRun(int run, boolean aPriori) { return false; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top, tabInsets.left, tabInsets.bottom, tabInsets.right); } @Override protected Insets getSelectedTabPadInsets() { return EMPTY_INSETS; } /** * Minimal decoration: no focus. */ @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { // Embedded tabs paint no focus. } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { g.setColor(selectColor); g.fillRect(x, y, w, h); } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { int bottom = h; int right = w - 1; g.translate(x + 1, y); if (isFirstDisplayedTab(tabIndex, y, tabPane.getBounds().y)) { if (isSelected) { //selected and first in line g.setColor(shadowColor); //outside lines: // g.fillRect(0,-1,right,1); // g.fillRect(right,-1,1,bottom); g.fillRect(right - 1, bottom - 1, 1, 1); g.fillRect(0, bottom, right - 1, 1); g.setColor(selectHighlight); g.fillRect(0, 0, right - 1, 1); g.fillRect(right - 1, 0, 1, bottom - 1); g.fillRect(0, bottom - 1, right - 1, 1); } } else { if (isSelected) { //selected but not first in line g.setColor(shadowColor); g.fillRect(0, -1, right - 1, 1); g.fillRect(right - 1, 0, 1, 1); //outside line: // g.fillRect(right,0,1,bottom); g.fillRect(right - 1, bottom - 1, 1, 1); g.fillRect(0, bottom, right - 1, 1); g.setColor(selectHighlight); g.fillRect(0, 0, right - 1, 1); g.fillRect(right - 1, 1, 1, bottom - 2); g.fillRect(0, bottom - 1, right - 1, 1); } else { //not selected and not first in line g.setColor(shadowColor); g.fillRect(2 * right / 3, 0, right / 3, 1); } } g.translate(-x - 1, -y); } @Override protected void paintContentBorderRightEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { g.setColor(shadowColor); g.fillRect(x + w - 1, y, 1, h); } } /** * Renderer for tabs on the right with normal decoration. */ private static final class RightRenderer extends AbstractRenderer { private RightRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected int getTabLabelShiftX(int tabIndex, boolean isSelected) { return 1; } @Override protected int getTabRunOverlay(int tabRunOverlay) { return 1; } @Override protected boolean shouldPadTabRun(int run, boolean aPriori) { return false; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top, tabInsets.left - 5, tabInsets.bottom + 1, tabInsets.right - 5); } @Override protected Insets getSelectedTabPadInsets() { return EAST_INSETS; } @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { if (!tabPane.hasFocus() || !isSelected) { return; } Rectangle tabRect = rects[tabIndex]; int top = tabRect.y + 2; int left = tabRect.x + 3; int height = tabRect.height - 5; int width = tabRect.width - 6; g.setColor(focus); g.drawRect(left, top, width, height); } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { if (!isSelected) { g.setColor(selectLight); g.fillRect(x, y, w, h); } else { g.setColor(selectColor); g.fillRect(x + 2, y, w - 2, h); } } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { int bottom = h - 1; int right = w; g.translate(x, y); // Paint Border g.setColor(selectHighlight); g.fillRect(0, 0, right - 1, 1); // Paint right g.setColor(darkShadow); g.fillRect(right - 1, 1, 1, 1); g.fillRect(right, 2, 1, bottom - 3); // Paint bottom g.fillRect(right - 1, bottom - 1, 1, 1); g.fillRect(0, bottom, right - 1, 1); g.translate(-x, -y); } @Override protected void paintContentBorderRightEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { g.setColor(darkShadow); if (drawBroken && selRect.y >= y && selRect.y <= y + h) { // Break line to show visual connection to selected tab g.fillRect(x + w - 1, y, 1, selRect.y - y); if (selRect.y + selRect.height < y + h - 2) { g.fillRect(x + w - 1, selRect.y + selRect.height, 1, y + h - selRect.y - selRect.height); } } else { g.fillRect(x + w - 1, y, 1, h - 1); } } } /** * Renderer for tabs on top with minimal decoration. */ private static final class TopEmbeddedRenderer extends AbstractRenderer { private TopEmbeddedRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected Insets getTabAreaInsets(Insets insets) { return EMPTY_INSETS; } @Override protected Insets getContentBorderInsets(Insets defaultInsets) { return NORTH_INSETS; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top, tabInsets.left + 1, tabInsets.bottom, tabInsets.right); } @Override protected Insets getSelectedTabPadInsets() { return EMPTY_INSETS; } /** * Minimal decoration: no focus. */ @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { // Embedded tabs paint no focus. } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { g.setColor(selectColor); g.fillRect(x, y, w, h); } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { g.translate(x, y); int right = w; int bottom = h; if (isFirstDisplayedTab(tabIndex, x, tabPane.getBounds().x)) { if (isSelected) { g.setColor(selectHighlight); //left g.fillRect(0, 0, 1, bottom); //top g.fillRect(0, 0, right - 1, 1); //right g.fillRect(right - 1, 0, 1, bottom); g.setColor(shadowColor); //topright corner g.fillRect(right - 1, 0, 1, 1); //right g.fillRect(right, 1, 1, bottom); } } else { if (isSelected) { g.setColor(selectHighlight); //left g.fillRect(1, 1, 1, bottom - 1); //top g.fillRect(2, 0, right - 3, 1); //right g.fillRect(right - 1, 1, 1, bottom - 1); g.setColor(shadowColor); //left g.fillRect(0, 1, 1, bottom - 1); //topleft corner g.fillRect(1, 0, 1, 1); //topright corner g.fillRect(right - 1, 0, 1, 1); //right g.fillRect(right, 1, 1, bottom); } else { g.setColor(shadowColor); g.fillRect(0, 0, 1, bottom +2 - bottom / 2); } } g.translate(-x, -y); } @Override protected void paintContentBorderTopEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { g.setColor(shadowColor); g.fillRect(x, y, w, 1); } } /** * Renderer for tabs on top with normal decoration. */ private static final class TopRenderer extends AbstractRenderer { private TopRenderer(JTabbedPane tabPane) { super(tabPane); } @Override protected Insets getTabAreaInsets(Insets defaultInsets) { return new Insets(defaultInsets.top, defaultInsets.left + 4, defaultInsets.bottom, defaultInsets.right); } @Override protected int getTabLabelShiftY(int tabIndex, boolean isSelected) { return isSelected ? -1 : 0; } @Override protected int getTabRunOverlay(int tabRunOverlay) { return tabRunOverlay - 2; } @Override protected int getTabRunIndent(int run) { return 6 * run; } @Override protected Insets getSelectedTabPadInsets() { return NORTH_INSETS; } @Override protected Insets getTabInsets(int tabIndex, Insets tabInsets) { return new Insets(tabInsets.top-1, tabInsets.left - 4, tabInsets.bottom, tabInsets.right - 4); } @Override protected void paintFocusIndicator( Graphics g, Rectangle[] rects, int tabIndex, Rectangle iconRect, Rectangle textRect, boolean isSelected) { if (!tabPane.hasFocus() || !isSelected) { return; } Rectangle tabRect = rects[tabIndex]; int top = tabRect.y +1 ; int left = tabRect.x + 4; int height = tabRect.height - 3; int width = tabRect.width - 9; g.setColor(focus); g.drawRect(left, top, width, height); } @Override protected void paintTabBackground(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { int sel = isSelected ? 0 : 1; g.setColor(selectColor); g.fillRect(x, y + sel, w, h / 2); g.fillRect(x - 1, y + sel + h / 2, w + 2, h - h / 2); } @Override protected void paintTabBorder(Graphics g, int tabIndex, int x, int y, int w, int h, boolean isSelected) { g.translate(x - 4, y); int top = 0; int right = w + 6; // Paint Border g.setColor(selectHighlight); // Paint left g.drawLine(1, h - 1, 4, top + 4); g.fillRect(5, top + 2, 1, 2); g.fillRect(6, top + 1, 1, 1); // Paint top g.fillRect(7, top, right - 12, 1); // Paint right g.setColor(darkShadow); g.drawLine(right, h - 1, right - 3, top + 4); g.fillRect(right - 4, top + 2, 1, 2); g.fillRect(right - 5, top + 1, 1, 1); g.translate(-x + 4, -y); } @Override protected void paintContentBorderTopEdge( Graphics g, int x, int y, int w, int h, boolean drawBroken, Rectangle selRect, boolean isContentBorderPainted) { int right = x + w - 1; int top = y; g.setColor(selectHighlight); if (drawBroken && selRect.x >= x && selRect.x <= x + w) { // Break line to show visual connection to selected tab g.fillRect(x, top, selRect.x - 2 - x, 1); if (selRect.x + selRect.width < x + w - 2) { g.fillRect(selRect.x + selRect.width + 2, top, right - 2 - selRect.x - selRect.width, 1); } else { g.fillRect(x + w - 2, top, 1, 1); } } else { g.fillRect(x, top, w - 1, 1); } } @Override protected int getTabsOverlay() { return 6; } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticScrollPaneUI.java0000644000175000017500000001000311731047364027502 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.JScrollPane; import javax.swing.LookAndFeel; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.metal.MetalScrollPaneUI; import com.jgoodies.looks.Options; /** * The JGoodies Plastic L&Fl implementation of {@code ScrollPaneUI}. * Installs an etched border if the client property * {@code Options.IS_ETCHED_KEY} is set. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see com.jgoodies.looks.Options#IS_ETCHED_KEY */ public final class PlasticScrollPaneUI extends MetalScrollPaneUI { /** * Holds the listener that handles changes in the etched border property. */ private PropertyChangeListener borderStyleChangeHandler; public static ComponentUI createUI(JComponent b) { return new PlasticScrollPaneUI(); } @Override protected void installDefaults(JScrollPane scrollPane) { super.installDefaults(scrollPane); installEtchedBorder(scrollPane); } // Managing the Etched Property ******************************************* @Override public void installListeners(JScrollPane scrollPane) { super.installListeners(scrollPane); borderStyleChangeHandler = new BorderStyleChangeHandler(); scrollPane.addPropertyChangeListener(Options.IS_ETCHED_KEY, borderStyleChangeHandler); } @Override protected void uninstallListeners(JComponent c) { ((JScrollPane) c).removePropertyChangeListener(Options.IS_ETCHED_KEY, borderStyleChangeHandler); super.uninstallListeners(c); } private static void installEtchedBorder(JScrollPane scrollPane) { Object value = scrollPane.getClientProperty(Options.IS_ETCHED_KEY); boolean hasEtchedBorder = Boolean.TRUE.equals(value); LookAndFeel.installBorder(scrollPane, hasEtchedBorder ? "ScrollPane.etchedBorder" : "ScrollPane.border"); } private class BorderStyleChangeHandler implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { JScrollPane scrollPane = (JScrollPane) evt.getSource(); installEtchedBorder(scrollPane); } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticToolBarSeparatorUI.java0000644000175000017500000000456111731047364030677 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicToolBarSeparatorUI; /** * The JGoodies Plastic L&F implementation of {@code ToolBarSeparatorUI}. * It differs from its superclass in that it uses a shared UI delegate. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ */ public final class PlasticToolBarSeparatorUI extends BasicToolBarSeparatorUI { /** Shared UI object. */ private static ComponentUI toolBarSeparatorUI; public static ComponentUI createUI(JComponent c) { if (toolBarSeparatorUI == null) { toolBarSeparatorUI = new PlasticToolBarSeparatorUI(); } return toolBarSeparatorUI; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticComboBoxButton.java0000644000175000017500000002545611731047366030132 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.*; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.plaf.basic.BasicComboBoxRenderer; /** * The default button for combo boxes in the JGoodies Plastic Look&Feel. *

* It differs from {@code MetalComboBoxButton} in that the border * is quite the same as for text fields: a compound border with an inner * {@code MarginBorder}. *

* Also, we try to switch the {@code ListCellRenderer} to transparent, * which works for most {@code JComponent} renderes including the * {@code BasicComboBoxRenderer}. * * @author Karsten Lentzsch * @version $Revision: 1.13 $ */ final class PlasticComboBoxButton extends JButton { private static final Insets EMPTY_INSETS = new Insets(0, 0, 0, 0); private static final Border EMPTY_BORDER = new EmptyBorder(EMPTY_INSETS); private static final int LEFT_MARGIN = 2; private static final int RIGHT_MARGIN = 2; private final JList listBox; private final CellRendererPane rendererPane; private JComboBox comboBox; private Icon comboIcon; private boolean iconOnly = false; private final boolean borderPaintsFocus; /** * Constructs a {@code PlasticComboBoxButton}. */ PlasticComboBoxButton( JComboBox comboBox, Icon comboIcon, boolean iconOnly, CellRendererPane rendererPane, JList listBox) { super(""); setModel(new DefaultButtonModel() { @Override public void setArmed(boolean armed) { super.setArmed(isPressed() || armed); } }); this.comboBox = comboBox; this.comboIcon = comboIcon; this.iconOnly = iconOnly; this.rendererPane = rendererPane; this.listBox = listBox; setEnabled(comboBox.isEnabled()); setFocusable(false); setRequestFocusEnabled(comboBox.isEnabled()); setBorder(UIManager.getBorder("ComboBox.arrowButtonBorder")); setMargin(new Insets(0, LEFT_MARGIN, 0, RIGHT_MARGIN)); borderPaintsFocus = UIManager.getBoolean("ComboBox.borderPaintsFocus"); } public JComboBox getComboBox() { return comboBox; } public void setComboBox(JComboBox cb) { comboBox = cb; } public Icon getComboIcon() { return comboIcon; } public void setComboIcon(Icon i) { comboIcon = i; } public boolean isIconOnly() { return iconOnly; } public void setIconOnly(boolean b) { iconOnly = b; } @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); // Set the background and foreground to the combobox colors. if (enabled) { setBackground(comboBox.getBackground()); setForeground(comboBox.getForeground()); } else { setBackground(UIManager.getColor("ComboBox.disabledBackground")); setForeground(UIManager.getColor("ComboBox.disabledForeground")); } } /** * The combo's arrow button should be excluded from the focus traversal. * Since Java 6 the arrow button is configured as being focusable * in {@code BasicComboBoxUI#configureArrowButton}. * Therefore it doesn't help to call {@code setFocusable(false)} * in the constructor; instead we override this method. */ @Override public boolean isFocusTraversable() { return false; } /** * Paints the component; honors the 3D settings and * tries to switch the renderer component to transparent. */ @Override public void paintComponent(Graphics g) { super.paintComponent(g); boolean leftToRight = PlasticUtils.isLeftToRight(comboBox); Insets insets = getInsets(); int width = getWidth() - (insets.left + insets.right); int height = getHeight() - (insets.top + insets.bottom); if (height <= 0 || width <= 0) { return; } int left = insets.left; int top = insets.top; int right = left + (width - 1); int iconWidth = 0; int iconLeft = (leftToRight) ? right : left; // Paint the icon if (comboIcon != null) { iconWidth = comboIcon.getIconWidth(); int iconHeight = comboIcon.getIconHeight(); int iconTop; if (iconOnly) { iconLeft = (getWidth() - iconWidth) / 2; iconTop = (getHeight() - iconHeight) / 2; } else { iconLeft = leftToRight ? left + (width - 1) - iconWidth : left; iconTop = (getHeight() - iconHeight) / 2; } comboIcon.paintIcon(this, g, iconLeft, iconTop); } // Let the renderer paint if (!iconOnly && comboBox != null) { ListCellRenderer renderer = comboBox.getRenderer(); boolean renderPressed = getModel().isPressed(); Component c = renderer.getListCellRendererComponent( listBox, comboBox.getSelectedItem(), -1, renderPressed, false); int x = leftToRight ? left : left + iconWidth; int y = top; int w = getWidth() - left - PlasticComboBoxUI.getEditableButtonWidth(); int h = height; Border oldBorder = null; if ((c instanceof JComponent) && !isTableCellEditor()) { JComponent component = (JComponent) c; if (c instanceof BasicComboBoxRenderer.UIResource) { oldBorder = component.getBorder(); component.setBorder(EMPTY_BORDER); } Insets rendererInsets = component.getInsets(); Insets editorInsets = UIManager.getInsets("ComboBox.editorInsets"); int offsetTop = Math.max(0, editorInsets.top - rendererInsets.top); int offsetBottom = Math.max(0, editorInsets.bottom - rendererInsets.bottom); y += offsetTop; h -= offsetTop + offsetBottom; } c.setFont(rendererPane.getFont()); configureColors(c); // Fix for 4238829: should lay out the JPanel. boolean shouldValidate = c instanceof JPanel; if (!is3D() || !(c instanceof JComponent) || !c.isOpaque()) { rendererPane.paintComponent(g, c, this, x, y, w, h, shouldValidate); } else { // In case, we are in 3D mode _and_ have a non-transparent // JComponent renderer, store the opaque state, set it // to transparent, paint, then restore. JComponent component = (JComponent) c; boolean oldOpaque = component.isOpaque(); component.setOpaque(false); rendererPane.paintComponent(g, c, this, x, y, w, h, shouldValidate); component.setOpaque(oldOpaque); } if (oldBorder != null) { ((JComponent) c).setBorder(oldBorder); } } if (comboIcon != null) { // Paint the focus boolean hasFocus = comboBox.hasFocus(); if (!borderPaintsFocus && hasFocus) { g.setColor(PlasticLookAndFeel.getFocusColor()); g.drawRect(2, 2, getWidth() - 6, getHeight() - 6); } } } private void configureColors(Component c) { if (model.isArmed() && model.isPressed()) { if (isOpaque()) { c.setBackground(UIManager.getColor("Button.select")); } c.setForeground(comboBox.getForeground()); } else if (!comboBox.isEnabled()) { if (isOpaque()) { c.setBackground(UIManager.getColor("ComboBox.disabledBackground")); } c.setForeground(UIManager.getColor("ComboBox.disabledForeground")); } else { c.setForeground(comboBox.getForeground()); c.setBackground(comboBox.getBackground()); } } // Helper Code ************************************************************ /** * Checks and answers if we should paint a pseudo 3D effect. */ private boolean is3D() { if (PlasticUtils.force3D(comboBox)) { return true; } if (PlasticUtils.forceFlat(comboBox)) { return false; } return PlasticUtils.is3D("ComboBox."); } /** * Checks and answers if this UI's combo has a client property * that indicates that the combo is used as a table cell editor. * * @return {@code true} if the table cell editor client property * is set to {@code Boolean.TRUE}, {@code false} otherwise */ private boolean isTableCellEditor() { return Boolean.TRUE.equals(comboBox.getClientProperty(PlasticComboBoxUI.CELL_EDITOR_KEY)); } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticMenuBarUI.java0000644000175000017500000001274411731047364027007 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Graphics; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuBarUI; import com.jgoodies.looks.BorderStyle; import com.jgoodies.looks.HeaderStyle; import com.jgoodies.looks.Options; /** * The JGoodies Plastic look and feel implemenation of {@code MenuBarUI}. * Can handle optional {@code Border} types as specified by the * {@code BorderStyle} or {@code HeaderStyle} client properties. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticMenuBarUI extends BasicMenuBarUI { private PropertyChangeListener listener; public static ComponentUI createUI(JComponent b) { return new PlasticMenuBarUI(); } // Handling Special Borders ********************************************* @Override protected void installDefaults() { super.installDefaults(); installSpecialBorder(); } @Override protected void installListeners() { super.installListeners(); listener = createBorderStyleListener(); menuBar.addPropertyChangeListener(listener); } @Override protected void uninstallListeners() { menuBar.removePropertyChangeListener(listener); super.uninstallListeners(); } private PropertyChangeListener createBorderStyleListener() { return new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (prop.equals(Options.HEADER_STYLE_KEY) || prop.equals(PlasticLookAndFeel.BORDER_STYLE_KEY)) { PlasticMenuBarUI.this.installSpecialBorder(); } } }; } /** * Installs a special border, if either a look-dependent {@code BorderStyle} * or a look-independent {@code HeaderStyle} has been specified. * A look specific {@code BorderStyle} shadows a {@code HeaderStyle}.

* * We recommend to specify a {@code HeaderStyle}. */ public void installSpecialBorder() { String suffix; BorderStyle borderStyle = BorderStyle.from(menuBar, PlasticLookAndFeel.BORDER_STYLE_KEY); if (borderStyle == BorderStyle.EMPTY) { suffix = "emptyBorder"; } else if (borderStyle == BorderStyle.ETCHED) { suffix = "etchedBorder"; } else if (borderStyle == BorderStyle.SEPARATOR) { suffix = "separatorBorder"; } else { HeaderStyle headerStyle = HeaderStyle.from(menuBar); if (headerStyle == HeaderStyle.BOTH) { suffix = "headerBorder"; } else if (headerStyle == HeaderStyle.SINGLE && is3D()) { suffix = "etchedBorder"; } else { return; } } LookAndFeel.installBorder(menuBar, "MenuBar." + suffix); } // 3D Effect ************************************************************************ @Override public void update(Graphics g, JComponent c) { if (c.isOpaque()) { g.setColor(c.getBackground()); g.fillRect(0, 0, c.getWidth(), c.getHeight()); if (is3D()) { Rectangle bounds = new Rectangle(0, 0, c.getWidth(), c.getHeight()); PlasticUtils.addLight3DEffekt(g, bounds, true); } } paint(g, c); } /** * Checks and answers if we should add a pseudo 3D effect. */ private boolean is3D() { if (PlasticUtils.force3D(menuBar)) { return true; } if (PlasticUtils.forceFlat(menuBar)) { return false; } return PlasticUtils.is3D("MenuBar.") && (HeaderStyle.from(menuBar) != null) && (BorderStyle.from(menuBar, PlasticLookAndFeel.BORDER_STYLE_KEY) != BorderStyle.EMPTY); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticInternalFrameTitlePane.java0000644000175000017500000002652711731047364031561 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.*; import javax.swing.Icon; import javax.swing.JInternalFrame; import javax.swing.SwingUtilities; import javax.swing.plaf.metal.MetalInternalFrameTitlePane; /** * Paints the internal frame title. Uses JGoodies Plastic colors. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ public final class PlasticInternalFrameTitlePane extends MetalInternalFrameTitlePane { private PlasticBumps paletteBumps; private final PlasticBumps activeBumps = new PlasticBumps( 0, 0, PlasticLookAndFeel.getPrimaryControlHighlight(), PlasticLookAndFeel.getPrimaryControlDarkShadow(), PlasticLookAndFeel.getPrimaryControl()); private final PlasticBumps inactiveBumps = new PlasticBumps( 0, 0, PlasticLookAndFeel.getControlHighlight(), PlasticLookAndFeel.getControlDarkShadow(), PlasticLookAndFeel.getControl()); public PlasticInternalFrameTitlePane(JInternalFrame frame) { super(frame); } @Override public void paintPalette(Graphics g) { boolean leftToRight = PlasticUtils.isLeftToRight(frame); int width = getWidth(); int height = getHeight(); if (paletteBumps == null) { paletteBumps = new PlasticBumps( 0, 0, PlasticLookAndFeel.getPrimaryControlHighlight(), PlasticLookAndFeel.getPrimaryControlInfo(), PlasticLookAndFeel.getPrimaryControlShadow()); } Color background = PlasticLookAndFeel.getPrimaryControlShadow(); Color darkShadow = PlasticLookAndFeel.getControlDarkShadow(); g.setColor(background); g.fillRect(0, 0, width, height); g.setColor(darkShadow); g.drawLine(0, height - 1, width, height - 1); int buttonsWidth = getButtonsWidth(); int xOffset = leftToRight ? 4 : buttonsWidth + 4; int bumpLength = width - buttonsWidth - 2 * 4; int bumpHeight = getHeight() - 4; paletteBumps.setBumpArea(bumpLength, bumpHeight); paletteBumps.paintIcon(this, g, xOffset, 2); } @Override public void paintComponent(Graphics g) { if (isPalette) { paintPalette(g); return; } boolean leftToRight = PlasticUtils.isLeftToRight(frame); boolean isSelected = frame.isSelected(); int width = getWidth(); int height = getHeight(); Color background = null; Color foreground = null; Color shadow = null; PlasticBumps bumps; if (isSelected) { background = PlasticLookAndFeel.getWindowTitleBackground(); foreground = PlasticLookAndFeel.getWindowTitleForeground(); bumps = activeBumps; } else { background = PlasticLookAndFeel.getWindowTitleInactiveBackground(); foreground = PlasticLookAndFeel.getWindowTitleInactiveForeground(); bumps = inactiveBumps; } // JGoodies: darkShadow is always controlDarkShadow shadow = PlasticLookAndFeel.getControlDarkShadow(); /* if (isSelected) { if (selectedBackgroundKey != null) { background = UIManager.getColor(selectedBackgroundKey); } if (background == null) { background = PlasticLookAndFeel.getWindowTitleBackground(); } if (selectedForegroundKey != null) { foreground = UIManager.getColor(selectedForegroundKey); } if (selectedShadowKey != null) { shadow = UIManager.getColor(selectedShadowKey); } if (shadow == null) { shadow = PlasticLookAndFeel.getPrimaryControlDarkShadow(); } if (foreground == null) { foreground = PlasticLookAndFeel.getWindowTitleForeground(); } activeBumps.setBumpColors(activeBumpsHighlight, activeBumpsShadow, background); bumps = activeBumps; } else { background = PlasticLookAndFeel.getWindowTitleInactiveBackground(); foreground = PlasticLookAndFeel.getWindowTitleInactiveForeground(); shadow = PlasticLookAndFeel.getControlDarkShadow(); bumps = inactiveBumps; } */ g.setColor(background); g.fillRect(0, 0, width, height); g.setColor(shadow); g.drawLine(0, height - 1, width, height - 1); g.drawLine(0, 0, 0, 0); g.drawLine(width - 1, 0, width - 1, 0); int titleLength = 0; int xOffset = leftToRight ? 5 : width - 5; String frameTitle = frame.getTitle(); Icon icon = frame.getFrameIcon(); if (icon != null) { if (!leftToRight) { xOffset -= icon.getIconWidth(); } int iconY = ((height / 2) - (icon.getIconHeight() / 2)); icon.paintIcon(frame, g, xOffset, iconY); xOffset += leftToRight ? icon.getIconWidth() + 5 : -5; } if (frameTitle != null) { Font f = getFont(); g.setFont(f); FontMetrics fm = g.getFontMetrics(); //int fHeight = fm.getHeight(); g.setColor(foreground); int yOffset = ((height - fm.getHeight()) / 2) + fm.getAscent(); Rectangle rect = new Rectangle(0, 0, 0, 0); if (frame.isIconifiable()) { rect = iconButton.getBounds(); } else if (frame.isMaximizable()) { rect = maxButton.getBounds(); } else if (frame.isClosable()) { rect = closeButton.getBounds(); } int titleW; if (leftToRight) { if (rect.x == 0) { rect.x = frame.getWidth() - frame.getInsets().right - 2; } titleW = rect.x - xOffset - 4; frameTitle = getTitle(frameTitle, fm, titleW); } else { titleW = xOffset - rect.x - rect.width - 4; frameTitle = getTitle(frameTitle, fm, titleW); xOffset -= SwingUtilities.computeStringWidth(fm, frameTitle); } titleLength = SwingUtilities.computeStringWidth(fm, frameTitle); g.drawString(frameTitle, xOffset, yOffset); xOffset += leftToRight ? titleLength + 5 : -5; } int bumpXOffset; int bumpLength; int buttonsWidth = getButtonsWidth(); if (leftToRight) { bumpLength = width - buttonsWidth - xOffset - 5; bumpXOffset = xOffset; } else { bumpLength = xOffset - buttonsWidth - 5; bumpXOffset = buttonsWidth + 5; } int bumpYOffset = 3; int bumpHeight = getHeight() - (2 * bumpYOffset); bumps.setBumpArea(bumpLength, bumpHeight); bumps.paintIcon(this, g, bumpXOffset, bumpYOffset); } @Override protected String getTitle( String text, FontMetrics fm, int availTextWidth) { if ((text == null) || (text.equals(""))) { return ""; } int textWidth = SwingUtilities.computeStringWidth(fm, text); String clipString = "\u2026"; if (textWidth > availTextWidth) { int totalWidth = SwingUtilities.computeStringWidth(fm, clipString); int nChars; for (nChars = 0; nChars < text.length(); nChars++) { totalWidth += fm.charWidth(text.charAt(nChars)); if (totalWidth > availTextWidth) { break; } } text = text.substring(0, nChars) + clipString; } return text; } private int getButtonsWidth() { boolean leftToRight = PlasticUtils.isLeftToRight(frame); int w = getWidth(); int x = leftToRight ? w : 0; int spacing; // assumes all buttons have the same dimensions // these dimensions include the borders int buttonWidth = closeButton.getIcon().getIconWidth(); if (frame.isClosable()) { if (isPalette) { spacing = 3; x += leftToRight ? -spacing - (buttonWidth + 2) : spacing; if (!leftToRight) { x += (buttonWidth + 2); } } else { spacing = 4; x += leftToRight ? -spacing - buttonWidth : spacing; if (!leftToRight) { x += buttonWidth; } } } if (frame.isMaximizable() && !isPalette) { spacing = frame.isClosable() ? 10 : 4; x += leftToRight ? -spacing - buttonWidth : spacing; if (!leftToRight) { x += buttonWidth; } } if (frame.isIconifiable() && !isPalette) { spacing = frame.isMaximizable() ? 2 : (frame.isClosable() ? 10 : 4); x += leftToRight ? -spacing - buttonWidth : spacing; if (!leftToRight) { x += buttonWidth; } } return leftToRight ? w - x : x; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticFieldCaret.java0000644000175000017500000001112011731047366027207 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.EventQueue; import java.awt.event.FocusEvent; import java.awt.event.MouseEvent; import javax.swing.JFormattedTextField; import javax.swing.SwingUtilities; import javax.swing.plaf.UIResource; import javax.swing.text.DefaultCaret; import javax.swing.text.JTextComponent; import com.jgoodies.looks.Options; /** * PlasticFieldCaret is visible in non-editable fields, * and the text is selected after a keyboard focus gained event. * For the latter see also issue #4337647 in Sun's bug database. * * @author Karsten Lentzsch * @version $Revision: 1.13 $ */ final class PlasticFieldCaret extends DefaultCaret implements UIResource { PlasticFieldCaret() { super(); } private boolean isKeyboardFocusEvent = true; @Override public void focusGained(FocusEvent e) { final JTextComponent c = getComponent(); if (c == null) { return; } if (c.isEnabled()) { setVisible(true); setSelectionVisible(true); } if ( !c.isEnabled() || !isKeyboardFocusEvent || !Options.isSelectOnFocusGainActive(c)) { return; } if (c instanceof JFormattedTextField) { EventQueue.invokeLater(new Runnable() { @Override public void run() { selectAll(); } }); } else { selectAll(); } } private void selectAll() { final JTextComponent c = getComponent(); if (c == null) { return; } boolean backward = Boolean.TRUE.equals(c.getClientProperty(Options.INVERT_SELECTION_CLIENT_KEY)); if (backward) { setDot(c.getDocument().getLength()); moveDot(0); } else { setDot(0); moveDot(c.getDocument().getLength()); } } @Override public void focusLost(FocusEvent e) { super.focusLost(e); if (!e.isTemporary()) { isKeyboardFocusEvent = true; if ( getComponent() != null && Boolean.TRUE.equals(getComponent().getClientProperty(Options.SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY))) { setDot(0); } } } @Override public void mousePressed(MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e) || e.isPopupTrigger()) { isKeyboardFocusEvent = false; } super.mousePressed(e); } @Override public void mouseReleased(MouseEvent e) { super.mouseReleased(e); if (e.isPopupTrigger()) { isKeyboardFocusEvent = false; if ( getComponent() != null && getComponent().isEnabled() && getComponent().isRequestFocusEnabled()) { getComponent().requestFocus(); } } } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticArrowButton.java0000644000175000017500000002442111731047364027501 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; import javax.swing.ButtonModel; import javax.swing.UIManager; import javax.swing.plaf.metal.MetalLookAndFeel; import javax.swing.plaf.metal.MetalScrollButton; /** * Renders the arrow buttons in scroll bars and spinners. * * @author Karsten Lentzsch * @version $Revision: 1.10 $ */ class PlasticArrowButton extends MetalScrollButton { private final Color shadowColor; private final Color highlightColor; protected boolean isFreeStanding; public PlasticArrowButton(int direction, int width, boolean freeStanding) { super(direction, width, freeStanding); shadowColor = UIManager.getColor("ScrollBar.darkShadow"); highlightColor = UIManager.getColor("ScrollBar.highlight"); isFreeStanding = freeStanding; } @Override public void setFreeStanding(boolean freeStanding) { super.setFreeStanding(freeStanding); isFreeStanding = freeStanding; } @Override public void paint(Graphics g) { boolean leftToRight = PlasticUtils.isLeftToRight(this); boolean isEnabled = getParent().isEnabled(); boolean isPressed = getModel().isPressed(); Color arrowColor = isEnabled ? MetalLookAndFeel.getControlInfo() : MetalLookAndFeel.getControlDisabled(); int width = getWidth(); int height = getHeight(); int w = width; int h = height; int arrowHeight = calculateArrowHeight(height, width); int arrowOffset = calculateArrowOffset(); boolean paintNorthBottom = isPaintingNorthBottom(); g.setColor(isPressed ? MetalLookAndFeel.getControlShadow() : getBackground()); g.fillRect(0, 0, width, height); if (getDirection() == NORTH) { paintNorth(g, leftToRight, isEnabled, arrowColor, isPressed, width, height, w, h, arrowHeight, arrowOffset, paintNorthBottom); } else if (getDirection() == SOUTH) { paintSouth(g, leftToRight, isEnabled, arrowColor, isPressed, width, height, w, h, arrowHeight, arrowOffset); } else if (getDirection() == EAST) { paintEast(g, isEnabled, arrowColor, isPressed, width, height, w, h, arrowHeight); } else if (getDirection() == WEST) { paintWest(g, isEnabled, arrowColor, isPressed, width, height, w, h, arrowHeight); } if (PlasticUtils.is3D("ScrollBar.")) { paint3D(g); } } /** * Computes and returns the arrow height based on the specified * buttons height and width. * * @param height the height of the button to be used for calculation. * @param width the width of the button to be used for calculation. * @return the height of the arrow */ protected int calculateArrowHeight(int height, int width) { return (height + 1) / 4; } protected int calculateArrowOffset() { return 0; } protected boolean isPaintingNorthBottom() { return false; } private void paintWest(Graphics g, boolean isEnabled, Color arrowColor, boolean isPressed, int width, int height, int w, int h, int arrowHeight) { if (!isFreeStanding) { height += 2; width += 1; g.translate(-1, 0); } // Draw the arrow g.setColor(arrowColor); int startX = (((w + 1) - arrowHeight) / 2); int startY = (h / 2); for (int line = 0; line < arrowHeight; line++) { g.drawLine( startX + line, startY - line, startX + line, startY + line + 1); } if (isEnabled) { g.setColor(highlightColor); if (!isPressed) { g.drawLine(1, 1, width - 1, 1); g.drawLine(1, 1, 1, height - 3); } g.drawLine(1, height - 1, width - 1, height - 1); g.setColor(shadowColor); g.drawLine(0, 0, width - 1, 0); g.drawLine(0, 0, 0, height - 2); g.drawLine(1, height - 2, width - 1, height - 2); } else { PlasticUtils.drawDisabledBorder(g, 0, 0, width + 1, height); } if (!isFreeStanding) { height -= 2; width -= 1; g.translate(1, 0); } } private void paintEast(Graphics g, boolean isEnabled, Color arrowColor, boolean isPressed, int width, int height, int w, int h, int arrowHeight) { if (!isFreeStanding) { height += 2; width += 1; } // Draw the arrow g.setColor(arrowColor); int startX = (((w + 1) - arrowHeight) / 2) + arrowHeight - 1; int startY = (h / 2); for (int line = 0; line < arrowHeight; line++) { g.drawLine( startX - line, startY - line, startX - line, startY + line + 1); } if (isEnabled) { g.setColor(highlightColor); if (!isPressed) { g.drawLine(0, 1, width - 3, 1); g.drawLine(0, 1, 0, height - 3); } g.drawLine(width - 1, 1, width - 1, height - 1); g.drawLine(0, height - 1, width - 1, height - 1); g.setColor(shadowColor); g.drawLine(0, 0, width - 2, 0); g.drawLine(width - 2, 1, width - 2, height - 2); g.drawLine(0, height - 2, width - 2, height - 2); } else { PlasticUtils.drawDisabledBorder(g, -1, 0, width + 1, height); } if (!isFreeStanding) { height -= 2; width -= 1; } } protected void paintSouth(Graphics g, boolean leftToRight, boolean isEnabled, Color arrowColor, boolean isPressed, int width, int height, int w, int h, int arrowHeight, int arrowOffset) { if (!isFreeStanding) { height += 1; if (!leftToRight) { width += 1; g.translate(-1, 0); } else { width += 2; } } // Draw the arrow g.setColor(arrowColor); int startY = (((h + 0) - arrowHeight) / 2) + arrowHeight - 1; // KL was h + 1 int startX = w / 2; // System.out.println( "startX2 :" + startX + " startY2 :"+startY); for (int line = 0; line < arrowHeight; line++) { g.fillRect(startX - line - arrowOffset, startY - line, 2 * (line + 1), 1); } if (isEnabled) { g.setColor(highlightColor); if (!isPressed) { g.drawLine(1, 0, width - 3, 0); g.drawLine(1, 0, 1, height - 3); } g.drawLine(0, height - 1, width - 1, height - 1); g.drawLine(width - 1, 0, width - 1, height - 1); g.setColor(shadowColor); g.drawLine(0, 0, 0, height - 2); g.drawLine(width - 2, 0, width - 2, height - 2); g.drawLine(1, height - 2, width - 2, height - 2); } else { PlasticUtils.drawDisabledBorder(g, 0, -1, width, height + 1); } if (!isFreeStanding) { height -= 1; if (!leftToRight) { width -= 1; g.translate(1, 0); } else { width -= 2; } } } protected void paintNorth(Graphics g, boolean leftToRight, boolean isEnabled, Color arrowColor, boolean isPressed, int width, int height, int w, int h, int arrowHeight, int arrowOffset, boolean paintBottom) { if (!isFreeStanding) { height += 1; g.translate(0, -1); if (!leftToRight) { width += 1; g.translate(-1, 0); } else { width += 2; } } // Draw the arrow g.setColor(arrowColor); int startY = ((h + 1) - arrowHeight) / 2; // KL was (h + 1) int startX = w / 2; // System.out.println( "startX :" + startX + " startY :"+startY); for (int line = 0; line < arrowHeight; line++) { g.fillRect(startX - line - arrowOffset, startY + line, 2*(line + 1), 1); } if (isEnabled) { g.setColor(highlightColor); if (!isPressed) { g.drawLine(1, 1, width - 3, 1); g.drawLine(1, 1, 1, height - 1); } g.drawLine(width - 1, 1, width - 1, height - 1); g.setColor(shadowColor); g.drawLine(0, 0, width - 2, 0); g.drawLine(0, 0, 0, height - 1); g.drawLine(width - 2, 1, width - 2, height - 1); if (paintBottom) { g.fillRect(0, height - 1, width - 1, 1); } } else { PlasticUtils.drawDisabledBorder(g, 0, 0, width, height + 1); if (paintBottom) { g.setColor(MetalLookAndFeel.getControlShadow()); g.fillRect(0, height - 1, width - 1, 1); } } if (!isFreeStanding) { height -= 1; g.translate(0, 1); if (!leftToRight) { width -= 1; g.translate(1, 0); } else { width -= 2; } } } private void paint3D(Graphics g) { ButtonModel buttonModel = getModel(); if (buttonModel.isArmed() && buttonModel.isPressed() || buttonModel.isSelected()) { return; } int width = getWidth(); int height = getHeight(); if (getDirection() == EAST) { width -= 2; } else if (getDirection() == SOUTH) { height -= 2; } Rectangle r = new Rectangle(1, 1, width, height); boolean isHorizontal = (getDirection() == EAST || getDirection() == WEST); PlasticUtils.addLight3DEffekt(g, r, isHorizontal); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticSplitPaneUI.java0000644000175000017500000000467611731047364027362 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; /** * The JGoodies Plastic L&F implementation of {@code SplitPaneUI}. * Uses a special divider that paints modified one-touch buttons. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @see com.jgoodies.looks.plastic.PlasticSplitPaneDivider */ public final class PlasticSplitPaneUI extends BasicSplitPaneUI { public static ComponentUI createUI(JComponent x) { return new PlasticSplitPaneUI(); } /** * Creates and returns the modified default divider. */ @Override public BasicSplitPaneDivider createDefaultDivider() { return new PlasticSplitPaneDivider(this); } }jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/plastic/PlasticBorders.java0000644000175000017500000006654211731047364026625 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.plastic; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.*; import javax.swing.border.AbstractBorder; import javax.swing.border.Border; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.plaf.BorderUIResource; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicBorders; import javax.swing.plaf.metal.MetalBorders; import javax.swing.text.JTextComponent; /** * This class consists of a set of {@code Border}s used * by the JGoodies Plastic Look and Feel UI delegates. * * @author Karsten Lentzsch * @version $Revision: 1.15 $ */ final class PlasticBorders { private PlasticBorders() { // Overrides default constructor; prevents instantiation. } // Accessing and Creating Borders *************************************** private static Border comboBoxEditorBorder; private static Border comboBoxArrowButtonBorder; private static Border etchedBorder; private static Border flush3DBorder; private static Border menuBarHeaderBorder; private static Border menuBorder; private static Border menuItemBorder; private static Border popupMenuBorder; private static Border noMarginPopupMenuBorder; private static Border rolloverButtonBorder; private static Border scrollPaneBorder; private static Border separatorBorder; private static Border textFieldBorder; private static Border thinLoweredBorder; private static Border thinRaisedBorder; private static Border toolBarHeaderBorder; /** * Returns a border instance for a {@code JButton}. * * @return the lazily created button border */ static Border getButtonBorder(Insets buttonMargin) { return new BorderUIResource.CompoundBorderUIResource( new ButtonBorder(buttonMargin), new BasicBorders.MarginBorder()); } /** * Returns a border for a {@code JComboBox}'s button. * * @return the lazily created combo box arrow button border */ static Border getComboBoxArrowButtonBorder() { if (comboBoxArrowButtonBorder == null) { comboBoxArrowButtonBorder = new CompoundBorder( // No UIResource new ComboBoxArrowButtonBorder(), new BasicBorders.MarginBorder()); } return comboBoxArrowButtonBorder; } /** * Returns a border for a {@code JComboBox}'s editor. * * @return the lazily created combo box editor border */ static Border getComboBoxEditorBorder() { if (comboBoxEditorBorder == null) { comboBoxEditorBorder = new CompoundBorder( // No UIResource new ComboBoxEditorBorder(), new BasicBorders.MarginBorder()); } return comboBoxEditorBorder; } /** * Returns an etched border instance for {@code JMenuBar} or * {@code JToolBar}. * * @return the lazily created etched border */ static Border getEtchedBorder() { if (etchedBorder == null) { etchedBorder = new BorderUIResource.CompoundBorderUIResource( new EtchedBorder(), new BasicBorders.MarginBorder()); } return etchedBorder; } /** * Returns a flushed 3D border. * * @return the lazily created flushed 3D border */ static Border getFlush3DBorder() { if (flush3DBorder == null) { flush3DBorder = new Flush3DBorder(); } return flush3DBorder; } /** * Returns a border for a {@code JInternalFrame}. * * @return an internal frame border */ static Border getInternalFrameBorder() { return new InternalFrameBorder(); } /** * Returns a special border for a {@code JMenuBar} that * is used in a header just above a {@code JToolBar}. * * @return the lazily created menu bar header border */ static Border getMenuBarHeaderBorder() { if (menuBarHeaderBorder == null) { menuBarHeaderBorder = new BorderUIResource.CompoundBorderUIResource( new MenuBarHeaderBorder(), new BasicBorders.MarginBorder()); } return menuBarHeaderBorder; } /** * Returns a border instance for a {@code JMenu}. * * @return the lazily created menu border */ static Border getMenuBorder() { if (menuBorder == null) { menuBorder = new BorderUIResource.CompoundBorderUIResource( new MenuBorder(), new BasicBorders.MarginBorder()); } return menuBorder; } /** * Returns a border instance for a {@code JMenuItem}. * * @return the lazily created menu item border */ static Border getMenuItemBorder() { if (menuItemBorder == null) { menuItemBorder = new BorderUIResource(new BasicBorders.MarginBorder()); } return menuItemBorder; } /** * Returns a border instance for a {@code JPopupMenu}. * * @return the lazily created popup menu border */ static Border getPopupMenuBorder() { if (popupMenuBorder == null) { popupMenuBorder = new PopupMenuBorder(); } return popupMenuBorder; } /** * Returns a border instance for a {@code JPopupMenu} that * has no (extra) margin. * * @return the lazily created no-margin popup menu border */ static Border getNoMarginPopupMenuBorder() { if (noMarginPopupMenuBorder == null) { noMarginPopupMenuBorder = new NoMarginPopupMenuBorder(); } return noMarginPopupMenuBorder; } /** * Returns a border for a {@code JInternalFrame}'s palette. * * @return a border for an internal frame in palette mode */ static Border getPaletteBorder() { return new PaletteBorder(); } /** * Returns a rollover border for buttons in a {@code JToolBar}. * * @return the lazily created rollover button border */ static Border getRolloverButtonBorder() { if (rolloverButtonBorder == null) { rolloverButtonBorder = new CompoundBorder( // No UIResource new RolloverButtonBorder(), new RolloverMarginBorder()); } return rolloverButtonBorder; } /** * Returns a separator border instance for {@code JScrollPane}. * * @return the lazily created scroll pane border */ static Border getScrollPaneBorder() { if (scrollPaneBorder == null) { scrollPaneBorder = new ScrollPaneBorder(); } return scrollPaneBorder; } /** * Returns a separator border instance for {@code JMenuBar} or * {@code JToolBar}. * * @return the lazily created separator border */ static Border getSeparatorBorder() { if (separatorBorder == null) { separatorBorder = new BorderUIResource.CompoundBorderUIResource( new SeparatorBorder(), new BasicBorders.MarginBorder()); } return separatorBorder; } /** * Returns a border instance for a JTextField. * * @return the lazily created text field border */ static Border getTextFieldBorder() { if (textFieldBorder == null) { textFieldBorder = new BorderUIResource.CompoundBorderUIResource( new TextFieldBorder(), new BasicBorders.MarginBorder()); } return textFieldBorder; } /** * Returns a thin lowered border. * * @return the lazily created thin lowered border */ static Border getThinLoweredBorder() { if (thinLoweredBorder == null) { thinLoweredBorder = new ThinLoweredBorder(); } return thinLoweredBorder; } /** * Returns a thin raised border. * * @return the lazily created thin raised border */ static Border getThinRaisedBorder() { if (thinRaisedBorder == null) { thinRaisedBorder = new ThinRaisedBorder(); } return thinRaisedBorder; } /** * Returns a border instance for a JToggleButton. * * @return the lazily created toggle button border */ static Border getToggleButtonBorder(Insets buttonMargin) { return new BorderUIResource.CompoundBorderUIResource( new ToggleButtonBorder(buttonMargin), new BasicBorders.MarginBorder()); } /** * Returns a special border for a {@code JToolBar} that * is used in a header just below a {@code JMenuBar}. * * @return the lazily created toolbar header border */ static Border getToolBarHeaderBorder() { if (toolBarHeaderBorder == null) { toolBarHeaderBorder = new BorderUIResource.CompoundBorderUIResource( new ToolBarHeaderBorder(), new BasicBorders.MarginBorder()); } return toolBarHeaderBorder; } private static class Flush3DBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { if (c.isEnabled()) { PlasticUtils.drawFlush3DBorder(g, x, y, w, h); } else { PlasticUtils.drawDisabledBorder(g, x, y, w, h); } } @Override public Insets getBorderInsets(Component c) { return INSETS; } @Override public Insets getBorderInsets(Component c, Insets newInsets) { newInsets.top = INSETS.top; newInsets.left = INSETS.left; newInsets.bottom = INSETS.bottom; newInsets.right = INSETS.right; return newInsets; } } private static class ButtonBorder extends AbstractBorder implements UIResource { protected final Insets insets; protected ButtonBorder(Insets insets) { this.insets = insets; } @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton button = (AbstractButton) c; ButtonModel model = button.getModel(); if (model.isEnabled()) { boolean isPressed = model.isPressed() && model.isArmed(); boolean isDefault = button instanceof JButton && ((JButton) button).isDefaultButton(); if (isPressed && isDefault) { PlasticUtils.drawDefaultButtonPressedBorder(g, x, y, w, h); } else if (isPressed) { PlasticUtils.drawPressed3DBorder(g, x, y, w, h); } else if (isDefault) { PlasticUtils.drawDefaultButtonBorder(g, x, y, w, h, false); } else { PlasticUtils.drawButtonBorder(g, x, y, w, h, false); } } else { // disabled state PlasticUtils.drawDisabledBorder(g, x, y, w - 1, h - 1); } } @Override public Insets getBorderInsets(Component c) { return insets; } @Override public Insets getBorderInsets(Component c, Insets newInsets) { newInsets.top = insets.top; newInsets.left = insets.left; newInsets.bottom = insets.bottom; newInsets.right = insets.right; return newInsets; } } private static final class ComboBoxArrowButtonBorder extends AbstractBorder implements UIResource { protected static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton button = (AbstractButton) c; ButtonModel model = button.getModel(); if (model.isEnabled()) { boolean isPressed = model.isPressed() && model.isArmed(); if (isPressed) { PlasticUtils.drawPressed3DBorder(g, x, y, w, h); } else { PlasticUtils.drawButtonBorder(g, x, y, w, h, false); } } else { PlasticUtils.drawDisabledBorder(g, x, y, w - 1, h - 1); } } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static final class ComboBoxEditorBorder extends AbstractBorder { private static final Insets INSETS = new Insets(2, 2, 2, 0); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { if (c.isEnabled()) { PlasticUtils.drawFlush3DBorder(g, x, y, w + 2, h); } else { PlasticUtils.drawDisabledBorder(g, x, y, w + 2, h-1); g.setColor(UIManager.getColor("control")); g.drawLine(x, y + h-1, x + w, y + h-1); } } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for {@code JInternalFrame}s. */ private static final class InternalFrameBorder extends AbstractBorder implements UIResource { private static final Insets NORMAL_INSETS = new Insets(1, 1, 1, 1); private static final Insets MAXIMIZED_INSETS = new Insets(1, 1, 0, 0); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { JInternalFrame frame = (JInternalFrame) c; if (frame.isMaximum()) { paintMaximizedBorder(g, x, y, w, h); } else { PlasticUtils.drawThinFlush3DBorder(g, x, y, w, h); } } private static void paintMaximizedBorder(Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlHighlight()); g.drawLine(0, 0, w - 2, 0); g.drawLine(0, 0, 0, h - 2); g.translate(-x, -y); } @Override public Insets getBorderInsets(Component c) { return ((JInternalFrame) c).isMaximum() ? MAXIMIZED_INSETS : NORMAL_INSETS; } } /** * A border used for the palette of {@code JInternalFrame}s. */ private static final class PaletteBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h ) { g.translate(x,y); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w-1, h-1); g.translate(-x,-y); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border that looks like a separator line; used for menu bars * and tool bars. */ private static final class SeparatorBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(0, 0, 2, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor( UIManager.getColor("Separator.foreground")); g.drawLine( 0, h - 2, w - 1, h - 2 ); g.setColor( UIManager.getColor("Separator.background")); g.drawLine( 0, h - 1, w - 1, h - 1 ); g.translate(-x, -y); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static final class ThinRaisedBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { PlasticUtils.drawThinFlush3DBorder(g, x, y, w, h); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static final class ThinLoweredBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { PlasticUtils.drawThinPressed3DBorder(g, x, y, w, h); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for menu bars and tool bars in * {@code HeaderStyle.SINGLE}. The bar is wrapped by an inner thin * raised border, which in turn is wrapped by an outer thin lowered * border. */ private static final class EtchedBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { PlasticUtils.drawThinPressed3DBorder(g, x, y, w, h); PlasticUtils.drawThinFlush3DBorder (g, x + 1, y + 1, w - 2, h - 2); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for menu bars in {@code HeaderStyle.BOTH}. * The menu bar and tool bar are wrapped by a thin raised border, * both together are wrapped by a thin lowered border. */ private static final class MenuBarHeaderBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(2, 2, 1, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { PlasticUtils.drawThinPressed3DBorder(g, x, y, w, h + 1); PlasticUtils.drawThinFlush3DBorder (g, x + 1, y + 1, w - 2, h - 1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } /** * A border used for tool bars in {@code HeaderStyle.BOTH}. * The menu bar and tool bar are wrapped by a thin raised border, * both together are wrapped by a thin lowered border. */ private static final class ToolBarHeaderBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 2, 2, 2); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { PlasticUtils.drawThinPressed3DBorder(g, x, y - 1, w, h + 1); PlasticUtils.drawThinFlush3DBorder (g, x + 1, y, w - 2, h - 1); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static final class MenuBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets( 2, 2, 2, 2 ); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { JMenuItem b = (JMenuItem) c; ButtonModel model = b.getModel(); if (model.isArmed() || model.isSelected()) { g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawLine(0, 0, w - 2, 0 ); g.drawLine(0, 0, 0, h - 1 ); //g.drawLine(w - 2, 2, w - 2, h - 1 ); g.setColor(PlasticLookAndFeel.getPrimaryControlHighlight()); g.drawLine(w - 1, 0, w - 1, h - 1 ); } else if (model.isRollover()) { g.translate(x, y); PlasticUtils.drawFlush3DBorder(g, x, y, w, h); g.translate(-x, -y); } } @Override public Insets getBorderInsets(Component c) { return INSETS; } @Override public Insets getBorderInsets(Component c, Insets newInsets) { newInsets.top = INSETS.top; newInsets.left = INSETS.left; newInsets.bottom = INSETS.bottom; newInsets.right = INSETS.right; return newInsets; } } private static final class PopupMenuBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(3, 3, 3, 3); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w-1, h-1); g.setColor(PlasticLookAndFeel.getMenuItemBackground()); g.drawRect(1, 1, w-3, h-3); g.drawRect(2, 2, w-5, h-5); g.translate(-x, -y); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static final class NoMarginPopupMenuBorder extends AbstractBorder implements UIResource { private static final Insets INSETS = new Insets(1, 1, 1, 1); @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w-1, h-1); g.translate(-x, -y); } @Override public Insets getBorderInsets(Component c) { return INSETS; } } private static class RolloverButtonBorder extends ButtonBorder { private RolloverButtonBorder() { super(new Insets(3, 3, 3, 3)); } @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); if (!model.isEnabled()) { return; } if (!(c instanceof JToggleButton)) { if ( model.isRollover() && !( model.isPressed() && !model.isArmed() ) ) { super.paintBorder( c, g, x, y, w, h ); } return; } //if ( model.isRollover() && !( model.isPressed() && !model.isArmed() ) ) { //super.paintBorder( c, g, x, y, w, h ); //} if (model.isRollover()) { if (model.isPressed() && model.isArmed()) { PlasticUtils.drawPressed3DBorder(g, x, y, w, h); } else { PlasticUtils.drawFlush3DBorder(g, x, y, w, h); } } else if (model.isSelected()) { PlasticUtils.drawDark3DBorder(g, x, y, w, h); } } } /** * A border which is like a Margin border but it will only honor the margin * if the margin has been explicitly set by the developer. */ static final class RolloverMarginBorder extends EmptyBorder { RolloverMarginBorder() { super(1, 1, 1, 1); } @Override public Insets getBorderInsets(Component c) { return getBorderInsets(c, new Insets(0, 0, 0, 0)); } @Override public Insets getBorderInsets(Component c, Insets insets) { Insets margin = null; if (c instanceof AbstractButton) { margin = ((AbstractButton) c).getMargin(); } if (margin == null || margin instanceof UIResource) { // default margin so replace insets.left = left; insets.top = top; insets.right = right; insets.bottom = bottom; } else { // Margin which has been explicitly set by the user. insets.left = margin.left; insets.top = margin.top; insets.right = margin.right; insets.bottom = margin.bottom; } return insets; } } /** * Unlike Metal we don't paint the (misplaced) control color edges. * Being a subclass of MetalBorders.ScrollPaneBorders ensures that * the ScrollPaneUI will update the ScrollbarsFreeStanding property. */ private static final class ScrollPaneBorder extends MetalBorders.ScrollPaneBorder { @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate(x, y); g.setColor(PlasticLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w - 2, h - 2); g.setColor(PlasticLookAndFeel.getControlHighlight()); g.drawLine(w - 1, 0, w - 1, h - 1); g.drawLine(0, h - 1, w - 1, h - 1); g.translate(-x, -y); } } private static final class TextFieldBorder extends Flush3DBorder { @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { if (!(c instanceof JTextComponent)) { // special case for non-text components (bug ID 4144840) if (c.isEnabled()) { PlasticUtils.drawFlush3DBorder(g, x, y, w, h); } else { PlasticUtils.drawDisabledBorder(g, x, y, w, h); } return; } if (c.isEnabled() && ((JTextComponent) c).isEditable()) { PlasticUtils.drawFlush3DBorder(g, x, y, w, h); } else { PlasticUtils.drawDisabledBorder(g, x, y, w, h); } } } private static final class ToggleButtonBorder extends ButtonBorder { private ToggleButtonBorder(Insets insets) { super(insets); } @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { if (!c.isEnabled()) { PlasticUtils.drawDisabledBorder(g, x, y, w - 1, h - 1); } else { AbstractButton button = (AbstractButton) c; ButtonModel model = button.getModel(); if (model.isPressed() && model.isArmed()) { PlasticUtils.drawPressed3DBorder(g, x, y, w, h); } else if (model.isSelected()) { PlasticUtils.drawDark3DBorder(g, x, y, w, h); } else { PlasticUtils.drawFlush3DBorder(g, x, y, w, h); } } } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/MicroLayout.java0000644000175000017500000001426111731047400024473 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import java.awt.Insets; import javax.swing.plaf.InsetsUIResource; /** * Describes the insets and margins used by a Look&Feel or theme. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ * * @since 2.1 */ public final class MicroLayout { private final InsetsUIResource textInsets; private final InsetsUIResource wrappedTextInsets; private final InsetsUIResource comboBoxEditorInsets; private final Insets buttonBorderInsets; private final InsetsUIResource buttonMargin; private final InsetsUIResource commitButtonMargin; private final int comboBorderSize; private final int comboPopupBorderSize; private final InsetsUIResource checkBoxMargin; private final InsetsUIResource menuItemMargin; private final InsetsUIResource menuMargin; private final InsetsUIResource popupMenuSeparatorMargin; // Instance Creation ****************************************************** public MicroLayout( InsetsUIResource textInsets, InsetsUIResource wrappedTextInsets, InsetsUIResource comboBoxEditorInsets, int comboBorderSize, int comboPopupBorderSize, Insets buttonBorderInsets, InsetsUIResource buttonMargin, InsetsUIResource commitButtonMargin, InsetsUIResource checkBoxMargin, InsetsUIResource menuItemMargin, InsetsUIResource menuMargin, InsetsUIResource popupMenuSeparatorMargin) { this.textInsets = textInsets; this.wrappedTextInsets = wrappedTextInsets; this.comboBoxEditorInsets = comboBoxEditorInsets; this.buttonBorderInsets = buttonBorderInsets; this.buttonMargin = buttonMargin; this.commitButtonMargin = commitButtonMargin; this.comboBorderSize = comboBorderSize; this.comboPopupBorderSize = comboPopupBorderSize; this.checkBoxMargin = checkBoxMargin; this.menuItemMargin = menuItemMargin; this.menuMargin = menuMargin; this.popupMenuSeparatorMargin = popupMenuSeparatorMargin; } // Getters **************************************************************** /** * Returns the insets used for button borders. * * @return the insets used for button borders. */ public Insets getButtonBorderInsets() { return buttonBorderInsets; } /** * Returns the margin used for standard buttons. These insets describe * buttons that are arranged with other components in a row of a form. * The standard button height will often be the same for * text fields, combo boxes, and other components that are arranged in * a row.

* * Toolbar buttons may have a different height, as well as * commit buttons that are placed in a special command bar area, * for example OK, Cancel, Apply. * * @return the margin for standard buttons. * * @see #getCommitButtonMargin() */ public InsetsUIResource getButtonMargin() { return buttonMargin; } /** * Returns the margin used for commit buttons in command areas. * Such command areas are often at the bottom or side of a dialog or pane; * frequently used labels are OK, Cancel, Apply, Yes, No, Retry. * The height of a commit button may differ from the height * used for buttons that are arranged in a row with other components * in a form. * * @return the margin for commit buttons in command areas. * * @see #getButtonMargin() */ public InsetsUIResource getCommitButtonMargin() { return commitButtonMargin; } public int getComboBorderSize() { return comboBorderSize; } public int getComboPopupBorderSize() { return comboPopupBorderSize; } public InsetsUIResource getComboBoxEditorInsets() { return comboBoxEditorInsets; } public InsetsUIResource getCheckBoxMargin() { return checkBoxMargin; } public InsetsUIResource getMenuItemMargin() { return menuItemMargin; } public InsetsUIResource getMenuMargin() { return menuMargin; } public InsetsUIResource getPopupMenuSeparatorMargin() { return popupMenuSeparatorMargin; } public InsetsUIResource getTextInsets() { return textInsets; } public InsetsUIResource getWrappedTextInsets() { return wrappedTextInsets; } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/MicroLayoutPolicy.java0000644000175000017500000000546011731047400025654 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import javax.swing.UIDefaults; /** * Looks up and returns a MicroLayout. * * @author Karsten Lentzsch * @version $Revision: 1.6 $ * * @see MicroLayout * @see MicroLayoutPolicies * * @since 2.1 */ public interface MicroLayoutPolicy { /** * Looks up and returns insets, margins, and gaps that will be used * by a Look&Feel to set the component insets, margins and gaps.

* * This method is invoked during the L&F component initialization. * And the invoker hands over the UIDefaults object used to define * the component settings. Hence, the UIDefaults object may be used * to look up values as initialized by a super Look&Feel. * For example the JGoodies Windows L&F could use the * defaults set by the super L&F, the Sun Windows L&F. * * @param lafName the name of the Look&Feel that requests the fonts * @param table the UIDefaults table that can be used * to look up fonts of a super L&F * * @return a micro layout used as default for the components. */ MicroLayout getMicroLayout(String lafName, UIDefaults table); } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/MicroLayoutPolicies.java0000644000175000017500000001307311731047400026163 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import javax.swing.UIDefaults; import com.jgoodies.common.base.SystemUtils; /** * Provides predefined MicroLayoutPolicy implementations. * * @author Karsten Lentzsch * @version $Revision: 1.8 $ * * @see MicroLayout * @see MicroLayouts * @see MicroLayoutPolicy * * @since 2.1 */ public final class MicroLayoutPolicies { private MicroLayoutPolicies() { // Override default constructor; prevents instantation. } // Getting a MicroLayoutPolicy ******************************************** /** * Returns the default MicroLayoutPolicy for the Plastic L&fs. * Uses component insets that are similar to the Windows L&f * micro layout, making it easier to * * @return a Windows-like micro layout policy for the Plastic L&fs */ public static MicroLayoutPolicy getDefaultPlasticPolicy() { return new DefaultPlasticPolicy(); } /** * Returns the default MicroLayoutPolicy for the Windows L&f. * It aims to describe component insets that follow the native guidelines. * * @return the default micro layout policy for the Windows platform. */ public static MicroLayoutPolicy getDefaultWindowsPolicy() { return new DefaultWindowsPolicy(); } // MicroLayoutPolicy Implementations ************************************** /** * Implements the default font lookup for the Plastic L&f family * when running in a Windows environment. */ private static final class DefaultPlasticPolicy implements MicroLayoutPolicy { @Override public MicroLayout getMicroLayout(String lafName, UIDefaults table) { boolean isClassic = !SystemUtils.IS_LAF_WINDOWS_XP_ENABLED; boolean is6OrLater = SystemUtils.IS_OS_WINDOWS_6_OR_LATER; boolean isLowRes = SystemUtils.IS_LOW_RESOLUTION; boolean isPlasticXP = lafName.equals("JGoodies Plastic XP"); if (isPlasticXP) { if (is6OrLater) { return isClassic ? MicroLayouts.createPlasticXPVistaClassicMicroLayout() : MicroLayouts.createPlasticXPVistaMicroLayout(); } return isLowRes ? MicroLayouts.createPlasticXPLowResMicroLayout() : MicroLayouts.createPlasticXPHiResMicroLayout(); } if (is6OrLater) { return isClassic ? MicroLayouts.createPlasticVistaClassicMicroLayout() : MicroLayouts.createPlasticVistaMicroLayout(); } return isLowRes ? MicroLayouts.createPlasticLowResMicroLayout() : MicroLayouts.createPlasticHiResMicroLayout(); } } /** * Implements the default font lookup on the Windows platform. */ private static final class DefaultWindowsPolicy implements MicroLayoutPolicy { @Override public MicroLayout getMicroLayout(String lafName, UIDefaults table) { boolean isClassic = !SystemUtils.IS_LAF_WINDOWS_XP_ENABLED; boolean isVista = SystemUtils.IS_OS_WINDOWS_6_OR_LATER; boolean isLowRes = SystemUtils.IS_LOW_RESOLUTION; if (isClassic) { return isLowRes ? MicroLayouts.createWindowsClassicLowResMicroLayout() : MicroLayouts.createWindowsClassicHiResMicroLayout(); } else if (isVista) { return isLowRes ? MicroLayouts.createWindowsVistaLowResMicroLayout() : MicroLayouts.createWindowsVistaHiResMicroLayout(); } else { return isLowRes ? MicroLayouts.createWindowsXPLowResMicroLayout() : MicroLayouts.createWindowsXPHiResMicroLayout(); } } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/LookUtils.java0000644000175000017500000002310211731047400024143 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import java.awt.Color; import java.awt.Component; import java.util.Collections; import java.util.List; import javax.swing.LookAndFeel; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.plastic.PlasticLookAndFeel; import com.jgoodies.looks.plastic.PlasticTheme; /** * Provides convenience behavior used by the JGoodies Looks. * * @author Karsten Lentzsch * @version $Revision: 1.18 $ */ public final class LookUtils extends SystemUtils { // Basics System Properties ********************************************** /** * True if this is Windows 98/ME/2000/Server 2003/XP/VISTA/Server 2008. */ public static final boolean IS_OS_WINDOWS_MODERN = startsWith(OS_NAME, "Windows") && !startsWith(OS_VERSION, "4.0"); /** * True if this is Windows 95. * * @since 2.0 */ public static final boolean IS_OS_WINDOWS_95 = startsWith(OS_NAME, "Windows 9") && startsWith(OS_VERSION, "4.0"); /** * True if this is Windows NT. * * @since 2.0 */ public static final boolean IS_OS_WINDOWS_NT = startsWith(OS_NAME, "Windows NT"); private static boolean loggingEnabled = true; private LookUtils() { // Override default constructor; prevents instantiation. } // Accessing System Configuration ***************************************** /** * Tries to look up the System property for the given key. * In untrusted environments this may throw a SecurityException. * In this case we catch the exception and answer {@code null}. * * @param key the name of the system property * @return the system property's String value, or {@code null} if there's * no such value, or a SecurityException has been caught */ public static String getSystemProperty(String key) { try { return System.getProperty(key); } catch (SecurityException e) { log("Can't read the System property " + key + "."); return null; } } /** * Tries to look up the System property for the given key. * In untrusted environments this may throw a SecurityException. * In this case, we catch the exception and answer the default value. * * @param key the name of the system property * @param defaultValue the default value if no property exists. * @return the system property's String value, or the defaultValue * if there's no such value, or a SecurityException has been caught */ public static String getSystemProperty(String key, String defaultValue) { try { return System.getProperty(key, defaultValue); } catch (SecurityException e) { log("Can't read the System property " + key + "."); return defaultValue; } } /** * Checks if a boolean system property has been set for the given key, * and returns the associated Boolean, or {@code null} if no value * has been set. The test for the property ignores case. * If a Boolean value has been set, a message is logged * with the given prefix. * * @param key the key used to lookup the system property value * @param logMessage a prefix used when a message is logged * @return {@code Boolean.TRUE} if the system property has been set to * "true" (case ignored), {@code Boolean.FALSE} if it has been set to * "false", {@code null} otherwise */ public static Boolean getBooleanSystemProperty(String key, String logMessage) { String value = getSystemProperty(key, ""); Boolean result; if (value.equalsIgnoreCase("false")) { result = Boolean.FALSE; } else if (value.equalsIgnoreCase("true")) { result = Boolean.TRUE; } else { result = null; } if (result != null) { LookUtils.log( logMessage + " have been " + (result.booleanValue() ? "en" : "dis") + "abled in the system properties."); } return result; } /** * Checks and answers whether we have a true color system. * * @param c the component used to determine the toolkit * @return true if the component's toolkit has a pixel size >= 24 */ public static boolean isTrueColor(Component c) { return c.getToolkit().getColorModel().getPixelSize() >= 24; } /** * Checks and answers whether this toolkit provides native drop shadows * for popups such as the Mac OS X. Currently this is used to * determine if the Looks' popup drop shadow feature is active or not * - even if it's enabled. * * @return true if the toolkit provides native drop shadows * * @see Options#isPopupDropShadowActive() */ public static boolean getToolkitUsesNativeDropShadows() { return IS_OS_MAC; } /** * Computes and returns a Color that is slightly brighter * than the specified Color. * * @param color the color used as basis for the brightened color * @return a slightly brighter color */ public static Color getSlightlyBrighter(Color color) { return getSlightlyBrighter(color, 1.1f); } /** * Computes and returns a Color that is slightly brighter * than the specified Color. * * @param color the color used as basis for the brightened color * @param factor the factor used to compute the brightness * @return a slightly brighter color */ public static Color getSlightlyBrighter(Color color, float factor) { float[] hsbValues = new float[3]; Color.RGBtoHSB( color.getRed(), color.getGreen(), color.getBlue(), hsbValues); float hue = hsbValues[0]; float saturation = hsbValues[1]; float brightness = hsbValues[2]; float newBrightness = Math.min(brightness * factor, 1.0f); return Color.getHSBColor(hue, saturation, newBrightness); } // Accessing Look, Theme, and Font Settings ***************************** public static void setLookAndTheme(LookAndFeel laf, Object theme) throws UnsupportedLookAndFeelException { if (laf instanceof PlasticLookAndFeel && theme != null && theme instanceof PlasticTheme) { PlasticLookAndFeel.setPlasticTheme((PlasticTheme) theme); } UIManager.setLookAndFeel(laf); } public static Object getDefaultTheme(LookAndFeel laf) { return laf instanceof PlasticLookAndFeel ? PlasticLookAndFeel.createMyDefaultTheme() : null; } public static List getInstalledThemes(LookAndFeel laf) { return laf instanceof PlasticLookAndFeel ? PlasticLookAndFeel.getInstalledThemes() : Collections.EMPTY_LIST; } // Minimal logging ****************************************************** /** * Enables or disables the Looks logging. * * @param enabled true to enable logging, false to disable it */ public static void setLoggingEnabled(boolean enabled) { loggingEnabled = enabled; } /** * Prints a new line to the console if logging is enabled. */ public static void log() { if (loggingEnabled) { System.out.println(); } } /** * Prints the given message to the console if logging is enabled. * * @param message the message to print */ public static void log(String message) { if (loggingEnabled) { System.out.println("JGoodies Looks: " + message); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/FontSets.java0000644000175000017500000002577711731047400024007 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import java.awt.Font; import javax.swing.plaf.FontUIResource; /** * Provides predefined FontSet implementations. * * @author Karsten Lentzsch * @version $Revision: 1.16 $ * * @see FontSet * @see FontPolicy * @see FontPolicies * * @since 2.0 */ public final class FontSets { private static FontSet logicalFontSet; private FontSets() { // Override default constructor; prevents instantation. } // Default FontSets ******************************************************* /** * Creates and returns a FontSet that is based only * on the given control font. The small font will be * derived from the control font; all other fonts * returned are the control font. * * @param controlFont the font used for all controls * * @return a FontSet based on the given fonts * * @throws NullPointerException if the control font is {@code null} */ public static FontSet createDefaultFontSet(Font controlFont) { return createDefaultFontSet(controlFont, null); } /** * Creates and returns a FontSet that is based on the given control font * and menu font. The small font will be derived from the control font; * all other fonts return, except the menu font, are the control font. * * @param controlFont the font used for all controls * @param menuFont the font used for the menu bar and menu items * * @return a FontSet based on the given fonts * * @throws NullPointerException if the control font is {@code null} */ public static FontSet createDefaultFontSet(Font controlFont, Font menuFont) { return createDefaultFontSet(controlFont, menuFont, null, null, null, null); } /** * Creates and returns a FontSet that is based on the given control font * and menu font. The small font will be derived from the control font; * all other fonts return, except the menu font, are the control font. * * @param controlFont the font used for all controls * @param menuFont the font used for the menu bar and menu items * @param titleFont used for TitledBorder, titles and titled separators * * @return a FontSet based on the given fonts * * @throws NullPointerException if the control font is {@code null} */ public static FontSet createDefaultFontSet(Font controlFont, Font menuFont, Font titleFont) { return createDefaultFontSet(controlFont, menuFont, titleFont, null, null, null); } /** * Creates and returns a FontSet for the given fonts. * If a font is {@code null}, it uses the control font as * fallback. If the small font is {@code null} it will * be derived from the control font. * * @param controlFont used for all controls * @param menuFont used for the menu bar and menu items * @param titleFont used for TitledBorder, titles and titled separators * @param messageFont used for OptionPanes * @param smallFont used for tool tips and similar components * @param windowTitleFont used for internal frame window titles * * @return a FontSet based on the given fonts * * @throws NullPointerException if the control font is {@code null} */ public static FontSet createDefaultFontSet( Font controlFont, Font menuFont, Font titleFont, Font messageFont, Font smallFont, Font windowTitleFont) { return new DefaultFontSet(controlFont, menuFont, titleFont, messageFont, smallFont, windowTitleFont); } // Logical FontSet ******************************************************** /** * Lazily creates and returns the FontSet that returns * the logical fonts specified by the Java runtime environment. * * @return a FontSets that uses the logical fonts specified * by the Java environment */ public static FontSet getLogicalFontSet() { if (logicalFontSet == null) { logicalFontSet = new LogicalFontSet(); } return logicalFontSet; } // Helper Code ************************************************************ private static final class DefaultFontSet implements FontSet { private final FontUIResource controlFont; private final FontUIResource menuFont; private final FontUIResource titleFont; private final FontUIResource messageFont; private final FontUIResource smallFont; private final FontUIResource windowTitleFont; // Instance Creation -------------------------------------------------- /** * Constructs a DefaultFontSet for the given fonts. * If a font is {@code null}, it uses the control font as * fallback. If the small font is {@code null} it will * be derived from the control font. * * @param controlFont used for all controls * @param menuFont used for the menu bar and menu items * @param titleFont used for TitledBorder, titles and titled separators * @param messageFont used for OptionPanes * @param smallFont used for tool tips and similar components * @param windowTitleFont used for internal frame window titles * * @throws NullPointerException if the control font is {@code null} */ public DefaultFontSet( Font controlFont, Font menuFont, Font titleFont, Font messageFont, Font smallFont, Font windowTitleFont) { this.controlFont = new FontUIResource(controlFont); this.menuFont = menuFont != null ? new FontUIResource(menuFont) : this.controlFont; this.titleFont = titleFont != null ? new FontUIResource(titleFont) : this.controlFont; //new FontUIResource(controlFont.deriveFont(Font.BOLD)) this.messageFont = messageFont != null ? new FontUIResource(messageFont) : this.controlFont; this.smallFont = new FontUIResource(smallFont != null ? smallFont : controlFont.deriveFont(controlFont.getSize2D() - 2f)); this.windowTitleFont = windowTitleFont != null ? new FontUIResource(windowTitleFont) : this.titleFont; } // FontSet API -------------------------------------------------------- @Override public FontUIResource getControlFont() { return controlFont; } @Override public FontUIResource getMenuFont() { return menuFont; } @Override public FontUIResource getTitleFont() { return titleFont; } @Override public FontUIResource getWindowTitleFont() { return windowTitleFont; } @Override public FontUIResource getSmallFont() { return smallFont; } @Override public FontUIResource getMessageFont() { return messageFont; } } /** * Looks up and returns the logical fonts as specified * by the Java runtime environment. */ private static final class LogicalFontSet implements FontSet { private FontUIResource controlFont; private FontUIResource titleFont; private FontUIResource systemFont; private FontUIResource smallFont; @Override public FontUIResource getControlFont() { if (controlFont == null) { controlFont = new FontUIResource( Font.getFont( "swing.plaf.metal.controlFont", new Font("Dialog", Font.PLAIN, 12))); } return controlFont; } @Override public FontUIResource getMenuFont() { return getControlFont(); } @Override public FontUIResource getTitleFont() { if (titleFont == null) { titleFont = new FontUIResource( getControlFont().deriveFont(Font.BOLD)); } return titleFont; } @Override public FontUIResource getSmallFont() { if (smallFont == null) { smallFont = new FontUIResource( Font.getFont( "swing.plaf.metal.smallFont", new Font("Dialog", Font.PLAIN, 10))); } return smallFont; } @Override public FontUIResource getMessageFont() { if (systemFont == null) { systemFont = new FontUIResource( Font.getFont( "swing.plaf.metal.systemFont", new Font("Dialog", Font.PLAIN, 12))); } return systemFont; } @Override public FontUIResource getWindowTitleFont() { return getTitleFont(); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/FontSet.java0000644000175000017500000000577211731047400023615 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import javax.swing.plaf.FontUIResource; /** * Returns the Fonts used by a Look&Feel or theme. * These Fonts must implement the UIResource marker interface. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ * * @since 2.0 */ public interface FontSet { /** * Returns the font used for all dialog components. * * @return the font used for all dialog components. */ FontUIResource getControlFont(); /** * Returns the font used for the menu. * * @return the font used for the menu. */ FontUIResource getMenuFont(); /** * Returns the font used for the title label in TitledBorders. * This font is also used by JGoodies Forms titles, * and titled separators. * * @return the font used for TitledBorder titles. */ FontUIResource getTitleFont(); /** * Returns the font used for internal frame titles. * * @return the font used for internal frame titles. */ FontUIResource getWindowTitleFont(); /** * Returns the font used for tool tips. * * @return the tool tip font. */ FontUIResource getSmallFont(); /** * Returns the font used for message dialogs. * * @return the font used for message dialogs. */ FontUIResource getMessageFont(); } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/Options.java0000644000175000017500000010436411752767516023707 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import java.awt.Dimension; import java.util.HashMap; import java.util.Map; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.text.JTextComponent; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.common.ShadowPopup; import com.jgoodies.looks.plastic.PlasticLookAndFeel; import com.jgoodies.looks.windows.WindowsLookAndFeel; /** * Provides access to optional features of the JGoodies L&Fs * via a key to the system properties, via a key for the {@code UIDefaults} * table, via a method, or all of them.

* * API users can use this class' constants or their values to configure * the JGoodies L&amP;f. Using the constants requires the Looks library * classes in the class path of the using application/applet, where using * the String values doesn't require having this class in the class path. * * @author Karsten Lentzsch * @version $Revision: 1.25 $ */ public final class Options { // Look & Feel Names ****************************************************** /** * The class name of the JGoodies Plastic L&f. */ public static final String PLASTIC_NAME = "com.jgoodies.looks.plastic.PlasticLookAndFeel"; /** * The class name of the JGoodies Plastic3D L&f. */ public static final String PLASTIC3D_NAME = "com.jgoodies.looks.plastic.Plastic3DLookAndFeel"; /** * The class name of the JGoodies PlasticXP L&f. */ public static final String PLASTICXP_NAME = "com.jgoodies.looks.plastic.PlasticXPLookAndFeel"; /** * The class name of the JGoodies Windows L&f. */ public static final String JGOODIES_WINDOWS_NAME = "com.jgoodies.looks.windows.WindowsLookAndFeel"; /** * The class name of the default JGoodies L&f, PlasticXP. */ public static final String DEFAULT_LOOK_NAME = PLASTICXP_NAME; /** * Holds a Map that enables the look&feel replacement * mechanism to replace one look by another. * Maps the original class names to their replacement class names. * * @see #getReplacementClassNameFor(String) * @see #putLookAndFeelReplacement(String, String) * @see #removeLookAndFeelReplacement(String) */ private static final Map LAF_REPLACEMENTS; static { LAF_REPLACEMENTS = new HashMap(); initializeDefaultReplacements(); } // Keys for Overriding Font Settings ************************************** /** * A key for setting a custom FontPolicy for the Plastic L&fs. * Used for both the system properties and the UIDefaults table. * * @see PlasticLookAndFeel#getFontPolicy() * @see PlasticLookAndFeel#setFontPolicy(FontPolicy) */ public static final String PLASTIC_FONT_POLICY_KEY = "Plastic.fontPolicy"; /** * A key for setting the default control font in Plastic L&fs. * Used for both the system properties and the UIDefaults table. * * @see FontPolicies#customSettingsPolicy(FontPolicy) */ public static final String PLASTIC_CONTROL_FONT_KEY = "Plastic.controlFont"; /** * A key for setting the default menu font in Plastic L&fs. * Used for both the system properties and the UIDefaults table. * * @see FontPolicies#customSettingsPolicy(FontPolicy) */ public static final String PLASTIC_MENU_FONT_KEY = "Plastic.menuFont"; /** * A key for setting a custom FontPolicy for the Windows L&fs. * Used for both the system properties and the UIDefaults table. * * @see WindowsLookAndFeel#getFontPolicy() * @see WindowsLookAndFeel#setFontPolicy(FontPolicy) */ public static final String WINDOWS_FONT_POLICY_KEY = "Windows.fontPolicy"; /** * A key for setting the default control font in the Windows L&f. * Used for both the system properties and the UIDefaults table. * * @see FontPolicies#customSettingsPolicy(FontPolicy) */ public static final String WINDOWS_CONTROL_FONT_KEY = "Windows.controlFont"; /** * A key for setting the default menu font in the Windows L&f. * Used for both the system properties and the UIDefaults table. * * @see FontPolicies#customSettingsPolicy(FontPolicy) */ public static final String WINDOWS_MENU_FONT_KEY = "Windows.menuFont"; /** * A convenience constant for the standard Swing system property key * that configures the use of system fonts. * * @see #getUseSystemFonts() * @see #setUseSystemFonts(boolean) */ public static final String USE_SYSTEM_FONTS_KEY = "swing.useSystemFontSettings"; /** * A convenience constant for the standard Swing UIDefaults key * that configures the use of system fonts. * * @see #getUseSystemFonts() * @see #setUseSystemFonts(boolean) */ public static final String USE_SYSTEM_FONTS_APP_KEY = "Application.useSystemFontSettings"; // Keys for Micro Layout Policies ***************************************** /** * A UIManager key for setting a custom MicroLayoutPolicy * for the Plastic L&fs. * * @see PlasticLookAndFeel#getMicroLayoutPolicy() * @see PlasticLookAndFeel#setMicroLayoutPolicy(MicroLayout) */ public static final String PLASTIC_MICRO_LAYOUT_POLICY_KEY = "Plastic.MicroLayoutPolicy"; /** * A UIManager key for setting a custom MicroLayoutPolicy * for the Windows L&f. * * @see WindowsLookAndFeel#getMicroLayoutPolicy() * @see WindowsLookAndFeel#setMicroLayoutPolicy(MicroLayout) */ public static final String WINDOWS_MICRO_LAYOUT_POLICY_KEY = "Windows.MicroLayoutPolicy"; // Optional Global User Properties **************************************** public static final String DEFAULT_ICON_SIZE_KEY = "jgoodies.defaultIconSize"; public static final String USE_NARROW_BUTTONS_KEY = "jgoodies.useNarrowButtons"; public static final String TAB_ICONS_ENABLED_KEY = "jgoodies.tabIconsEnabled"; /** * A UIDefaults key for the popup drop shadow enablement. * * @see #isPopupDropShadowEnabled() * @see #setPopupDropShadowEnabled(boolean) */ public static final String POPUP_DROP_SHADOW_ENABLED_KEY = "jgoodies.popupDropShadowEnabled"; /** * A UIDefaults key for enabling/disabling the new high-resolution * gray filter globally. This setting can be overridden per component. * * @see #setHiResGrayFilterEnabled(boolean) * @see #HI_RES_DISABLED_ICON_CLIENT_KEY * * @since 2.1 */ public static final String HI_RES_GRAY_FILTER_ENABLED_KEY = "HiResGrayFilterEnabled"; /** * A UIDefaults key for the global default whether text fields * shall select all text on focus gain. This can be overridden per field. * * @see #setSelectOnFocusGainEnabled(boolean) * * @since 2.2 */ public static final String SELECT_ON_FOCUS_GAIN_KEY = "JGoodies.selectAllOnFocusGain"; // Optional Client Properties ********************************************* /** * A JScrollPane client property key for a hint * that the scroll pane border should be etched. */ public static final String IS_ETCHED_KEY = "jgoodies.isEtched"; /** * A client property key for JMenuBar and JToolBar style hints. * Available styles are: {@code HeaderStyle.Single} and * {@code HeaderStyle.Both}. * * @see HeaderStyle * @see BorderStyle */ public static final String HEADER_STYLE_KEY = "jgoodies.headerStyle"; /** * A JMenu client property key for a hint * that the menu items in the menu have no icons. */ public static final String NO_ICONS_KEY = "jgoodies.noIcons"; /** * A JPopupMenu client property key for a hint that the border * shall have no extra margin. This is useful if the popup menu * contains only a single component, for example a scrollpane. */ public static final String NO_MARGIN_KEY = "JPopupMenu.noMargin"; /** * A JTree client property key for a tree line style hint. * * @see #TREE_LINE_STYLE_ANGLED_VALUE * @see #TREE_LINE_STYLE_NONE_VALUE */ public static final String TREE_LINE_STYLE_KEY = "JTree.lineStyle"; /** * A JTree client property value that indicates that lines shall be drawn. * * @see #TREE_LINE_STYLE_KEY */ public static final String TREE_LINE_STYLE_ANGLED_VALUE = "Angled"; /** * A JTree client property value that indicates that lines shall be hidden. * * @see #TREE_LINE_STYLE_KEY */ public static final String TREE_LINE_STYLE_NONE_VALUE = "None"; /** * A JTabbedPane client property key that indicates * that no content border shall be painted. * Supported by the JGoodies Windows L&f and the * JGoodies Plastic look&feel family. * This effect will be achieved also if the EMBEDDED property is true. */ public static final String NO_CONTENT_BORDER_KEY = "jgoodies.noContentBorder"; /** * A JTabbedPane client property key that indicates * that tabs are painted with a special embedded appearance. * Supported by the JGoodies Windows L&f and the * JGoodies Plastic look&feel family. * As a side effect of the embedded appearance, * supporting L&fs won't paint the content border. */ public static final String EMBEDDED_TABS_KEY = "jgoodies.embeddedTabs"; /** * A JComboBox client property key for the combo's * popup menu prototype display value. If this key is set, * the value will be used to compute the combo popup width. * This optional feature is supported by the JGoodies Windows L&f * as well as the JGoodies Plastic L&fs. */ public static final String COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY = "ComboBox.popupPrototypeDisplayValue"; /** * A client property key for combo box renderer components. * The Boolean value indicates whether the component's border * can be temporarily removed when painting the current value or not.

* * This is useful for custom renderers used with Windows combo boxes * as described by {@code WindowsComboBoxUI#paintCurrentValue}}. * * @since 2.1 */ public static final String COMBO_RENDERER_IS_BORDER_REMOVABLE = "isBorderRemovable"; /** * A client property key for components with a disabled icon * such as buttons, labels, and tabbed panes. Specifies whether * the new high resolution gray filter shall be used to compute * a disabled icon - if none is available. * * @see #isHiResGrayFilterEnabled() * @see #setHiResGrayFilterEnabled(boolean) * @see #HI_RES_GRAY_FILTER_ENABLED_KEY * * @since 2.1 */ public static final String HI_RES_DISABLED_ICON_CLIENT_KEY = "generateHiResDisabledIcon"; /** * A JTextField client property key that specifies whether all text shall * be selected on focus gain. Overrides the global default.

* * This feature can be set using * {@link #setSelectOnFocusGainEnabled(JTextField, Boolean)}. * If you want to avoid to link application code to the JGoodies Looks * library, you can set the client property directly using: *

     * aTextField.putClientProperty("JGoodies.selectAllOnFocusGain", Boolean.TRUE);
     * 
* * @see #setSelectOnFocusGainEnabled(boolean) * * @since 2.2 */ public static final String SELECT_ON_FOCUS_GAIN_CLIENT_KEY = "JGoodies.selectAllOnFocusGain"; /** * A JTextField client property key that specifies the direction * how text shall be selected on focus gain - if at all: * from start to end vs. end to start. * * If the value is set to Boolean.TRUE, the text is selected * from end to start, otherwise it is selected from start to end.

* * You can set the client property using: *

     * aTextField.putClientProperty("JGoodies.invertSelection", Boolean.TRUE);
     * 
* * @since 2.2 */ public static final String INVERT_SELECTION_CLIENT_KEY = "JGoodies.invertSelection"; /** * A JTextField client property key that specifies whether the caret * shall be positioned at the start on focus lost. * If the value is set to Boolean.TRUE, the caret is set to position 0 * on focus lost, otherwise the caret remains unchanged.

* * You can set the client property using: *

     * aTextField.putClientProperty("JGoodies.setCaretToStartOnFocusLost", Boolean.TRUE);
     * 
* * @since 2.2 */ public static final String SET_CARET_TO_START_ON_FOCUS_LOST_CLIENT_KEY = "JGoodies.setCaretToStartOnFocusLost"; // System Settings ******************************************************** /** * Holds the Boolean system property value for the use of system fonts, * or null, if it has not been set. If this property has been * set, we log a message about the choosen value. * * @see #getUseSystemFonts() */ private static final Boolean USE_SYSTEM_FONTS_SYSTEM_VALUE = LookUtils.getBooleanSystemProperty( USE_SYSTEM_FONTS_KEY, "Use system fonts"); /** * Holds the Boolean system property value for the use of narrow buttons * or null, if it has not been set. If this property has been * set, we log a message about the chosen value. * * @see #getUseNarrowButtons() */ private static final Boolean USE_NARROW_BUTTONS_SYSTEM_VALUE = LookUtils.getBooleanSystemProperty( USE_NARROW_BUTTONS_KEY, "Use narrow buttons"); /** * Holds the Boolean system property value for the tab icon enablement, * or null, if it has not been set. If this property has been * set, we log a message about the chosen value. * * @see #isTabIconsEnabled() */ private static final Boolean TAB_ICONS_ENABLED_SYSTEM_VALUE = LookUtils.getBooleanSystemProperty( TAB_ICONS_ENABLED_KEY, "Icons in tabbed panes"); /** * Holds the Boolean system property value for the popup drop shadow * enablement, or null, if it has not been set. If this property has been * set, we log a message about the chosen value.

* * This property just set the feature's enablement, not its actual * activation. For example, drop shadows are always inactive on * the Mac OS X, because this platform already provides shadows. * The activation is requested in {@code #isPopupDropShadowActive}. * * @see #isPopupDropShadowEnabled() * @see #isPopupDropShadowActive() */ private static final Boolean POPUP_DROP_SHADOW_ENABLED_SYSTEM_VALUE = LookUtils.getBooleanSystemProperty( POPUP_DROP_SHADOW_ENABLED_KEY, "Popup drop shadows"); // Private **************************************************************** private static final Dimension DEFAULT_ICON_SIZE = new Dimension(20, 20); private Options() { // Override default constructor; prevents instantiation. } // Accessing Options ****************************************************** /** * Returns whether native system fonts shall be used, {@code true} * by default unless disabled in the system properties or UIManager. * * @return true unless disabled in the system properties or UIManager * * @see #setUseSystemFonts(boolean) * @see #USE_SYSTEM_FONTS_KEY * @see #USE_SYSTEM_FONTS_APP_KEY */ public static boolean getUseSystemFonts() { return USE_SYSTEM_FONTS_SYSTEM_VALUE != null ? USE_SYSTEM_FONTS_SYSTEM_VALUE.booleanValue() : !Boolean.FALSE.equals(UIManager.get(USE_SYSTEM_FONTS_APP_KEY)); } /** * Sets a value in the UIManager to indicate, * that a look&feel may use the native system fonts. * * @param useSystemFonts true to enable system fonts in the UIManager * * @see #getUseSystemFonts() * @see #USE_SYSTEM_FONTS_KEY * @see #USE_SYSTEM_FONTS_APP_KEY */ public static void setUseSystemFonts(boolean useSystemFonts) { UIManager.put(USE_SYSTEM_FONTS_APP_KEY, Boolean.valueOf(useSystemFonts)); } /** * Returns the default icon size that is used in menus, menu items and * toolbars. Menu items that have no icon set are aligned using the default * icon dimensions. * * @return the dimension of the default icon * * @see #setDefaultIconSize(Dimension) */ public static Dimension getDefaultIconSize() { Dimension size = UIManager.getDimension(DEFAULT_ICON_SIZE_KEY); return size == null ? DEFAULT_ICON_SIZE : size; } /** * Sets the default icon size. * * @param defaultIconSize the default icon size to set * * @see #getDefaultIconSize() */ public static void setDefaultIconSize(Dimension defaultIconSize) { UIManager.put(DEFAULT_ICON_SIZE_KEY, defaultIconSize); } /** * Checks and answers if we shall use narrow button margins of 4 pixels. * As of the Looks version 1.4 the default value is {@code true} * (narrow) for the JGoodies Windows L&F and the JGoodies Plastic * L&F family. The native Windows L&F uses narrow margins too. * The default can be disabled in the system properties or UIManager.

* * Note: Using narrow button margins can potentially cause * compatibility issues, if you don't take care that command buttons with * short labels (OK) get a reasonable minimum width. Therefore you can * get back to wide button margins using {@code #setUseNarrowButtons}. * Sun's L&F implementations use a wider button margin of 14 pixels.

* * Narrow button margins make it easier to give buttons in a button bar * the same width, even if some button labels are long. And narrow margins * are useful for embedded command buttons that just have an icon, * or an ellipsis (…). Many style guides recommend to use a minimum * button width in command button bars, for example 50 dialog units on * Windows. Such a minimum width makes it easier to click a button, * just because the button area has a reasonable minimum size. * To ensure a reasonable button minimum width, you may configure a * LayoutManager, use a special panel for command button bars, or * a factory that vends command button bars.

* * The JGoodies FormLayout can layout button bars that comply with both the * MS Windows Layout Guidelines and the Mac Aqua Human Interface Guidelines. * The JGoodies Forms contains a ButtonBarBuilder to build command button * bars, and a ButtonBarFactory that vends frequently used button bars. * * @return {@code true} (default) if all buttons shall use narrow * margins, {@code false} for wider margins * * @see #setUseNarrowButtons(boolean) * @see #USE_NARROW_BUTTONS_KEY */ public static boolean getUseNarrowButtons() { return USE_NARROW_BUTTONS_SYSTEM_VALUE != null ? USE_NARROW_BUTTONS_SYSTEM_VALUE.booleanValue() : !Boolean.FALSE.equals(UIManager.get(USE_NARROW_BUTTONS_KEY)); } /** * Globally sets the use narrow or standard button margins.

* * In previous versions of the JGoodies Looks this setting was supported * also for individual buttons - primarily to offer visual backward * compatibility with Sun L&Fs. * * @param b true to use narrow button margins globally * * @see #getUseNarrowButtons() * @see #USE_NARROW_BUTTONS_KEY */ public static void setUseNarrowButtons(boolean b) { UIManager.put(USE_NARROW_BUTTONS_KEY, Boolean.valueOf(b)); } /** * Checks and answers if we shall use icons in JTabbedPanes. * By default, tab icons are enabled. If the user has set a system property, * we log a message about the choosen style. * * @return true if icons in tabbed panes are enabled, false if disabled * @see #setTabIconsEnabled(boolean) */ public static boolean isTabIconsEnabled() { return TAB_ICONS_ENABLED_SYSTEM_VALUE != null ? TAB_ICONS_ENABLED_SYSTEM_VALUE.booleanValue() : !Boolean.FALSE.equals(UIManager.get(TAB_ICONS_ENABLED_KEY)); } /** * Enables or disables the use of icons in JTabbedPanes. * * @param b true to enable icons in tabbed panes, false to disable them * * @see #isTabIconsEnabled() */ public static void setTabIconsEnabled(boolean b) { UIManager.put(TAB_ICONS_ENABLED_KEY, Boolean.valueOf(b)); } /** * Checks and answers whether popup drop shadows are active. * This feature shall be inactive with toolkits that use * native drop shadows, such as Aqua on the Mac OS X. * It is also inactive if the ShadowPopup cannot snapshot * the desktop background (due to security and AWT exceptions). * Otherwise the feature's enablement state is returned.

* * Currently only the Mac OS X is detected as platform where * the toolkit uses native drop shadows. * * @return true if drop shadows are active, false if inactive * * @see #isPopupDropShadowEnabled() * @see #setPopupDropShadowEnabled(boolean) */ public static boolean isPopupDropShadowActive() { return !LookUtils.getToolkitUsesNativeDropShadows() && ShadowPopup.canSnapshot() && isPopupDropShadowEnabled(); } /** * Checks and answers whether the optional drop shadows for * PopupMenus are enabled or disabled. * * @return true if drop shadows are enabled, false if disabled * * @see #isPopupDropShadowActive() * @see #setPopupDropShadowEnabled(boolean) * @see #POPUP_DROP_SHADOW_ENABLED_KEY */ public static boolean isPopupDropShadowEnabled() { if (POPUP_DROP_SHADOW_ENABLED_SYSTEM_VALUE != null) { return POPUP_DROP_SHADOW_ENABLED_SYSTEM_VALUE.booleanValue(); } Object value = UIManager.get(POPUP_DROP_SHADOW_ENABLED_KEY); return value == null ? isPopupDropShadowEnabledDefault() : Boolean.TRUE.equals(value); } /** * Enables or disables drop shadows in PopupMenus. * Note that drop shadows are always inactive on platforms * that provide native drop shadows such as the Mac OS X.

* * It is recommended to enable this feature only on platforms that * accelerate translucency and snapshots with the hardware. * * @param b true to enable drop shadows, false to disable them * * @see #isPopupDropShadowActive() * @see #isPopupDropShadowEnabled() */ public static void setPopupDropShadowEnabled(boolean b) { UIManager.put(POPUP_DROP_SHADOW_ENABLED_KEY, Boolean.valueOf(b)); } /** * Checks and answers whether popup drop shadows are enabled * or disabled by default. True for modern Windows platforms: * Windows 98/ME/2000/XP.

* * TODO: Consider enabling popup drop shadows on Linux by default.

* * TODO: Consider moving the default to the individual L&F's * component defaults initialization. For example Plastic and Plastic3D * may disable this feature by default, while PlasticXP enables it * by default. * * @return false */ private static boolean isPopupDropShadowEnabledDefault() { return LookUtils.IS_OS_WINDOWS_MODERN; } /** * Checks and answers whether the new high-resolution gray filter * is enabled or disabled. It is enabled by default. * * @return true if the high-resolution gray filter is enabled, false if disabled * * @see #setHiResGrayFilterEnabled(boolean) * @see #HI_RES_GRAY_FILTER_ENABLED_KEY * @see #HI_RES_DISABLED_ICON_CLIENT_KEY * * @since 2.1 */ public static boolean isHiResGrayFilterEnabled() { return !Boolean.FALSE.equals(UIManager.get(HI_RES_GRAY_FILTER_ENABLED_KEY)); } /** * Enables or disables the new high-resolution gray filter globally. * This gray filter can be disabled for individual components using the * client property key {@code HI_RES_DISABLED_ICON_CLIENT_KEY}. * * @param b true to enable the high-resolution gray filter, * false to disable them * * @see #isHiResGrayFilterEnabled() * * @since 2.1 */ public static void setHiResGrayFilterEnabled(boolean b) { UIManager.put(HI_RES_GRAY_FILTER_ENABLED_KEY, Boolean.valueOf(b)); } /** * Checks and answers whether the global default for text fields * is to select all text on focus gain. The global default can be * overridden per component. This feature is turned on by default.

* * For all full description and background * see {@link #setSelectOnFocusGainEnabled(boolean)}. * * @return true if the select all feature is enabled globally, * false if disabled * * @see #SELECT_ON_FOCUS_GAIN_KEY * @see #SELECT_ON_FOCUS_GAIN_CLIENT_KEY * * @since 2.2 */ public static boolean isSelectOnFocusGainEnabled() { return !Boolean.FALSE.equals(UIManager.get(SELECT_ON_FOCUS_GAIN_KEY)); } /** * Enables or disables the select on focus gain feature globally. * This feature can be disabled for individual components using the * client property key {@code SELECT_ALL_ON_FOCUS_GAIN_CLIENT_KEY}. * It is enabled by default.

* * Background: If users are more likely going to reenter the entire * value in a text field, all text shall be selected on focus gain. * If users are more likely to edit a text, the caret shall be placed * at the end of the text. * * @param b true to enable the select all on focus gain, * false to disable this feature globally * * @see #isSelectOnFocusGainEnabled() * * @since 2.2 */ public static void setSelectOnFocusGainEnabled(boolean b) { UIManager.put(SELECT_ON_FOCUS_GAIN_KEY, Boolean.valueOf(b)); } /** * Checks and answers whether the select all on focus gain feature * is active for the given field. Involves both the indiviual setting * and the global default. * * @param c the component to check * @return true if the feature is enabled for {@code c} or globally, * false if the feature is disabled for {@code c} or globally * disabled. * * @since 2.2 */ public static boolean isSelectOnFocusGainActive(JTextComponent c) { Boolean enabled = getSelectOnFocusGainEnabled(c); if (enabled != null) { return enabled.booleanValue(); } return isSelectOnFocusGainEnabled(); } /** * Returns component's individual setting for the select on focus gain * feature. * * @param c the component to check * @return Boolean.TRUE if enabled, Boolean.FALSE if disabled, * null if the global default is used * * @see #isSelectOnFocusGainActive(JTextComponent) * * @since 2.2 */ public static Boolean getSelectOnFocusGainEnabled(JTextComponent c) { return (Boolean) c.getClientProperty(SELECT_ON_FOCUS_GAIN_CLIENT_KEY); } /** * Overrides the global default for the select all feature for the given * text field. * * @param field the field to set this feature * @param b Boolean.TRUE to enable, Boolean.FALSE to disable, * null to use the global default * * @since 2.2 */ public static void setSelectOnFocusGainEnabled(JTextField field, Boolean b) { field.putClientProperty(SELECT_ON_FOCUS_GAIN_CLIENT_KEY, b); } // Look And Feel Replacements ********************************************* /** * Puts a replacement name for a given {@code LookAndFeel} * class name in the list of all look and feel replacements. * * @param original the name of the look-and-feel to replace * @param replacement the name of the replacement look-and-feel * @see #removeLookAndFeelReplacement(String) * @see #getReplacementClassNameFor(String) */ public static void putLookAndFeelReplacement( String original, String replacement) { LAF_REPLACEMENTS.put(original, replacement); } /** * Removes a replacement name for a given {@code LookAndFeel} * class name from the list of all look and feel replacements. * * @param original the name of the look-and-feel that has been replaced * @see #putLookAndFeelReplacement(String, String) * @see #getReplacementClassNameFor(String) */ public static void removeLookAndFeelReplacement(String original) { LAF_REPLACEMENTS.remove(original); } /** * A replacement used to replace a given L&f with nothing, * that indicates that it should not be used. For example, * by default we mark the WindowsClass L&f this way, * to remove it from L&f lists that replace the Sun Windows L&f * with the JGoodies Windows L&f. * * @since 2.1.3 */ public static final String NO_REPLACEMENT = "none"; /** * Initializes some default class name replacements, that replace * Sun's Java look and feel, and Sun's Windows look and feel by * the appropriate JGoodies replacements. * * @see #putLookAndFeelReplacement(String, String) * @see #removeLookAndFeelReplacement(String) * @see #getReplacementClassNameFor(String) */ private static void initializeDefaultReplacements() { putLookAndFeelReplacement( "javax.swing.plaf.metal.MetalLookAndFeel", PLASTIC3D_NAME); putLookAndFeelReplacement( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel", JGOODIES_WINDOWS_NAME); putLookAndFeelReplacement( "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel", NO_REPLACEMENT); } /** * Returns the class name that can be used to replace the specified * {@code LookAndFeel} class name. * * @param className the name of the look-and-feel class * @return the name of the suggested replacement class * * @see #putLookAndFeelReplacement(String, String) * @see #removeLookAndFeelReplacement(String) */ public static String getReplacementClassNameFor(String className) { String replacement = (String) LAF_REPLACEMENTS.get(className); if (replacement == null) { return className; } else if (replacement.equals(NO_REPLACEMENT)) { return null; } else { return replacement; } } /** * Returns the class name for a cross-platform {@code LookAndFeel}. * * @return the name of a cross platform look-and-feel class * @see #getSystemLookAndFeelClassName() */ public static String getCrossPlatformLookAndFeelClassName() { return PLASTICXP_NAME; } /** * Returns the class name for a system specific {@code LookAndFeel}. * * @return the name of the system look-and-feel class * @see #getCrossPlatformLookAndFeelClassName() */ public static String getSystemLookAndFeelClassName() { if (SystemUtils.IS_OS_WINDOWS) { return Options.JGOODIES_WINDOWS_NAME; } else if (SystemUtils.IS_OS_MAC) { return UIManager.getSystemLookAndFeelClassName(); } else { return getCrossPlatformLookAndFeelClassName(); } } } jgoodies-looks-2.5.2/src/main/java/com/jgoodies/looks/FontPolicies.java0000644000175000017500000003570011731047400024623 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks; import java.awt.Font; import javax.swing.UIDefaults; import com.jgoodies.common.base.SystemUtils; /** * Provides predefined FontPolicy implementations.

* * Note: The available policies work well on Windows. * On other platforms the fonts specified by the runtime environment * are chosen. I plan to provide more logic or options for other platforms, * for example that a Linux system checks for a Tahoma or Segoe UI.

* * TODO: Add a check for a custom font policy set in the System properties.

* * TODO: Add policies that emulate different Windows setups: * default XP on 96dpi with normal fonts ("XP-normal-96"), * Vista on 120dpi with large fonts ("Vista-large-120"), etc. * * @author Karsten Lentzsch * @version $Revision: 1.14 $ * * @see FontPolicy * @see FontSet * @see FontSets * @see Fonts * * @since 2.0 */ public final class FontPolicies { private FontPolicies() { // Override default constructor; prevents instantation. } // Getting a FontPolicy ********************************************* /** * Returns a font policy that in turn always returns the specified FontSet. * The FontSet will be fixed, but the FontSet itself may * return different fonts in different environments. * * @param fontSet the FontSet to be return by this policy * @return a font policy that returns the specified FontSet. */ public static FontPolicy createFixedPolicy(FontSet fontSet) { return new FixedPolicy(fontSet); } /** * Returns a font policy that checks for a custom FontPolicy * and a custom FontSet specified in the System settings or UIManager. * If no custom settings are available, the given default policy will * be used to look up the FontSet. * * @param defaultPolicy the policy used if there are no custom settings * @return a FontPolicy that checks for custom settings * before the default policy is returned. */ public static FontPolicy customSettingsPolicy(FontPolicy defaultPolicy) { return new CustomSettingsPolicy(defaultPolicy); } // /** // * Returns the default platform independent font choice policy.

// * // * The current implementation just returns the logical fonts. // * A future version shall check for available good fonts // * and shall use them before it falls back to the logical fonts. // * // * @return the default platform independent font choice policy. // */ // public static FontPolicy getDefaultCrossPlatformPolicy() { // return new DefaultCrossPlatformPolicy(); // } /** * Returns the default font policy for Plastic on the Windows platform. * It differs from the default Windows policy in that it uses a bold font * for TitledBorders, titles, and titled separators. * * @return the default font policy for Plastic on the Windows platform. */ public static FontPolicy getDefaultPlasticOnWindowsPolicy() { return new DefaultPlasticOnWindowsPolicy(); } /** * Returns the default Plastic FontPolicy that may vary * with the platform and environment. * On Windows, the PlasticOnWindowsPolicy is returned that * is much like the defualt WindowsPolicy but uses a bold title font. * On other Platforms, the logical fonts policy is returned * that uses the logical fonts as specified by the Java runtime environment. * * @return a Windows-like policy on Windows, a logical fonts policy * on all other platforms */ public static FontPolicy getDefaultPlasticPolicy() { if (SystemUtils.IS_OS_WINDOWS) { return getDefaultPlasticOnWindowsPolicy(); } return getLogicalFontsPolicy(); // return getDefaultCrossPlatformPolicy(); } /** * Returns the default font policy for the Windows platform. * It aims to return a FontSet that is close to the native guidelines * and useful for the current Java environment.

* * The control font scales with the platform screen resolution * (96dpi/101dpi/120dpi/144dpi/...) and honors the desktop font settings * (normal/large/extra large). * * @return the default font policy for the Windows platform. */ public static FontPolicy getDefaultWindowsPolicy() { return new DefaultWindowsPolicy(); } /** * Returns a font policy that returns the logical fonts * as specified by the Java runtime environment. * * @return a font policy that returns logical fonts. */ public static FontPolicy getLogicalFontsPolicy() { return createFixedPolicy(FontSets.getLogicalFontSet()); } /** * Returns a font policy for getting a Plastic appearance that aims to be * visual backward compatible with the JGoodies Looks version 1.x. * It uses a font choice similar to the choice implemented * by the Plastic L&fs in the JGoodies Looks version 1.x. * * @return a font policy that aims to reproduce the Plastic font choice * in the JGoodies Looks 1.x. */ public static FontPolicy getLooks1xPlasticPolicy() { Font controlFont = Fonts.getDefaultGUIFontWesternModernWindowsNormal(); Font menuFont = controlFont; Font titleFont = controlFont.deriveFont(Font.BOLD); FontSet fontSet = FontSets.createDefaultFontSet(controlFont, menuFont, titleFont); return createFixedPolicy(fontSet); } /** * Returns a font policy for getting a Windows appearance that aims to be * visual backward compatible with the JGoodies Looks version 1.x. * It uses a font choice similar to the choice implemented * by the Windows L&f in the JGoodies Looks version 1.x. * * @return a font policy that aims to reproduce the Windows font choice * in the JGoodies Looks 1.x. */ public static FontPolicy getLooks1xWindowsPolicy() { return new Looks1xWindowsPolicy(); } /** * Returns a font policy intended for API users that want to * move Plastic code from the Looks 1.x to the Looks 2.0. * On Windows, it uses the Looks 2.0 Plastic fonts, * on other platforms it uses the Looks 1.x Plastic fonts. * * @return the recent Plastic font policy on Windows, * the JGoodies Looks 1.x on other Platforms. */ public static FontPolicy getTransitionalPlasticPolicy() { return SystemUtils.IS_OS_WINDOWS ? getDefaultPlasticOnWindowsPolicy() : getLooks1xPlasticPolicy(); } // Utility Methods ******************************************************** /** * Looks up and returns a custom FontSet for the given * Look&Feel name, or {@code null} if no custom font set * has been defined for this Look&Feel. * * @param the name of the Look&Feel, one of {@code "Plastic"} or * {@code "Windows"} * @return a custom FontPolicy - if any - or otherwise {@code null} */ private static FontSet getCustomFontSet(String lafName) { String controlFontKey = lafName + ".controlFont"; String menuFontKey = lafName + ".menuFont"; String decodedControlFont = LookUtils.getSystemProperty(controlFontKey); if (decodedControlFont == null) { return null; } Font controlFont = Font.decode(decodedControlFont); String decodedMenuFont = LookUtils.getSystemProperty(menuFontKey); Font menuFont = decodedMenuFont != null ? Font.decode(decodedMenuFont) : null; Font titleFont = "Plastic".equals(lafName) ? controlFont.deriveFont(Font.BOLD) : controlFont; return FontSets.createDefaultFontSet(controlFont, menuFont, titleFont); } /** * Looks up and returns a custom FontPolicy for the given * Look&Feel name, or {@code null} if no custom policy has been * defined for this Look&Feel. * * @param the name of the Look&Feel, one of {@code "Plastic"} or * {@code "Windows"} * @return a custom FontPolicy - if any - or otherwise {@code null} */ private static FontPolicy getCustomPolicy(String lafName) { // TODO: Look up predefined font choice policies return null; } private static final class CustomSettingsPolicy implements FontPolicy { private final FontPolicy wrappedPolicy; CustomSettingsPolicy(FontPolicy wrappedPolicy) { this.wrappedPolicy = wrappedPolicy; } @Override public FontSet getFontSet(String lafName, UIDefaults table) { FontPolicy customPolicy = getCustomPolicy(lafName); if (customPolicy != null) { return customPolicy.getFontSet(null, table); } FontSet customFontSet = getCustomFontSet(lafName); if (customFontSet != null) { return customFontSet; } return wrappedPolicy.getFontSet(lafName, table); } } // private static final class DefaultCrossPlatformPolicy implements FontPolicy { // // public FontSet getFontSet(String lafName, UIDefaults table) { // // TODO: If Tahoma or Segoe UI is available, return them // // in a size appropriate for the screen resolution. // // Otherwise return the logical font set. // return FontSets.getLogicalFontSet(); // } // } /** * Implements the default font lookup for the Plastic L&f family * when running in a Windows environment. */ private static final class DefaultPlasticOnWindowsPolicy implements FontPolicy { @Override public FontSet getFontSet(String lafName, UIDefaults table) { Font windowsControlFont = Fonts.getWindowsControlFont(); Font controlFont; if (windowsControlFont != null) { controlFont = windowsControlFont; } else if (table != null) { controlFont = table.getFont("Button.font"); } else { controlFont = new Font("Dialog", Font.PLAIN, 12); } Font menuFont = table == null ? controlFont : table.getFont("Menu.font"); Font titleFont = controlFont.deriveFont(Font.BOLD); return FontSets.createDefaultFontSet(controlFont, menuFont, titleFont); } } /** * Implements the default font lookup on the Windows platform. */ private static final class DefaultWindowsPolicy implements FontPolicy { @Override public FontSet getFontSet(String lafName, UIDefaults table) { Font windowsControlFont = Fonts.getWindowsControlFont(); Font controlFont; if (windowsControlFont != null) { controlFont = windowsControlFont; } else if (table != null) { controlFont = table.getFont("Button.font"); } else { controlFont = new Font("Dialog", Font.PLAIN, 12); } Font menuFont = table == null ? controlFont : table.getFont("Menu.font"); Font titleFont = controlFont; Font messageFont = table == null ? controlFont : table.getFont("OptionPane.font"); Font smallFont = table == null ? controlFont.deriveFont(controlFont.getSize2D() - 2f) : table.getFont("ToolTip.font"); Font windowTitleFont = table == null ? controlFont : table.getFont("InternalFrame.titleFont"); return FontSets.createDefaultFontSet( controlFont, menuFont, titleFont, messageFont, smallFont, windowTitleFont); } } /** * A FontPolicy that returns a fixed FontSet and that ignores * the laf name and UIDefaults table. */ private static final class FixedPolicy implements FontPolicy { private final FontSet fontSet; FixedPolicy(FontSet fontSet) { this.fontSet = fontSet; } @Override public FontSet getFontSet(String lafName, UIDefaults table) { return fontSet; } } /** * Aims to mimic the font choice as used in the JGoodies Looks 1.x. */ private static final class Looks1xWindowsPolicy implements FontPolicy { @Override public FontSet getFontSet(String lafName, UIDefaults table) { Font windowsControlFont = Fonts.getLooks1xWindowsControlFont(); Font controlFont; if (windowsControlFont != null) { controlFont = windowsControlFont; } else if (table != null) { controlFont = table.getFont("Button.font"); } else { controlFont = new Font("Dialog", Font.PLAIN, 12); } return FontSets.createDefaultFontSet(controlFont); } } } jgoodies-looks-2.5.2/src/test/0000755000175000017500000000000012054046230014756 5ustar tonytonyjgoodies-looks-2.5.2/src/test/java/0000755000175000017500000000000012054046277015712 5ustar tonytonyjgoodies-looks-2.5.2/src/test/java/META-INF/0000755000175000017500000000000012003474272017044 5ustar tonytonyjgoodies-looks-2.5.2/src/test/java/META-INF/MANIFEST.MF0000644000175000017500000000014712003474270020476 0ustar tonytonyManifest-Version: 1.0 Ant-Version: Apache Ant 1.8.2 Created-By: 1.7.0_05-b05 (Oracle Corporation) jgoodies-looks-2.5.2/src/test/java/com/0000755000175000017500000000000011731047124016461 5ustar tonytonyjgoodies-looks-2.5.2/src/test/java/com/jgoodies/0000755000175000017500000000000011731047124020264 5ustar tonytonyjgoodies-looks-2.5.2/src/test/java/com/jgoodies/looks/0000755000175000017500000000000011731047124021413 5ustar tonytonyjgoodies-looks-2.5.2/src/test/java/com/jgoodies/looks/tests/0000755000175000017500000000000011731047130022552 5ustar tonytonyjgoodies-looks-2.5.2/src/test/java/com/jgoodies/looks/tests/FontsTest.java0000644000175000017500000001002311731047130025342 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.tests; import java.awt.Font; import java.util.Locale; import junit.framework.TestCase; import com.jgoodies.looks.Fonts; /** * A test case for class {@link Fonts}. * * @author Karsten Lentzsch * @version $Revision: 1.6 $ */ public final class FontsTest extends TestCase { /** * Checks the localization display test for a bunch of combinations * of font and locale. */ public static void testCanDisplayLocalizedText() { Font tahoma = new Font("Tahoma", Font.PLAIN, 12); if (tahoma.getName().equals(tahoma.getFontName())) { canDisplayLocalizedText(tahoma, Locale.ENGLISH, true); canDisplayLocalizedText(tahoma, Locale.GERMAN, true); canDisplayLocalizedText(tahoma, Locale.FRENCH, true); canDisplayLocalizedText(tahoma, Locale.ITALIAN, true); canDisplayLocalizedText(tahoma, Locale.CHINESE, false); canDisplayLocalizedText(tahoma, Locale.SIMPLIFIED_CHINESE, false); canDisplayLocalizedText(tahoma, Locale.TRADITIONAL_CHINESE, false); canDisplayLocalizedText(tahoma, Locale.JAPANESE, false); canDisplayLocalizedText(tahoma, Locale.KOREAN, false); } Font msSansSerif = new Font("Microsoft Sans Serif", Font.PLAIN, 12); if (msSansSerif.getName().equals(msSansSerif.getFontName())) { canDisplayLocalizedText(msSansSerif, Locale.ENGLISH, true); canDisplayLocalizedText(msSansSerif, Locale.GERMAN, true); canDisplayLocalizedText(msSansSerif, Locale.FRENCH, true); canDisplayLocalizedText(msSansSerif, Locale.ITALIAN, true); canDisplayLocalizedText(msSansSerif, Locale.CHINESE, false); canDisplayLocalizedText(msSansSerif, Locale.SIMPLIFIED_CHINESE, false); canDisplayLocalizedText(msSansSerif, Locale.TRADITIONAL_CHINESE, false); canDisplayLocalizedText(msSansSerif, Locale.JAPANESE, false); canDisplayLocalizedText(msSansSerif, Locale.KOREAN, false); } } private static void canDisplayLocalizedText(Font font, Locale locale, boolean expectedResult) { boolean result = Boolean.TRUE.equals(Fonts.canDisplayLocalizedText(font, locale)); assertEquals("Failed display test. Font=" + font + "; Locale=" + locale, expectedResult, result); } } jgoodies-looks-2.5.2/src/test/java/com/jgoodies/looks/tests/FontTest.java0000644000175000017500000002647611731047130025202 0ustar tonytonypackage com.jgoodies.looks.tests; import java.awt.*; import java.util.Locale; import javax.swing.*; import javax.swing.text.JTextComponent; import com.jgoodies.common.base.SystemUtils; import com.jgoodies.looks.FontSet; import com.jgoodies.looks.Fonts; import com.jgoodies.looks.LookUtils; import com.jgoodies.looks.plastic.PlasticLookAndFeel; import com.jgoodies.looks.plastic.PlasticXPLookAndFeel; import com.jgoodies.looks.windows.WindowsLookAndFeel; /** * An application that displays the system configuration * and font information in a JTextArea. These information * may help me understand the font setup on Chinese, Japanese, * Korean and other non-western Windows editions. * * @author Karsten Lentzsch * @version $Revision: 1.2 $ */ public final class FontTest { private JTextComponent textArea; // Launching ************************************************************** /** * Builds and the UI. */ public static void main(String[] args) { FontTest instance = new FontTest(); instance.buildInterface(); } // Building the UI ******************************************************** private void initComponents() { textArea = new JTextArea(); textArea.setText(readConfiguration()); } /** * Creates and configures a frame, builds the menu bar, builds the * content, locates the frame on the screen, and finally shows the frame. */ private void buildInterface() { initComponents(); JFrame frame = new JFrame(); frame.setContentPane(buildContentPane()); frame.setSize(400, 600); locateOnScreen(frame); frame.setTitle("JGoodies Looks :: FontTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } private JComponent buildContentPane() { JPanel panel = new JPanel(new BorderLayout()); panel.add(new JScrollPane(textArea), BorderLayout.CENTER); return panel; } /** * Locates the frame on the screen center. */ private static void locateOnScreen(Frame frame) { Dimension paneSize = frame.getSize(); Dimension screenSize = frame.getToolkit().getScreenSize(); frame.setLocation( (screenSize.width - paneSize.width) / 2, (screenSize.height - paneSize.height) / 2); } // Configuration ********************************************************** private static String readConfiguration() { StringBuffer buffer = new StringBuffer(); buffer.append("Please copy the information below to your clipboard"); buffer.append("\nand send them to dev@looks.dev.java.net"); addSystemProperties(buffer, "Java environment:", new String[]{ "java.vendor", "java.version", "java.runtime.version", "java.vm.version", "sun.desktop"}); addSystemProperties(buffer, "Operating System:", new String[]{ "os.name", "os.version"}); if (SystemUtils.IS_OS_WINDOWS) { addWindowsSettings(buffer, "Windows Settings:"); } addAWTProperties(buffer, "AWT Properties:"); addSystemProperties(buffer, "User Settings:", new String[]{ "user.language", "user.country", "user.timezone"}); addDesktopProperties(buffer, "Desktop Properties:", new String[]{ "win.defaultGUI.font", "win.icon.font", "win.menu.font", "win.messagebox.font", "win.ansiVar.font", "win.ansiFixed.font", "win.frame.captionFont", "win.tooltip.font"}); addInternationalizationProperties(buffer); addFontSet(buffer, "JGoodies Windows L&f:", getWindowsFontSet()); addFontSet(buffer, "JGoodies Plastic L&fs:", getPlasticFontSet()); buffer.append("\n\n"); return buffer.toString(); } private static void addSystemProperties(StringBuffer buffer, String description, String[] keys) { buffer.append("\n\n"); buffer.append(description); for (String key : keys) { String value = LookUtils.getSystemProperty(key, "n/a"); buffer.append("\n "); buffer.append(key); buffer.append('='); buffer.append(value); } } private static void addDesktopProperties(StringBuffer buffer, String description, String[] keys) { Toolkit toolkit = Toolkit.getDefaultToolkit(); buffer.append("\n\n"); buffer.append(description); for (String key : keys) { Object value = toolkit.getDesktopProperty(key); String printString; if (value == null) { printString = "n/a"; } else if (value instanceof Font) { printString = encodeFont((Font) value); } else { printString = value.toString(); } buffer.append("\n "); buffer.append(key); buffer.append('='); buffer.append(printString); } } private static void addInternationalizationProperties(StringBuffer buffer) { Toolkit toolkit = Toolkit.getDefaultToolkit(); buffer.append("\n\n"); buffer.append("Internationalization:"); Locale locale = Locale.getDefault(); buffer.append("\n defaultLocale.getDisplayName(Locale.ENGLISH)="); buffer.append(locale.getDisplayName(Locale.ENGLISH)); buffer.append("\n defaultLocale.getDisplayLanguage(Locale.ENGLISH)="); buffer.append(locale.getDisplayLanguage(Locale.ENGLISH)); buffer.append("\n defaultLocale.getDisplayLanguage(defaultLocale)="); buffer.append(locale.getDisplayLanguage(locale)); buffer.append("\n locale has localized display language=" + localeHasLocalizedDisplayLanguage(locale)); Font defaultGUIFont = (Font) toolkit.getDesktopProperty("win.defaultGUI.font"); if (defaultGUIFont != null) { buffer.append("\n defaultGUI font can display localized text="); buffer.append(yesNoDontKnow(Fonts.canDisplayLocalizedText(defaultGUIFont, locale))); } Font iconFont = (Font) toolkit.getDesktopProperty("win.icon.font"); if (iconFont != null) { buffer.append("\n icon font can display localized text="); buffer.append(yesNoDontKnow(Fonts.canDisplayLocalizedText(iconFont, locale))); } } private static String yesNoDontKnow(Boolean b) { if (Boolean.TRUE.equals(b)) { return "yes"; } else if (Boolean.FALSE.equals(b)) { return "no"; } else { return "don't know"; } } private static void addFontSet(StringBuffer buffer, String description, FontSet fontSet) { buffer.append("\n\n"); buffer.append(description); if (fontSet == null) { buffer.append("\n n/a"); return; } buffer.append("\n controlFont="); buffer.append(encodeFont(fontSet.getControlFont())); buffer.append("\n menuFont="); buffer.append(encodeFont(fontSet.getMenuFont())); buffer.append("\n titleFont="); buffer.append(encodeFont(fontSet.getTitleFont())); buffer.append("\n messageFont="); buffer.append(encodeFont(fontSet.getMessageFont())); buffer.append("\n smallFont="); buffer.append(encodeFont(fontSet.getSmallFont())); buffer.append("\n windowTitleFont="); buffer.append(encodeFont(fontSet.getWindowTitleFont())); } private static void addWindowsSettings(StringBuffer buffer, String description) { buffer.append("\n\n"); buffer.append(description); buffer.append("\n Modern Windows="); buffer.append(LookUtils.IS_OS_WINDOWS_MODERN); buffer.append("\n Windows XP="); buffer.append(SystemUtils.IS_OS_WINDOWS_XP); buffer.append("\n Windows 6 or later="); buffer.append(SystemUtils.IS_OS_WINDOWS_6_OR_LATER); buffer.append("\n Windows L&f XP Mode="); buffer.append(SystemUtils.IS_LAF_WINDOWS_XP_ENABLED); } private static void addAWTProperties(StringBuffer buffer, String description) { Toolkit toolkit = Toolkit.getDefaultToolkit(); buffer.append("\n\n"); buffer.append(description); buffer.append("\n awt.toolkit="); buffer.append(toolkit.getClass().getName()); buffer.append("\n screen.size="); buffer.append(toolkit.getScreenSize().width); buffer.append(" x "); buffer.append(toolkit.getScreenSize().height); buffer.append("\n screen.resolution="); buffer.append(toolkit.getScreenResolution()); buffer.append(" "); buffer.append(SystemUtils.IS_LOW_RESOLUTION ? "(low)" : "(high)"); } private static String encodeFont(Font font) { StringBuffer buffer = new StringBuffer(font.getName()); buffer.append('-'); String style = font.isBold() ? font.isItalic() ? "bolditalic" : "bold" : font.isItalic() ? "italic" : "plain"; buffer.append(style); buffer.append('-'); buffer.append(font.getSize()); if (!font.getName().equals(font.getFamily())) { buffer.append(" family="); buffer.append(font.getFamily()); } return buffer.toString(); } private static FontSet getWindowsFontSet() { try { UIManager.setLookAndFeel(new WindowsLookAndFeel()); return WindowsLookAndFeel.getFontPolicy().getFontSet("Windows", UIManager.getDefaults()); } catch (UnsupportedLookAndFeelException e) { return null; } } private static FontSet getPlasticFontSet() { try { UIManager.setLookAndFeel(new PlasticXPLookAndFeel()); return PlasticLookAndFeel.getFontPolicy().getFontSet("Plastic", UIManager.getDefaults()); } catch (UnsupportedLookAndFeelException e) { return null; } } // Helper Code ************************************************************ /** * Checks and answers whether the locale's display language * is available in a localized form, for example "Deutsch" for the * German locale. * * @param locale the Locale to test * @return true if the display language is localized, false if not */ private static boolean localeHasLocalizedDisplayLanguage(Locale locale) { if (locale.getLanguage().equals(Locale.ENGLISH.getLanguage())) { return true; } String englishDisplayLanguage = locale.getDisplayLanguage(Locale.ENGLISH); String localizedDisplayLanguage = locale.getDisplayLanguage(locale); return !englishDisplayLanguage.equals(localizedDisplayLanguage); } }jgoodies-looks-2.5.2/src/test/java/com/jgoodies/looks/tests/OptionsTest.java0000644000175000017500000000557311731047130025722 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.tests; import javax.swing.UIManager; import junit.framework.TestCase; import com.jgoodies.looks.LookUtils; import com.jgoodies.looks.Options; /** * A test case for class {@link Options}. * * @author Karsten Lentzsch * @version $Revision: 1.7 $ */ public final class OptionsTest extends TestCase { /** * Checks that tab icons can be enabled and disabled via the Options. */ public static void testTabIconsEnablement() { Boolean systemDefault = LookUtils.getBooleanSystemProperty( Options.TAB_ICONS_ENABLED_KEY, "Test: tab icons"); if (systemDefault != null) { assertEquals("Tab icon enablement honors system property.", systemDefault.booleanValue(), Options.isTabIconsEnabled()); return; } UIManager.put(Options.TAB_ICONS_ENABLED_KEY, null); assertTrue("Tab icons are enabled by default.", Options.isTabIconsEnabled()); Options.setTabIconsEnabled(true); assertTrue("Tab icons are enabled.", Options.isTabIconsEnabled()); Options.setTabIconsEnabled(false); assertFalse("Tab icons are disabled.", Options.isTabIconsEnabled()); } } jgoodies-looks-2.5.2/src/test/java/com/jgoodies/looks/tests/AllLooksTests.java0000644000175000017500000000400511731047130026157 0ustar tonytony/* * Copyright (c) 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * o Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * o 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. * * o Neither the name of JGoodies Karsten Lentzsch nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR * CONTRIBUTORS 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. */ package com.jgoodies.looks.tests; import org.junit.runner.RunWith; import org.junit.runners.Suite; /** * A test suite for all tests related to the JGoodies Looks. * * @author Karsten Lentzsch * @version $Revision: 1.9 $ */ @RunWith(Suite.class) @Suite.SuiteClasses({ FontsTest.class, OptionsTest.class }) public final class AllLooksTests { // Just a suite definition class. } jgoodies-looks-2.5.2/pom.xml0000644000175000017500000000443212054225734014540 0ustar tonytony 4.0.0 com.jgoodies jgoodies-looks 2.5.2 jar JGoodies Looks https://looks.java.net/ The JGoodies Looks make your Swing applications and applets look better. They have been optimized for readability, precise micro-design and usability. And they simplify the multi-platform support by using similar widget dimensions. In addition, many people have reviewed them as elegant. com.jgoodies jgoodies-common 1.4.0 runtime junit junit 4.8 test The BSD License http://www.opensource.org/licenses/bsd-license.html JGoodies http://www.jgoodies.com/ karsten Karsten Lentzsch JGoodies http://www.jgoodies.com/ +0100 Project owner Developer JIRA http://java.net/jira/browse/LOOKS/ User List http://http://java.net/projects/looks/lists/users/archive users@looks.java.net scm:svn:https://svn.java.net/svn/looks~svn head https://svn.java.net/svn/looks~svn