JIDE Common Layer (Open Source Project)

As of April 2007, we decided to open source the JIDE Common Layer - the foundation of all JIDE other products. You can get the JIDE Common Layer release or access the github repository from github (it was formally hosted on java.net which is now discontinued). If you use maven for your project, all released versions of JIDE Common Layer are also available on the centeral maven repository through sonatype. If you are paid JIDE customers, the source code for JIDE Common Layer is always included in the release under src subfolder.

JIDE Common Layer has nearly 100k lines of code and over 30 components and utilities. It has been part of JIDE commercial products since 2002 so the quality and stability are quite high.

Licensing

JIDE Common Layer is dual-licensed. The two licenses are GPL with classpath exception (the same license as OpenJDK) and free commercial license. You can click on the links to see more information. The first license is the most widely used license among open source community. It is also the same license under which OpenJDK is open sourced. The second license is the original commercial license under which all other JIDE products are released, except it is free of charge in this case. We released under this license so that all existing paid JIDE customers don't have to switch to the open source license.

Technical Support

One of main issues in open source project is the lack of technical support. To address this issue, here is our support policy:

  • Documentation: All source codes are javadoc’ed. A developer guide is provided to describe how to use each component. A lot of examples can be downloaded to show you how to use components and classes in JIDE Common Layer.

  • Bug reports: We will have dedicated resource to work on the bugs based on the priority we decide. We also accept bug fixes from the community after reviewed by our staff.

  • Free community support: We provide a special forum so that you can get help from other people in the community. In order to encourage community, we will give away JIDE Developer License for those who actively participate in the discussion.

  • Paid technical support: If you think it’s critical to get the high quality support in a timely fashion, you can always purchase the Annual Maintenance Renewal for JIDE Common Layer #2090 from online store. For those who purchased JIDE commercial products, technical support for JIDE Common Layer is always included. Here is the JIDE Common Layer forum for paid customers.

Contribution

We are very flexible in accepting contributions from you as long as your own the copyright of the contribution. If you found a bug in our code, or would like to add a new feature, or introduce a new component, please feel free to contract support@jidesoft.com so that we can give you the check-in permission to the source code repository. We will code review the contribution and commit them. We will reward frequent contributors with free developer license of JIDE commercial products.

Features

UI Components

  • JideTabbedPane - an extended version of JTabbedPane supporting different tab shapes, color themes, shrinkable tabs, close button on tab, editable tab etc.
  • JideSplitPane - an extended version of JSplitPane supporting multiple splits (JSplitPane can only have two splits)
  • JideButton - an ideal replacement for a toolbar button
  • JideSplitButton - a composite component which is a combination of a button and a popup menu
  • Searchable JList, JTree, JComboBox and JTable - type in any text to quickly find matching rows, tree nodes, or table cells
  • SearchableBar - as seen in Mozilla Firefox
  • ResizablePanel, ResizableWindow and undecorated ResizableDialog
  • FolderChooser - allows you to choose a folder
  • RangeSlider - a slider which allows you to select two values to form a range
  • JideScrollPane - column and row footer support for JScrollPane
  • SimpleScrollPane - a scroll pane having four scroll buttons on the four sides.
  • Overlayable - to put a component on top of another component at a specified location in order to provide a hint about how to use a component, to provide a progress indicator or to provide a status indicator beside a component without affecting the existing layout.
  • AutoResizingTextArea - a text area that can automatically resize its height to fit in the content.
  • StyledLabel - A JLabel that support different fonts, colors, and decorative lines.
  • CheckBoxList and CheckBoxTree - use check boxes inside JLists and JTrees.
  • Calculator Component
  • DateSpinner and PointSpinner
  • Popup - support any popup window
  • AutoCompletion and IntelliHints
  • StandardDialog - built on top of JDialog to support common used dialog standards as well as adding missing standard features of any dialogs.
  • ButtonPanel - arrange buttons in different layouts with different gaps based on OS conventions
  • Pre-built panels such as BannerPanel
  • AbstractPage - lazy loading panel with page events (open, closing, closed, etc.), an ideal panel for building dialogs

Utility Classes

  • IconFactory - simplify and unify the usage of icons across the whole application
  • SystemInfo - a utility class which can be used to retrieve information about the current system, including OS name and version, JDK version requirement, etc.
  • A fast gradient paint method in JideSwingUtilities. By leveraging DirectDraw, the fast gradient paint is 2 to 40 times faster than normal GradientPaint.
Screenshots

JideTabbedPane
overlayable
Overlayable

JideButton with different styles

JideSplitButton with different styles

Fast GradientPaint

Searchable JList, JTree and JTable

Searchable Bar

FolderChooser
 

AutoCompletion Example 1

AutoCompletion
Example 2

Calculator

IntelliHints
Example 1

IntelliHints
Example 2

CheckBoxList

CheckBoxTree

RangeSlider

JideScrollPane and an example

StyledLabel

StyledLabelBuilder

MultiplePageDialog ICON_STYLE like Mozilla Firebird
(icons are not included)

MultiplePageDialog 
ICON_STYLE like IntelliJ IDEA
(icons are not included)

MultiplePageDialog
LIST_STYLE

MultiplePageDialog
TREE_STYLE

Banners