Child pages
  • What's New in UI Designer in Demetra
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

What's New in UI Designer in Demetra

New layout editing interface

  • Automatic creation of grids when components are dropped on the form. No more "Lay Out in Grid / Break Layout" actions.
  • Automatic insertion of grid cells when creating or moving components.
  • Improved visual feedback when creating or moving components.
  • Automatic deletion of empty grid cells after moving or deleting a component.
  • Possibility to modify row/col span of components in a grid container by drag&drop resizing.
  • Copying components by Ctrl-dragging.
  • Resizable column and row captions for grid containers.
  • Possibility to move grid rows and columns by drag & drop.
  • Possibility to choose insert destination on paste action.
  • Spacers are automatically added when the first component is dropped into a grid container.
  • If Shift key is held while adding or moving a component, the insets in design time are extended in order to make it easier to choose the correct drop location for the component.

Complete support for Swing features

  • Standard Swing layout managers supported:
    • GridBagLayout
    • GridLayout
    • CardLayout
    • BorderLayout
    • FlowLayout
    • BoxLayout
  • New property types supported:
    • Component
    • Icon,
    • Color
    • Font (with independent overriding of name, size and style)
    • ListModel, ComboBoxModel
    • Enum (Java 5)
  • New components in default palette: JSeparator, JProgressBar, JToolBar, JScrollBar.
  • Support for more border types (line and empty) and border properties (size, color, title color/font/position/justification).
  • Support for more properties of JTabbedPane tabs: enabled, icon, disabled icon, tooltip.
  • Design-time support for JToolBar.
  • Support for button groups.
  • Support for client properties, with the possibility to define which properties are available for a specific component class.
  • "Stub" table model shown in JTable instances in design time.

Layout support

  • Support for nested forms. A form which has a binding for a top-level component can be added to another form even if the class bound to the nested form is not a JComponent.
  • Support for indented components in GridLayoutManager (IntelliJ).
  • Support for "Align grid with parent" layout option in GridLayoutManager (IntelliJ).
  • Placement of components within grid cells is defined by "Horizontal Align" and "Vertical Align" properties, instead of Anchor and Fill.

Code Generation

  • Support for custom component creation (components created by arbitrary Java code and not by a default constructor).
  • ASM library used instead of BCEL for bytecode instrumentation.

JGoodies Forms support

  • Support for FormLayout layout manager.
  • Automatic insertion and deletion of gap rows and columns.
  • Possibility to edit FormLayout-specific properties of a row or column by selecting the respective row or column caption.
  • Support for grouping rows or columns to keep their size equal.
  • Possibility to convert from other layout managers to JGoodies Forms.

Form Snapshots

  • Possibility to capture part of the UI of a running Swing application as an UI Designer form.

UI Inspections

  • Missing mnemonic
    • Quickfix: Assign mnemonic
  • Duplicate mnemonic
    • Quickfix: Assign unique mnemonic
  • Radio button not in a group
    • Quickfix: Group adjacent buttons
    • Quickfix: Add to existing group
  • Button group with one button
  • No label for component
  • Scrollable component not in ScrollPane
  • Assignment to UI-bound field (in Java code)
  • Support for inspection suppressions

New Actions

  • Increase/decrease indent (Tab, Shift-Tab)
  • Surround With (Ctrl-Alt-T) - wraps the selected components in a JPanel, JScrollPane, JSplitPane or JTabbedPane.
  • Flatten - the reverse of Surround With. Deletes a container and moves the components that were in the container to the container's parent.
  • Duplicate (Ctrl-D) - creates a copy of selected components in the next row of the grid.
  • Morph - changes the component to a component of a different class while preserving the values of common properties.
  • Choose Locale - selects the locale used to load values of string properties from property files.
  • Group/Ungroup Buttons - create or delete ButtonGroups for JRadioButtons.
  • Show Grid - toggles visibility of the grid in the designer.
  • Show Component Tags - toggles visibility of component tags (showing the field name and type) on large size controls.
  • Generate / Form 'main' (in a Java class) - if the class is bound to a UI form, generates a default main() method for instantiating a JFrame and showing the form in it.

Listener Support

  • "Navigate to Listener" action (Ctrl-Alt-B) - moves from a component on an UI form to a listener attached to it in a Java class
  • "Create Listener" action (Ctrl-O) - generates an anonymous listener class for the component selected in the form.

Interface Improvements

  • New palette implementation, with full drag & drop support and in-place editing.
  • Possibility to drop components into a form without adding the component class to the palette ("Non-Palette Component..." option in the palette).
  • Component tree and property inspector moved to a toolwindow.
  • Drag&drop support in the component tree.
  • Highlighting for modified properties with possibility to restore the default value of a modified property.
  • Possibility to edit the properties of multiselected components.
  • Possibility to edit the values of composite properties (Dimension, Insets) as text.
  • Names of bound fields can be automatically generated from component text.
  • Assorted minor usability and functionality improvements.

Keyboard Support

  • Possibility to create components from keyboard (Alt+Ins, choose component class, choose insert location)
  • Possibility to paste components from keyboard (Ctrl+V, then arrows or Shift+arrows)
  • Possibility to select components from keyboard (arrows, Shift+arrows)
  • Possibility to move components in a grid (Ctrl+arrows) and resize components (Ctrl+Shift+arrows).
  • No labels