Custom Property Editor
A Custom Property Editor provides support for GUIs that want to allow users to edit a property value of a given type.The beans architecture allows beans developers to create their own Custom Property Editors. Of course, VisualMust supports this facility, not only for its logical part but also for its visual part (it is not the case for most IDEs).
For further information about the logical part of a Custom Property Editor, you should refer to the JavaBeans(tm) architecture. This architecture offers the possibility of providing an IDE with a component it should use to set properties. This possibility is seldom, if ever, used by IDEs. VisualMust is able to insert your own Custom Property Editor components to set properties in its own architecture. Depending on the basis of this custom editor, the behavior of the VisualMust properties editor will be different : For a swing based custom editor, the component will be directly integrated into the properties table (like in the illustration above), for an AWT based one, the main container of it (generally a Panel) will be inserted into a dialog box.
The figure above shows how to set the Properties date, using a Custom Property Editor that will enhance user-friendliness. (JBCSolutions DateChooser bean).
The Control Panel shows the hierarchy of the application's components. Clicking an icon will cause the component associated to this icon to be displayed with selected-state emphasis. The Group Chooser as well as the Settings Area will be updated immediately according to the selected component.This instance can be quite handy when you have added a group of components in sequence and want to set their properties (eg the columns of a JTable or the RadioButtons of a group). You don't have to go back to your design and select the next object, selecting it in this instance is much more effective. Note that even if VisualMust gives to any component a unique name, your application (or applet) will be more readable afterwards if you change the name of the used objects (Bean Name property) to something more meaningful than «TableColumn34».
You can notice that the properties associated with the given object are classified and organized by groups. These groups (as the properties they hold) are subject to changes in accordance with the selected object itself or its context (don't be afraid if, after having set a given layout for a panel, all the elements it contains are given a constraints group). This splitting tries to be as intuitive as possible and allows the use of specific interfaces in some cases (colors). Don't hesitate to click on any of the proposed groups to see what related items are made accessible. When clicking Group Chooser, you may choose one of the available groups according to the selected component.
Much more facilities are available through the control panel or this instance. Your are highly encouraged to browse the "Control Panel" chapter to discover some more goodies.
The Events window hosts another instance of the control panel which offers the same facilities.
Group chooser and Settings Area
As stated before, the properties of a given component are grouped in different families, this avoids huge lists of unrelated elements (the alphabetical order would have mixed up all the stuff) and allows to propose a more suitable interface in much cases.
The predefined groups are identified in this area by the following icons. The way of setting the associated properties has been tailored for any of these possibilities.
Please note that some properties of any components are a function of its context. The list given below is exhaustive but may not be proposed for every piece of your GUI. This doesn't mean in any case that the list you can see at a moment will be the one you will see forever : If you modify the context of the object, its properties list will change and so will do the proposed group.In a generic way, any bean property that cannot be associated to any other group will be added to the General group. This group will offer you some rather handy editors to select the correct value you want to assign to a given property, but is also able to use a bean specific Custom Property Editor provided with the given bean if it is available (we can regret that, as this facility is not implemented in the vast majority of the interface builders available, only few beans providers offer such editors). The user-friendliness of this feature is given in this example using a JBCSolutions DateChooser bean (see the "Properties - Custom Property Editor " chapter). For the technically inclined, in that case, the bean itself is used as an editor for its properties...).
Group | Descriptions | |
![]() | General | In a generic way, any bean property that cannot be associated to any other group will be added to the General group. |
![]() | Colors | Allows you to set any color defined as accessible in the given bean. |
![]() | Fonts | Allows you to select the used font and offers you a sample for your selection. |
![]() | Bounds | This group of properties allows you to fine tune the size and location of your components. |
![]() | Group | This Settings area is correlated with the multiple-exclusion, toggle buttons. |
![]() | Regions | Will appear if the parent has been set a BorderLayout, or if the component is a JToolBar. |
![]() | Images | This Settings area contains all properties that handle images. |
![]() | Constraints | Will appear if the parent's layout supports positional information (eg GridbagLayout). |
![]() | Layout | Will appear it the given component supports layouts. (Any JPanel will exhibit this). |
![]() | Reset | Guess what ... |
![]() | ScrollPane | This group of properties allows you to fine tune the ScrollBar policy that has to be used. |
![]() | Bean Docs | This can retrieve the documentation coming with the bean. |
![]() | Customizer Dialog | Customizer Dialog and Custom Property Editor provide a complete custom GUI for customizing a target bean. |