branch develop updated (738b17c -> 6edbfbd)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git from 738b17c fixes #3668: Allow to use Diamond in java files Merge branch 'feature/3668' into develop new 5ea44c5 - introduce module jaxx-runtime-api and jaxx-swing-extra - split jaxx-runtime in those modules - begin of package migration new 0c48764 refs #3663 begin of migration documentation new 6edbfbd fixes #3663: Extract a minimal runtime module used in generation Merge branch 'feature/3663' into develop The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 6edbfbdd827000e75dbaa755e1e60493267184c3 Merge: 738b17c 0c48764 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Apr 12 15:45:59 2015 +0200 fixes #3663: Extract a minimal runtime module used in generation Merge branch 'feature/3663' into develop commit 0c487641d9ee98986a15b5df821350b12bd8b2f7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Apr 12 15:45:54 2015 +0200 refs #3663 begin of migration documentation commit 5ea44c53230a5db3f7c006cf26e5e60afab19fa7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 6 15:18:29 2015 +0200 - introduce module jaxx-runtime-api and jaxx-swing-extra - split jaxx-runtime in those modules - begin of package migration Summary of changes: jaxx-application-swing/pom.xml | 9 +- .../swing/AbstractApplicationUIHandler.java | 24 +- .../jaxx/application/swing/ApplicationUI.java | 2 +- .../swing/action/AbstractApplicationAction.java | 2 +- .../swing/action/ApplicationActionUI.jaxx | 2 +- .../swing/action/ApplicationActionUIHandler.java | 4 +- .../jaxx/application/swing/tab/CustomTab.java | 4 +- .../swing/table/AbstractApplicationTableModel.java | 6 +- .../application/swing/util/ApplicationUIUtil.java | 4 +- jaxx-compiler/pom.xml | 8 +- .../main/java/jaxx/compiler/CompiledObject.java | 4 +- .../java/jaxx/compiler/CompilerConfiguration.java | 4 +- .../compiler/DefaultCompilerConfiguration.java | 6 +- .../src/main/java/jaxx/compiler/I18nHelper.java | 6 +- .../src/main/java/jaxx/compiler/JAXXCompiler.java | 12 +- .../src/main/java/jaxx/compiler/JAXXEngine.java | 3 +- .../java/jaxx/compiler/binding/DataSource.java | 17 +- .../binding/writers/AbstractJAXXBindingWriter.java | 2 +- .../binding/writers/DefaultJAXXBindingWriter.java | 2 +- .../binding/writers/JAXXBindingWriter.java | 2 +- .../writers/SimpleJAXXObjectBindingWriter.java | 2 +- .../java/jaxx/compiler/css/StylesheetHelper.java | 10 +- .../decorators/BoxedCompiledObjectDecorator.java | 4 +- .../HelpRootCompiledObjectDecorator.java | 2 +- .../jaxx/compiler/finalizers/DefaultFinalizer.java | 27 +- .../jaxx/compiler/finalizers/SwingFinalizer.java | 2 +- .../compiler/finalizers/ValidatorFinalizer.java | 4 +- .../jaxx/compiler/reflect/ClassDescriptor.java | 2 +- .../compiler/reflect/ClassDescriptorHelper.java | 4 +- .../ClassDescriptorResolverFromJavaClass.java | 2 +- .../ClassDescriptorResolverFromJavaFile.java | 4 +- .../ClassDescriptorResolverFromJaxxFile.java | 4 +- .../java/jaxx/compiler/spi/DefaultInitializer.java | 23 +- .../compiler/tags/DefaultComponentHandler.java | 13 +- .../jaxx/compiler/tags/DefaultObjectHandler.java | 10 +- .../main/java/jaxx/compiler/tags/StyleHandler.java | 2 +- .../compiler/tags/swing/ApplicationHandler.java | 2 +- .../compiler/tags/swing/CompiledItemContainer.java | 2 +- .../java/jaxx/compiler/tags/swing/ItemHandler.java | 2 +- .../compiler/tags/swing/JAXXComboBoxHandler.java | 7 +- .../jaxx/compiler/tags/swing/JAXXListHandler.java | 8 +- .../jaxx/compiler/tags/swing/JAXXTreeHandler.java | 7 +- .../compiler/tags/swing/JRadioButtonHandler.java | 2 +- .../compiler/tags/swing/JTabbedPaneHandler.java | 4 +- .../compiler/tags/swing/JTextComponentHandler.java | 4 +- .../java/jaxx/compiler/tags/swing/RowHandler.java | 2 +- .../java/jaxx/compiler/tags/swing/TabHandler.java | 2 +- .../jaxx/compiler/tags/swing/TableHandler.java | 2 +- .../compiler/tasks/GenerateConstructorsTask.java | 6 +- .../java/jaxx/compiler/tags/TagManagerTest.java | 4 +- jaxx-config/pom.xml | 14 +- .../swing/config/ConfigCallBackUIHandler.java | 4 +- .../jaxx/runtime/swing/config/ConfigCategoryUI.css | 2 +- .../runtime/swing/config/ConfigCategoryUI.jaxx | 2 + .../swing/config/ConfigCategoryUIHandler.java | 24 +- .../runtime/swing/config/ConfigTableEditor.java | 12 +- .../jaxx/runtime/swing/config/ConfigUIHandler.java | 10 +- .../jaxx/runtime/swing/config/ConfigUIHelper.java | 6 +- .../runtime/swing/config/model/CategoryModel.java | 4 +- .../runtime/swing/config/model/ConfigUIModel.java | 4 +- .../swing/config/model/MyDelegateConfigTest.java | 9 +- .../swing/config/model/MyInheritedConfigTest.java | 9 +- jaxx-demo/pom.xml | 12 + .../java/jaxx/demo/DemoApplicationContext.java | 14 +- jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java | 4 +- .../src/main/java/jaxx/demo/DemoHelpBroker.java | 18 +- jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx | 6 +- .../main/java/jaxx/demo/DemoSourcesHandler.java | 8 +- jaxx-demo/src/main/java/jaxx/demo/DemoUI.css | 2 +- jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx | 2 +- .../src/main/java/jaxx/demo/DemoUIHandler.java | 33 +- .../demo/component/jaxx/BoxedDecoratorDemo.css | 8 +- .../demo/component/jaxx/BoxedDecoratorDemo.jaxx | 17 +- .../jaxx/editor/BeanComboBoxDemoHandler.java | 2 +- .../jaxx/editor/BeanDoubleListDemoHandler.java | 2 +- .../editor/BeanFilterableComboBoxDemoHandler.java | 2 +- .../component/jaxx/editor/ComboEditorDemo.jaxx | 3 + .../component/jaxx/editor/ListSelectorDemo.jaxx | 2 +- .../jaxx/editor/SimpleTimeEditorDemoHandler.java | 2 +- .../jaxx/editor/gis/CoordinateDemoHandler.java | 2 +- .../datetime/DateTimeEditorDemoHandler.java | 2 +- .../widgets/datetime/TimeEditorDemoHandler.java | 2 +- .../widgets/gis/CoordinatesEditorDemoHandler.java | 2 +- .../widgets/number/NumberEditorDemoHandler.java | 2 +- .../select/FilterableDoubleListDemoHandler.java | 2 +- .../feature/databinding/BindingExtremeDemo.jaxx | 2 +- .../main/java/jaxx/demo/feature/nav/NavDemo.jaxx | 3 + .../java/jaxx/demo/feature/nav/NavDemoHandler.java | 14 +- .../demo/feature/nav/content/ActorContentUI.jaxx | 5 +- .../demo/feature/nav/content/ActorsContentUI.jaxx | 4 +- .../demo/feature/nav/content/MovieContentUI.jaxx | 5 +- .../demo/feature/nav/content/MoviesContentUI.jaxx | 2 +- .../list/ListBeanValidationDemoHandler.java | 8 +- .../feature/validation/list/PeopleTableModel.java | 16 +- jaxx-maven-plugin/pom.xml | 2 +- .../java/org/nuiton/jaxx/plugin/GenerateMojo.java | 12 +- .../java/org/nuiton/jaxx/plugin/Bug1124Test.java | 7 +- .../java/org/nuiton/jaxx/plugin/Bug1404Test.java | 8 +- .../java/org/nuiton/jaxx/plugin/Bug1750Test.java | 11 +- .../java/org/nuiton/jaxx/plugin/CompilerTest.java | 2 +- .../java/org/nuiton/jaxx/plugin/DecoratorTest.java | 2 +- .../java/org/nuiton/jaxx/plugin/JaxxBaseTest.java | 2 +- LICENSE.txt => jaxx-runtime-api/LICENSE.txt | 0 README.txt => jaxx-runtime-api/README.txt | 0 {jaxx-runtime => jaxx-runtime-api}/changelog.txt | 0 {jaxx-runtime => jaxx-runtime-api}/pom.xml | 48 +- .../src/license/THIRD-PARTY.properties | 0 .../org/nuiton/jaxx/runtime/api}/JAXXObject.java | 5 +- .../org/nuiton/jaxx/runtime/api/JAXXRuntime.java | 183 +++ .../jaxx/runtime/api}/context/DataContext.java | 7 +- .../api}/context/DefaultApplicationContext.java | 3 +- .../runtime/api}/context/DefaultJAXXContext.java | 10 +- .../jaxx/runtime/api/context}/JAXXContext.java | 4 +- .../runtime/api}/context/JAXXContextEntryDef.java | 4 +- .../jaxx/runtime/api/context/JAXXContexts.java | 122 ++ .../runtime/api}/context/JAXXInitialContext.java | 5 +- .../jaxx/runtime/api/internal/EventListeners.java | 157 +++ .../internal}/awt/visitor/BuildTreeVisitor.java | 2 +- .../internal}/awt/visitor/ComponentTreeNode.java | 2 +- .../awt/visitor/ComponentTreeNodeVisitor.java | 2 +- .../awt/visitor/DebugComponentTreeNodeVisitor.java | 2 +- .../awt/visitor/GetCompopentAtPointVisitor.java | 2 +- .../runtime/api/internal}/awt/visitor/package.html | 0 .../api/internal/binding}/DataBindingListener.java | 4 +- .../binding}/DataBindingUpdateListener.java | 4 +- .../api/internal}/binding/DefaultJAXXBinding.java | 8 +- .../runtime/api/internal/binding}/JAXXBinding.java | 4 +- .../runtime/api/internal/binding/JAXXBindings.java | 198 ++++ .../internal}/binding/SimpleJAXXObjectBinding.java | 4 +- .../runtime/api/internal}/css/DataBinding.java | 2 +- .../runtime/api/internal}/css/Pseudoclasses.java | 4 +- .../jaxx/runtime/api/internal}/css/Rule.java | 2 +- .../jaxx/runtime/api/internal}/css/Selector.java | 2 +- .../jaxx/runtime/api/internal}/css/Stylesheet.java | 2 +- .../api/internal/descriptor}/Base64Coder.java | 2 +- .../internal/descriptor}/ComponentDescriptor.java | 2 +- .../internal/descriptor}/JAXXObjectDescriptor.java | 5 +- .../internal/descriptor/JAXXObjectDescriptors.java | 44 + .../jaxx/runtime/api/spi}/BeanTypeAware.java | 4 +- .../nuiton/jaxx/runtime/api}/spi/UIHandler.java | 4 +- .../jaxx/runtime/api}/swing/Application.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/HBox.java | 2 +- .../jaxx/runtime/api}/swing/HBoxBeanInfo.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/HBoxLayout.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/Item.java | 2 +- .../jaxx/runtime/api}/swing/JAXXButtonGroup.java | 2 +- .../jaxx/runtime/api}/swing/JAXXComboBox.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXList.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXTab.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXTree.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/TabInfo.java | 2 +- .../api}/swing/TabInfoPropertyChangeListener.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/Table.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/VBox.java | 2 +- .../jaxx/runtime/api}/swing/VBoxBeanInfo.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/VBoxLayout.java | 2 +- .../runtime/api}/swing/help/JAXXHelpBroker.java | 14 +- .../jaxx/runtime/api}/swing/help/JAXXHelpUI.java | 2 +- .../runtime/api}/swing/help/JAXXHelpUIHandler.java | 4 +- .../src/site/site.xml | 0 .../api}/context/DataContextEntryIteratorTest.java | 12 +- .../context/DefaultApplicationContextTest.java | 13 +- .../api}/context/DefaultJAXXContextTest.java | 3 +- .../runtime/api/internal/EventListenersTest.java | 8 +- jaxx-runtime/pom.xml | 38 +- .../main/java/jaxx/runtime/FileChooserUtil.java | 2 +- .../src/main/java/jaxx/runtime/JAXXAction.java | 4 +- .../src/main/java/jaxx/runtime/JAXXUtil.java | 532 +-------- .../src/main/java/jaxx/runtime/SwingUtil.java | 1247 +------------------- .../src/main/java/jaxx/runtime/swing/JTables.java | 117 -- .../runtime/swing/editor/MyDefaultCellEditor.java | 2 + .../runtime/swing/wizard/BusyChangeListener.java | 2 +- .../jaxx/runtime/swing/wizard/WizardModel.java | 6 +- .../jaxx/runtime/swing/wizard/WizardUILancher.java | 15 +- .../swing/wizard/ext/WizardExtStepModel.java | 4 +- LICENSE.txt => jaxx-swing-extra/LICENSE.txt | 0 README.txt => jaxx-swing-extra/README.txt | 0 {jaxx-runtime => jaxx-swing-extra}/changelog.txt | 0 {jaxx-runtime => jaxx-swing-extra}/pom.xml | 25 +- .../src/license/THIRD-PARTY.properties | 0 .../nuiton/jaxx/swing/extra}/ComponentMover.java | 2 +- .../nuiton/jaxx/swing/extra}/ComponentResizer.java | 2 +- .../java/org/nuiton/jaxx/swing/extra/Desktops.java | 135 +++ .../java/org/nuiton/jaxx/swing/extra/Icons.java | 78 ++ .../org/nuiton/jaxx/swing/extra/JComboBoxes.java | 99 ++ .../java/org/nuiton/jaxx/swing/extra/JLists.java | 56 + .../org/nuiton/jaxx/swing/extra/JTabbedPanes.java | 34 + .../java/org/nuiton/jaxx/swing/extra/JTables.java | 466 ++++++++ .../java/org/nuiton/jaxx/swing/extra/JTrees.java | 78 ++ .../java/org/nuiton/jaxx/swing/extra/JXLayers.java | 76 ++ .../nuiton/jaxx/swing/extra}/JaxxFileChooser.java | 2 +- .../jaxx/swing/extra/PropertyChangeListeners.java | 61 + .../java/org/nuiton/jaxx/swing/extra/Swings.java | 246 ++++ .../jaxx/swing/extra/combobox}/ComboBoxModel2.java | 2 +- .../extra/combobox}/ComboBoxSelectionEvent.java | 2 +- .../extra/combobox}/JaxxDefaultComboBoxModel.java | 2 +- .../combobox}/JaxxFilterableComboBoxModel.java | 11 +- .../combobox}/WillChangeSelectedItemListener.java | 2 +- .../WillChangeSelectedItemVetoException.java | 2 +- .../jaxx/swing/extra}/editor/ColorCellEditor.java | 2 +- .../jaxx/swing/extra}/editor/EnumEditor.java | 10 +- .../swing/extra/editor}/KeyStrokeCellEditor.java | 3 +- .../jaxx/swing/extra}/editor/KeyStrokeEditor.java | 8 +- .../jaxx/swing/extra}/editor/LocaleEditor.java | 2 +- .../jaxx/swing/extra/layer}/BlockingLayerUI.java | 2 +- .../jaxx/swing/extra/layer}/BlockingLayerUI2.java | 2 +- .../jaxx/swing/extra/layout}/CardLayout2.java | 2 +- .../jaxx/swing/extra/layout}/CardLayout2Ext.java | 4 +- .../swing/extra/list}/JaxxDefaultListModel.java | 2 +- .../swing/extra/list}/JaxxFilterableListModel.java | 2 +- .../list}/renderer/DecoratorListCellRenderer.java | 2 +- .../DecoratorProviderListCellRenderer.java | 2 +- .../FilteredDecoratorListCellRenderer.java | 11 +- .../list}/renderer/LocaleListCellRenderer.java | 10 +- .../renderer/MultiDecoratorListCellRenderer.java | 2 +- .../jaxx/swing/extra}/session/JSplitPaneState.java | 2 +- .../swing/extra}/session/JTabbedPaneState.java | 2 +- .../jaxx/swing/extra}/session/JTableState.java | 3 +- .../extra}/session/JXTableSwingSessionState.java | 3 +- .../nuiton/jaxx/swing/extra}/session/State.java | 2 +- .../jaxx/swing/extra}/session/SwingSession.java | 2 +- .../jaxx/swing/extra}/session/WindowState.java | 2 +- .../swing/extra/tabbedpane/TabbedPaneIterator.java | 93 ++ .../swing/extra/table}/editor/ClassCellEditor.java | 2 +- .../extra/table}/renderer/BooleanCellRenderer.java | 2 +- .../table}/renderer/ClassTableCellRenderer.java | 2 +- .../extra/table}/renderer/ColorCellRenderer.java | 2 +- .../DecoratorProviderTableCellRenderer.java | 2 +- .../renderer/DecoratorTableCellRenderer.java | 4 +- .../renderer/EmptyNumberTableCellRenderer.java | 2 +- .../table}/renderer/EnumTableCellRenderer.java | 2 +- .../table}/renderer/I18nTableCellRenderer.java | 2 +- .../renderer/MultiDecoratorTableCelleRenderer.java | 2 +- .../src/site/site.xml | 0 jaxx-validator/pom.xml | 14 +- .../SimpleBeanValidatorMessageTableModel.java | 12 +- .../swing/SwingListValidatorMessageTableModel.java | 12 +- ...wingListValidatorMessageTableMouseListener.java | 4 +- .../swing/SwingListValidatorMessageWidget.java | 12 +- .../swing/SwingValidatorMessageTableModel.java | 12 +- .../swing/SwingValidatorMessageWidget.java | 14 +- .../validator/swing/SwingValidatorUtil.java | 25 +- .../validator/swing/ui/IconValidationUI.java | 1 - .../validator/swing/ui/ImageValidationUI.java | 1 - .../swing/ui/TranslucentValidationUI.java | 1 - .../unified/UnifiedValidatorMessageTableModel.java | 12 +- .../UnifiedValidatorMessageTableMouseListener.java | 4 +- .../swing/unified/UnifiedValidatorMessageUtil.java | 10 +- .../unified/UnifiedValidatorMessageWidget.java | 12 +- .../src/main/resources/icons/error.png | Bin .../src/main/resources/icons/fatal.png | Bin .../src/main/resources/icons/info.png | Bin .../src/main/resources/icons/warning.png | Bin jaxx-widgets-common/pom.xml | 2 +- .../nuiton/jaxx/widgets/DecoratorPopupHandler.java | 2 +- jaxx-widgets-datetime/pom.xml | 10 +- .../widgets/datetime/DateTimeEditorHandler.java | 2 +- .../jaxx/widgets/datetime/TimeEditorHandler.java | 2 +- .../datetime/session/DateTimeEditorState.java | 2 +- .../widgets/datetime/session/TimeEditorState.java | 2 +- jaxx-widgets-gis/pom.xml | 8 +- .../AbsoluteDdCoordinateEditorHandler.java | 2 +- .../AbsoluteDmdCoordinateEditorHandler.java | 2 +- .../AbsoluteDmsCoordinateEditorHandler.java | 2 +- .../widgets/gis/absolute/CoordinatesEditor.jaxx | 2 +- .../gis/absolute/CoordinatesEditorHandler.java | 2 +- .../signed/SignedDdCoordinateEditorHandler.java | 2 +- .../signed/SignedDmdCoordinateEditorHandler.java | 2 +- .../signed/SignedDmsCoordinateEditorHandler.java | 2 +- .../absolute/AbsoluteDdCoordinateEditorTest.java | 4 +- .../absolute/AbsoluteDmsCoordinateEditorTest.java | 4 +- jaxx-widgets-number/pom.xml | 8 +- .../jaxx/widgets/number/NumberEditorHandler.java | 2 +- jaxx-widgets-select/pom.xml | 8 +- .../jaxx/widgets/select/FilterableDoubleList.jaxx | 2 +- .../select/FilterableDoubleListHandler.java | 14 +- .../widgets/select/FilterableDoubleListModel.java | 4 +- .../select/session/FilterableDoubleListState.java | 2 +- jaxx-widgets/pom.xml | 14 + .../main/java/jaxx/runtime/swing/AboutPanel.jaxx | 15 +- .../java/jaxx/runtime/swing/AboutPanelHandler.java | 13 +- .../jaxx/runtime/swing/ComboToListSelector.jaxx | 5 +- .../jaxx/runtime/swing/ErrorDialogUIHandler.java | 8 +- .../main/java/jaxx/runtime/swing/FontSizor.jaxx | 2 +- .../java/jaxx/runtime/swing/FontSizorHandler.java | 2 +- .../main/java/jaxx/runtime/swing/HidorButton.jaxx | 7 +- .../java/jaxx/runtime/swing/JAXXWidgetUtil.java | 7 +- .../java/jaxx/runtime/swing/JSearchTextField.java | 9 +- .../jaxx/runtime/swing/ListToListSelector.jaxx | 5 +- .../java/jaxx/runtime/swing/editor/I18nEditor.jaxx | 8 +- .../runtime/swing/editor/I18nEditorHandler.java | 2 +- .../runtime/swing/editor/bean/BeanComboBox.jaxx | 4 +- .../swing/editor/bean/BeanComboBoxHandler.java | 8 +- .../runtime/swing/editor/bean/BeanDoubleList.jaxx | 2 +- .../swing/editor/bean/BeanDoubleListHandler.java | 14 +- .../swing/editor/bean/BeanDoubleListModel.java | 4 +- .../swing/editor/bean/BeanFilterableComboBox.jaxx | 4 +- .../editor/bean/BeanFilterableComboBoxHandler.java | 14 +- .../runtime/swing/editor/bean/BeanListHeader.css | 2 +- .../runtime/swing/editor/bean/BeanListHeader.jaxx | 2 +- .../swing/editor/bean/BeanListHeaderHandler.java | 4 +- .../jaxx/runtime/swing/editor/bean/BeanUIUtil.java | 4 +- .../swing/editor/cell/NumberCellEditor.java | 5 +- .../editor/gis/DmdCoordinateEditorHandler.java | 2 +- .../editor/gis/DmsCoordinateEditorHandler.java | 2 +- .../filter/DefaultFilterableCheckListModel.java | 4 +- .../jaxx/runtime/swing/log/JAXXLog4jHandler.java | 31 +- .../runtime/swing/session/BeanDoubleListState.java | 2 +- .../swing/session/BeanFilterableComboBoxState.java | 1 + .../table/filter/FilterTableHeaderRenderer.java | 4 +- .../table/filter/TableAwareCheckListRenderer.java | 5 +- .../swing/table/filter/TableFilterColumnPopup.java | 9 +- pom.xml | 6 +- src/site/rst/JAXXContext.rst | 8 +- src/site/rst/NavigationModel.rst | 4 +- src/site/rst/index.rst | 2 +- src/site/rst/migrate_v3.rst | 92 ++ src/site/rst/migration.rst | 2 +- src/site/rst/old-compiler-doc/JAXXContext.rst | 8 +- .../rst/old-compiler-doc/NavigationTreeModel.rst | 2 +- 320 files changed, 3053 insertions(+), 2669 deletions(-) copy LICENSE.txt => jaxx-runtime-api/LICENSE.txt (100%) copy README.txt => jaxx-runtime-api/README.txt (100%) copy {jaxx-runtime => jaxx-runtime-api}/changelog.txt (100%) copy {jaxx-runtime => jaxx-runtime-api}/pom.xml (68%) copy {jaxx-runtime => jaxx-runtime-api}/src/license/THIRD-PARTY.properties (100%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/JAXXObject.java (97%) create mode 100644 jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/JAXXRuntime.java rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/context/DataContext.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/context/DefaultApplicationContext.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/context/DefaultJAXXContext.java (96%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context}/JAXXContext.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/context/JAXXContextEntryDef.java (98%) create mode 100644 jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContexts.java rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/context/JAXXInitialContext.java (97%) create mode 100644 jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/EventListeners.java rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/awt/visitor/BuildTreeVisitor.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/awt/visitor/ComponentTreeNode.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/awt/visitor/ComponentTreeNodeVisitor.java (94%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/awt/visitor/DebugComponentTreeNodeVisitor.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/awt/visitor/GetCompopentAtPointVisitor.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/awt/visitor/package.html (100%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding}/DataBindingListener.java (95%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding}/DataBindingUpdateListener.java (95%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/binding/DefaultJAXXBinding.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding}/JAXXBinding.java (94%) create mode 100644 jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/JAXXBindings.java rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/binding/SimpleJAXXObjectBinding.java (96%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/css/DataBinding.java (96%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/css/Pseudoclasses.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/css/Rule.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/css/Selector.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal}/css/Stylesheet.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor}/Base64Coder.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor}/ComponentDescriptor.java (96%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor}/JAXXObjectDescriptor.java (93%) create mode 100644 jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/JAXXObjectDescriptors.java rename {jaxx-runtime/src/main/java/jaxx/runtime/bean => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/spi}/BeanTypeAware.java (95%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/spi/UIHandler.java (91%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/Application.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/HBox.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/HBoxBeanInfo.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/HBoxLayout.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/Item.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/JAXXButtonGroup.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/JAXXComboBox.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/JAXXList.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/JAXXTab.java (95%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/JAXXTree.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/TabInfo.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/TabInfoPropertyChangeListener.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/Table.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/VBox.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/VBoxBeanInfo.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/VBoxLayout.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/help/JAXXHelpBroker.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/help/JAXXHelpUI.java (96%) rename {jaxx-runtime/src/main/java/jaxx/runtime => jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api}/swing/help/JAXXHelpUIHandler.java (90%) copy {jaxx-runtime => jaxx-runtime-api}/src/site/site.xml (100%) rename {jaxx-runtime/src/test/java/jaxx/runtime => jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api}/context/DataContextEntryIteratorTest.java (95%) rename {jaxx-runtime/src/test/java/jaxx/runtime => jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api}/context/DefaultApplicationContextTest.java (93%) rename {jaxx-runtime/src/test/java/jaxx/runtime => jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api}/context/DefaultJAXXContextTest.java (99%) rename jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java => jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/internal/EventListenersTest.java (81%) delete mode 100644 jaxx-runtime/src/main/java/jaxx/runtime/swing/JTables.java copy LICENSE.txt => jaxx-swing-extra/LICENSE.txt (100%) copy README.txt => jaxx-swing-extra/README.txt (100%) copy {jaxx-runtime => jaxx-swing-extra}/changelog.txt (100%) copy {jaxx-runtime => jaxx-swing-extra}/pom.xml (88%) copy {jaxx-runtime => jaxx-swing-extra}/src/license/THIRD-PARTY.properties (100%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/ComponentMover.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/ComponentResizer.java (99%) create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Desktops.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Icons.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JComboBoxes.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JLists.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTabbedPanes.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTables.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTrees.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java rename {jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/JaxxFileChooser.java (99%) create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/PropertyChangeListeners.java create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox}/ComboBoxModel2.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox}/ComboBoxSelectionEvent.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox}/JaxxDefaultComboBoxModel.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox}/JaxxFilterableComboBoxModel.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox}/WillChangeSelectedItemListener.java (96%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox}/WillChangeSelectedItemVetoException.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/editor/ColorCellEditor.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/editor/EnumEditor.java (93%) rename {jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor}/KeyStrokeCellEditor.java (95%) rename {jaxx-widgets/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/editor/KeyStrokeEditor.java (92%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/editor/LocaleEditor.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer}/BlockingLayerUI.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer}/BlockingLayerUI2.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout}/CardLayout2.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout}/CardLayout2Ext.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list}/JaxxDefaultListModel.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing/model => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list}/JaxxFilterableListModel.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list}/renderer/DecoratorListCellRenderer.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list}/renderer/DecoratorProviderListCellRenderer.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list}/renderer/FilteredDecoratorListCellRenderer.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list}/renderer/LocaleListCellRenderer.java (92%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list}/renderer/MultiDecoratorListCellRenderer.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/session/JSplitPaneState.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/session/JTabbedPaneState.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/session/JTableState.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/session/JXTableSwingSessionState.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/session/State.java (95%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/session/SwingSession.java (99%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra}/session/WindowState.java (99%) create mode 100644 jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/tabbedpane/TabbedPaneIterator.java rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/editor/ClassCellEditor.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/BooleanCellRenderer.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/ClassTableCellRenderer.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/ColorCellRenderer.java (96%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/DecoratorProviderTableCellRenderer.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/DecoratorTableCellRenderer.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/EmptyNumberTableCellRenderer.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/EnumTableCellRenderer.java (97%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/I18nTableCellRenderer.java (98%) rename {jaxx-runtime/src/main/java/jaxx/runtime/swing => jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table}/renderer/MultiDecoratorTableCelleRenderer.java (98%) copy {jaxx-runtime => jaxx-swing-extra}/src/site/site.xml (100%) rename {jaxx-runtime => jaxx-validator}/src/main/resources/icons/error.png (100%) rename {jaxx-runtime => jaxx-validator}/src/main/resources/icons/fatal.png (100%) rename {jaxx-runtime => jaxx-validator}/src/main/resources/icons/info.png (100%) rename {jaxx-runtime => jaxx-validator}/src/main/resources/icons/warning.png (100%) create mode 100644 src/site/rst/migrate_v3.rst -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit 5ea44c53230a5db3f7c006cf26e5e60afab19fa7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 6 15:18:29 2015 +0200 - introduce module jaxx-runtime-api and jaxx-swing-extra - split jaxx-runtime in those modules - begin of package migration --- jaxx-application-swing/pom.xml | 9 +- .../swing/AbstractApplicationUIHandler.java | 24 +- .../jaxx/application/swing/ApplicationUI.java | 2 +- .../swing/action/AbstractApplicationAction.java | 2 +- .../swing/action/ApplicationActionUI.jaxx | 2 +- .../swing/action/ApplicationActionUIHandler.java | 4 +- .../jaxx/application/swing/tab/CustomTab.java | 4 +- .../swing/table/AbstractApplicationTableModel.java | 6 +- .../application/swing/util/ApplicationUIUtil.java | 4 +- jaxx-compiler/pom.xml | 8 +- .../main/java/jaxx/compiler/CompiledObject.java | 4 +- .../java/jaxx/compiler/CompilerConfiguration.java | 4 +- .../compiler/DefaultCompilerConfiguration.java | 6 +- .../src/main/java/jaxx/compiler/I18nHelper.java | 6 +- .../src/main/java/jaxx/compiler/JAXXCompiler.java | 12 +- .../src/main/java/jaxx/compiler/JAXXEngine.java | 3 +- .../java/jaxx/compiler/binding/DataSource.java | 17 +- .../binding/writers/AbstractJAXXBindingWriter.java | 2 +- .../binding/writers/DefaultJAXXBindingWriter.java | 2 +- .../binding/writers/JAXXBindingWriter.java | 2 +- .../writers/SimpleJAXXObjectBindingWriter.java | 2 +- .../java/jaxx/compiler/css/StylesheetHelper.java | 10 +- .../decorators/BoxedCompiledObjectDecorator.java | 4 +- .../HelpRootCompiledObjectDecorator.java | 2 +- .../jaxx/compiler/finalizers/DefaultFinalizer.java | 27 +- .../jaxx/compiler/finalizers/SwingFinalizer.java | 2 +- .../compiler/finalizers/ValidatorFinalizer.java | 4 +- .../jaxx/compiler/reflect/ClassDescriptor.java | 2 +- .../compiler/reflect/ClassDescriptorHelper.java | 4 +- .../ClassDescriptorResolverFromJavaClass.java | 2 +- .../ClassDescriptorResolverFromJavaFile.java | 4 +- .../ClassDescriptorResolverFromJaxxFile.java | 4 +- .../java/jaxx/compiler/spi/DefaultInitializer.java | 23 +- .../compiler/tags/DefaultComponentHandler.java | 13 +- .../jaxx/compiler/tags/DefaultObjectHandler.java | 10 +- .../main/java/jaxx/compiler/tags/StyleHandler.java | 2 +- .../compiler/tags/swing/ApplicationHandler.java | 2 +- .../compiler/tags/swing/CompiledItemContainer.java | 2 +- .../java/jaxx/compiler/tags/swing/ItemHandler.java | 2 +- .../compiler/tags/swing/JAXXComboBoxHandler.java | 7 +- .../jaxx/compiler/tags/swing/JAXXListHandler.java | 8 +- .../jaxx/compiler/tags/swing/JAXXTreeHandler.java | 7 +- .../compiler/tags/swing/JRadioButtonHandler.java | 2 +- .../compiler/tags/swing/JTabbedPaneHandler.java | 4 +- .../compiler/tags/swing/JTextComponentHandler.java | 4 +- .../java/jaxx/compiler/tags/swing/RowHandler.java | 2 +- .../java/jaxx/compiler/tags/swing/TabHandler.java | 2 +- .../jaxx/compiler/tags/swing/TableHandler.java | 2 +- .../compiler/tasks/GenerateConstructorsTask.java | 6 +- .../java/jaxx/compiler/tags/TagManagerTest.java | 4 +- jaxx-config/pom.xml | 14 +- .../swing/config/ConfigCallBackUIHandler.java | 4 +- .../jaxx/runtime/swing/config/ConfigCategoryUI.css | 2 +- .../runtime/swing/config/ConfigCategoryUI.jaxx | 2 + .../swing/config/ConfigCategoryUIHandler.java | 24 +- .../runtime/swing/config/ConfigTableEditor.java | 12 +- .../jaxx/runtime/swing/config/ConfigUIHandler.java | 10 +- .../jaxx/runtime/swing/config/ConfigUIHelper.java | 6 +- .../runtime/swing/config/model/CategoryModel.java | 4 +- .../runtime/swing/config/model/ConfigUIModel.java | 4 +- .../swing/config/model/MyDelegateConfigTest.java | 9 +- .../swing/config/model/MyInheritedConfigTest.java | 9 +- jaxx-demo/pom.xml | 12 + .../java/jaxx/demo/DemoApplicationContext.java | 14 +- jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java | 4 +- .../src/main/java/jaxx/demo/DemoHelpBroker.java | 18 +- jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx | 6 +- .../main/java/jaxx/demo/DemoSourcesHandler.java | 8 +- jaxx-demo/src/main/java/jaxx/demo/DemoUI.css | 2 +- jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx | 2 +- .../src/main/java/jaxx/demo/DemoUIHandler.java | 33 +- .../demo/component/jaxx/BoxedDecoratorDemo.css | 8 +- .../demo/component/jaxx/BoxedDecoratorDemo.jaxx | 17 +- .../jaxx/editor/BeanComboBoxDemoHandler.java | 2 +- .../jaxx/editor/BeanDoubleListDemoHandler.java | 2 +- .../editor/BeanFilterableComboBoxDemoHandler.java | 2 +- .../component/jaxx/editor/ComboEditorDemo.jaxx | 3 + .../component/jaxx/editor/ListSelectorDemo.jaxx | 2 +- .../jaxx/editor/SimpleTimeEditorDemoHandler.java | 2 +- .../jaxx/editor/gis/CoordinateDemoHandler.java | 2 +- .../datetime/DateTimeEditorDemoHandler.java | 2 +- .../widgets/datetime/TimeEditorDemoHandler.java | 2 +- .../widgets/gis/CoordinatesEditorDemoHandler.java | 2 +- .../widgets/number/NumberEditorDemoHandler.java | 2 +- .../select/FilterableDoubleListDemoHandler.java | 2 +- .../feature/databinding/BindingExtremeDemo.jaxx | 2 +- .../main/java/jaxx/demo/feature/nav/NavDemo.jaxx | 3 + .../java/jaxx/demo/feature/nav/NavDemoHandler.java | 14 +- .../demo/feature/nav/content/ActorContentUI.jaxx | 5 +- .../demo/feature/nav/content/ActorsContentUI.jaxx | 4 +- .../demo/feature/nav/content/MovieContentUI.jaxx | 5 +- .../demo/feature/nav/content/MoviesContentUI.jaxx | 2 +- .../list/ListBeanValidationDemoHandler.java | 8 +- .../feature/validation/list/PeopleTableModel.java | 16 +- jaxx-maven-plugin/pom.xml | 2 +- .../java/org/nuiton/jaxx/plugin/GenerateMojo.java | 12 +- .../java/org/nuiton/jaxx/plugin/Bug1124Test.java | 7 +- .../java/org/nuiton/jaxx/plugin/Bug1404Test.java | 8 +- .../java/org/nuiton/jaxx/plugin/Bug1750Test.java | 11 +- .../java/org/nuiton/jaxx/plugin/CompilerTest.java | 2 +- .../java/org/nuiton/jaxx/plugin/DecoratorTest.java | 2 +- .../java/org/nuiton/jaxx/plugin/JaxxBaseTest.java | 2 +- jaxx-runtime-api/LICENSE.txt | 165 +++ jaxx-runtime-api/README.txt | 2 + jaxx-runtime-api/changelog.txt | 109 ++ {jaxx-runtime => jaxx-runtime-api}/pom.xml | 48 +- .../src/license/THIRD-PARTY.properties | 20 + .../org/nuiton/jaxx/runtime/api}/JAXXObject.java | 5 +- .../org/nuiton/jaxx/runtime/api/JAXXRuntime.java | 183 +++ .../jaxx/runtime/api}/context/DataContext.java | 7 +- .../api}/context/DefaultApplicationContext.java | 3 +- .../runtime/api}/context/DefaultJAXXContext.java | 10 +- .../jaxx/runtime/api/context}/JAXXContext.java | 4 +- .../runtime/api}/context/JAXXContextEntryDef.java | 4 +- .../jaxx/runtime/api/context/JAXXContexts.java | 122 ++ .../runtime/api}/context/JAXXInitialContext.java | 5 +- .../jaxx/runtime/api/internal/EventListeners.java | 157 +++ .../internal}/awt/visitor/BuildTreeVisitor.java | 2 +- .../internal}/awt/visitor/ComponentTreeNode.java | 2 +- .../awt/visitor/ComponentTreeNodeVisitor.java | 2 +- .../awt/visitor/DebugComponentTreeNodeVisitor.java | 2 +- .../awt/visitor/GetCompopentAtPointVisitor.java | 2 +- .../runtime/api/internal}/awt/visitor/package.html | 0 .../api/internal/binding}/DataBindingListener.java | 4 +- .../binding}/DataBindingUpdateListener.java | 4 +- .../api/internal}/binding/DefaultJAXXBinding.java | 8 +- .../runtime/api/internal/binding}/JAXXBinding.java | 4 +- .../runtime/api/internal/binding/JAXXBindings.java | 198 ++++ .../internal}/binding/SimpleJAXXObjectBinding.java | 4 +- .../runtime/api/internal}/css/DataBinding.java | 2 +- .../runtime/api/internal}/css/Pseudoclasses.java | 4 +- .../jaxx/runtime/api/internal}/css/Rule.java | 2 +- .../jaxx/runtime/api/internal}/css/Selector.java | 2 +- .../jaxx/runtime/api/internal}/css/Stylesheet.java | 2 +- .../api/internal/descriptor}/Base64Coder.java | 2 +- .../internal/descriptor}/ComponentDescriptor.java | 2 +- .../internal/descriptor}/JAXXObjectDescriptor.java | 5 +- .../internal/descriptor/JAXXObjectDescriptors.java | 44 + .../jaxx/runtime/api/spi}/BeanTypeAware.java | 4 +- .../nuiton/jaxx/runtime/api}/spi/UIHandler.java | 4 +- .../jaxx/runtime/api}/swing/Application.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/HBox.java | 2 +- .../jaxx/runtime/api}/swing/HBoxBeanInfo.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/HBoxLayout.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/Item.java | 2 +- .../jaxx/runtime/api}/swing/JAXXButtonGroup.java | 2 +- .../jaxx/runtime/api}/swing/JAXXComboBox.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXList.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXTab.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXTree.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/TabInfo.java | 2 +- .../api}/swing/TabInfoPropertyChangeListener.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/Table.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/VBox.java | 2 +- .../jaxx/runtime/api}/swing/VBoxBeanInfo.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/VBoxLayout.java | 2 +- .../runtime/api}/swing/help/JAXXHelpBroker.java | 14 +- .../jaxx/runtime/api}/swing/help/JAXXHelpUI.java | 2 +- .../runtime/api}/swing/help/JAXXHelpUIHandler.java | 4 +- .../src/site/site.xml | 32 +- .../api}/context/DataContextEntryIteratorTest.java | 12 +- .../context/DefaultApplicationContextTest.java | 13 +- .../api}/context/DefaultJAXXContextTest.java | 3 +- .../runtime/api/internal/EventListenersTest.java | 8 +- jaxx-runtime/pom.xml | 38 +- .../main/java/jaxx/runtime/FileChooserUtil.java | 2 +- .../src/main/java/jaxx/runtime/JAXXAction.java | 4 +- .../src/main/java/jaxx/runtime/JAXXUtil.java | 532 +-------- .../src/main/java/jaxx/runtime/SwingUtil.java | 1247 +------------------- .../src/main/java/jaxx/runtime/swing/JTables.java | 117 -- .../runtime/swing/editor/MyDefaultCellEditor.java | 2 + .../runtime/swing/wizard/BusyChangeListener.java | 2 +- .../jaxx/runtime/swing/wizard/WizardModel.java | 6 +- .../jaxx/runtime/swing/wizard/WizardUILancher.java | 15 +- .../swing/wizard/ext/WizardExtStepModel.java | 4 +- jaxx-swing-extra/LICENSE.txt | 165 +++ jaxx-swing-extra/README.txt | 2 + jaxx-swing-extra/changelog.txt | 109 ++ {jaxx-runtime => jaxx-swing-extra}/pom.xml | 25 +- .../src/license/THIRD-PARTY.properties | 20 + .../nuiton/jaxx/swing/extra}/ComponentMover.java | 2 +- .../nuiton/jaxx/swing/extra}/ComponentResizer.java | 2 +- .../java/org/nuiton/jaxx/swing/extra/Desktops.java | 135 +++ .../java/org/nuiton/jaxx/swing/extra/Icons.java | 78 ++ .../org/nuiton/jaxx/swing/extra/JComboBoxes.java | 99 ++ .../java/org/nuiton/jaxx/swing/extra/JLists.java | 56 + .../org/nuiton/jaxx/swing/extra/JTabbedPanes.java | 34 + .../java/org/nuiton/jaxx/swing/extra/JTables.java | 466 ++++++++ .../java/org/nuiton/jaxx/swing/extra/JTrees.java | 78 ++ .../java/org/nuiton/jaxx/swing/extra/JXLayers.java | 76 ++ .../nuiton/jaxx/swing/extra}/JaxxFileChooser.java | 2 +- .../jaxx/swing/extra/PropertyChangeListeners.java | 61 + .../java/org/nuiton/jaxx/swing/extra/Swings.java | 246 ++++ .../jaxx/swing/extra/combobox}/ComboBoxModel2.java | 2 +- .../extra/combobox}/ComboBoxSelectionEvent.java | 2 +- .../extra/combobox}/JaxxDefaultComboBoxModel.java | 2 +- .../combobox}/JaxxFilterableComboBoxModel.java | 11 +- .../combobox}/WillChangeSelectedItemListener.java | 2 +- .../WillChangeSelectedItemVetoException.java | 2 +- .../jaxx/swing/extra}/editor/ColorCellEditor.java | 2 +- .../jaxx/swing/extra}/editor/EnumEditor.java | 10 +- .../swing/extra/editor}/KeyStrokeCellEditor.java | 3 +- .../jaxx/swing/extra}/editor/KeyStrokeEditor.java | 8 +- .../jaxx/swing/extra}/editor/LocaleEditor.java | 2 +- .../jaxx/swing/extra/layer}/BlockingLayerUI.java | 2 +- .../jaxx/swing/extra/layer}/BlockingLayerUI2.java | 2 +- .../jaxx/swing/extra/layout}/CardLayout2.java | 2 +- .../jaxx/swing/extra/layout}/CardLayout2Ext.java | 4 +- .../swing/extra/list}/JaxxDefaultListModel.java | 2 +- .../swing/extra/list}/JaxxFilterableListModel.java | 2 +- .../list}/renderer/DecoratorListCellRenderer.java | 2 +- .../DecoratorProviderListCellRenderer.java | 2 +- .../FilteredDecoratorListCellRenderer.java | 11 +- .../list}/renderer/LocaleListCellRenderer.java | 10 +- .../renderer/MultiDecoratorListCellRenderer.java | 2 +- .../jaxx/swing/extra}/session/JSplitPaneState.java | 2 +- .../swing/extra}/session/JTabbedPaneState.java | 2 +- .../jaxx/swing/extra}/session/JTableState.java | 3 +- .../extra}/session/JXTableSwingSessionState.java | 3 +- .../nuiton/jaxx/swing/extra}/session/State.java | 2 +- .../jaxx/swing/extra}/session/SwingSession.java | 2 +- .../jaxx/swing/extra}/session/WindowState.java | 2 +- .../swing/extra/tabbedpane/TabbedPaneIterator.java | 93 ++ .../swing/extra/table}/editor/ClassCellEditor.java | 2 +- .../extra/table}/renderer/BooleanCellRenderer.java | 2 +- .../table}/renderer/ClassTableCellRenderer.java | 2 +- .../extra/table}/renderer/ColorCellRenderer.java | 2 +- .../DecoratorProviderTableCellRenderer.java | 2 +- .../renderer/DecoratorTableCellRenderer.java | 4 +- .../renderer/EmptyNumberTableCellRenderer.java | 2 +- .../table}/renderer/EnumTableCellRenderer.java | 2 +- .../table}/renderer/I18nTableCellRenderer.java | 2 +- .../renderer/MultiDecoratorTableCelleRenderer.java | 2 +- .../src/site/site.xml | 32 +- jaxx-validator/pom.xml | 14 +- .../SimpleBeanValidatorMessageTableModel.java | 12 +- .../swing/SwingListValidatorMessageTableModel.java | 12 +- ...wingListValidatorMessageTableMouseListener.java | 4 +- .../swing/SwingListValidatorMessageWidget.java | 12 +- .../swing/SwingValidatorMessageTableModel.java | 12 +- .../swing/SwingValidatorMessageWidget.java | 14 +- .../validator/swing/SwingValidatorUtil.java | 25 +- .../validator/swing/ui/IconValidationUI.java | 1 - .../validator/swing/ui/ImageValidationUI.java | 1 - .../swing/ui/TranslucentValidationUI.java | 1 - .../unified/UnifiedValidatorMessageTableModel.java | 12 +- .../UnifiedValidatorMessageTableMouseListener.java | 4 +- .../swing/unified/UnifiedValidatorMessageUtil.java | 10 +- .../unified/UnifiedValidatorMessageWidget.java | 12 +- .../src/main/resources/icons/error.png | Bin .../src/main/resources/icons/fatal.png | Bin .../src/main/resources/icons/info.png | Bin .../src/main/resources/icons/warning.png | Bin jaxx-widgets-common/pom.xml | 2 +- .../nuiton/jaxx/widgets/DecoratorPopupHandler.java | 2 +- jaxx-widgets-datetime/pom.xml | 10 +- .../widgets/datetime/DateTimeEditorHandler.java | 2 +- .../jaxx/widgets/datetime/TimeEditorHandler.java | 2 +- .../datetime/session/DateTimeEditorState.java | 2 +- .../widgets/datetime/session/TimeEditorState.java | 2 +- jaxx-widgets-gis/pom.xml | 8 +- .../AbsoluteDdCoordinateEditorHandler.java | 2 +- .../AbsoluteDmdCoordinateEditorHandler.java | 2 +- .../AbsoluteDmsCoordinateEditorHandler.java | 2 +- .../widgets/gis/absolute/CoordinatesEditor.jaxx | 2 +- .../gis/absolute/CoordinatesEditorHandler.java | 2 +- .../signed/SignedDdCoordinateEditorHandler.java | 2 +- .../signed/SignedDmdCoordinateEditorHandler.java | 2 +- .../signed/SignedDmsCoordinateEditorHandler.java | 2 +- .../absolute/AbsoluteDdCoordinateEditorTest.java | 4 +- .../absolute/AbsoluteDmsCoordinateEditorTest.java | 4 +- jaxx-widgets-number/pom.xml | 8 +- .../jaxx/widgets/number/NumberEditorHandler.java | 2 +- jaxx-widgets-select/pom.xml | 8 +- .../jaxx/widgets/select/FilterableDoubleList.jaxx | 2 +- .../select/FilterableDoubleListHandler.java | 14 +- .../widgets/select/FilterableDoubleListModel.java | 4 +- .../select/session/FilterableDoubleListState.java | 2 +- jaxx-widgets/pom.xml | 14 + .../main/java/jaxx/runtime/swing/AboutPanel.jaxx | 15 +- .../java/jaxx/runtime/swing/AboutPanelHandler.java | 13 +- .../jaxx/runtime/swing/ComboToListSelector.jaxx | 5 +- .../jaxx/runtime/swing/ErrorDialogUIHandler.java | 8 +- .../main/java/jaxx/runtime/swing/FontSizor.jaxx | 2 +- .../java/jaxx/runtime/swing/FontSizorHandler.java | 2 +- .../main/java/jaxx/runtime/swing/HidorButton.jaxx | 7 +- .../java/jaxx/runtime/swing/JAXXWidgetUtil.java | 7 +- .../java/jaxx/runtime/swing/JSearchTextField.java | 9 +- .../jaxx/runtime/swing/ListToListSelector.jaxx | 5 +- .../java/jaxx/runtime/swing/editor/I18nEditor.jaxx | 8 +- .../runtime/swing/editor/I18nEditorHandler.java | 2 +- .../runtime/swing/editor/bean/BeanComboBox.jaxx | 4 +- .../swing/editor/bean/BeanComboBoxHandler.java | 8 +- .../runtime/swing/editor/bean/BeanDoubleList.jaxx | 2 +- .../swing/editor/bean/BeanDoubleListHandler.java | 14 +- .../swing/editor/bean/BeanDoubleListModel.java | 4 +- .../swing/editor/bean/BeanFilterableComboBox.jaxx | 4 +- .../editor/bean/BeanFilterableComboBoxHandler.java | 14 +- .../runtime/swing/editor/bean/BeanListHeader.css | 2 +- .../runtime/swing/editor/bean/BeanListHeader.jaxx | 2 +- .../swing/editor/bean/BeanListHeaderHandler.java | 4 +- .../jaxx/runtime/swing/editor/bean/BeanUIUtil.java | 4 +- .../swing/editor/cell/NumberCellEditor.java | 5 +- .../editor/gis/DmdCoordinateEditorHandler.java | 2 +- .../editor/gis/DmsCoordinateEditorHandler.java | 2 +- .../filter/DefaultFilterableCheckListModel.java | 4 +- .../jaxx/runtime/swing/log/JAXXLog4jHandler.java | 31 +- .../runtime/swing/session/BeanDoubleListState.java | 2 +- .../swing/session/BeanFilterableComboBoxState.java | 1 + .../table/filter/FilterTableHeaderRenderer.java | 4 +- .../table/filter/TableAwareCheckListRenderer.java | 5 +- .../swing/table/filter/TableFilterColumnPopup.java | 9 +- pom.xml | 6 +- src/site/rst/JAXXContext.rst | 8 +- src/site/rst/NavigationModel.rst | 4 +- src/site/rst/index.rst | 2 +- src/site/rst/migration.rst | 2 +- src/site/rst/old-compiler-doc/JAXXContext.rst | 8 +- .../rst/old-compiler-doc/NavigationTreeModel.rst | 2 +- 319 files changed, 3597 insertions(+), 2689 deletions(-) diff --git a/jaxx-application-swing/pom.xml b/jaxx-application-swing/pom.xml index 5a86990..885b59a 100644 --- a/jaxx-application-swing/pom.xml +++ b/jaxx-application-swing/pom.xml @@ -62,9 +62,16 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> <version>${project.version}</version> </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> <groupId>${project.groupId}</groupId> <artifactId>jaxx-validator</artifactId> diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/AbstractApplicationUIHandler.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/AbstractApplicationUIHandler.java index 3e6da61..e63d5f1 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/AbstractApplicationUIHandler.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/AbstractApplicationUIHandler.java @@ -25,9 +25,8 @@ package org.nuiton.jaxx.application.swing; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.editor.FileEditor; import jaxx.runtime.swing.editor.NumberEditor; @@ -39,8 +38,11 @@ import jaxx.runtime.swing.editor.bean.BeanUIUtil; import jaxx.runtime.swing.editor.cell.NumberCellEditor; import jaxx.runtime.swing.editor.gis.DmdCoordinateEditor; import jaxx.runtime.swing.editor.gis.DmsCoordinateEditor; -import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; -import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer; +import org.nuiton.jaxx.swing.extra.JComboBoxes; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; +import org.nuiton.jaxx.swing.extra.Swings; +import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorListCellRenderer; +import org.nuiton.jaxx.swing.extra.table.renderer.DecoratorTableCellRenderer; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; @@ -199,11 +201,11 @@ public abstract class AbstractApplicationUIHandler<M, UI extends ApplicationUI<M //------------------------------------------------------------------------// /** - * @deprecated since 2.10, should move this to {@link SwingUtil#newComboModel(Object...)} + * @deprecated since 2.10, should move this to {@link JComboBoxes#newComboModel(Object...)} */ @Deprecated public DefaultComboBoxModel newComboModel(Object... items) { - return SwingUtil.newComboModel(items); + return JComboBoxes.newComboModel(items); } public final M getModel() { @@ -322,10 +324,10 @@ public abstract class AbstractApplicationUIHandler<M, UI extends ApplicationUI<M if (log.isDebugEnabled()) { log.debug("Destroy ui " + ui); } - JAXXUtil.destroy(ui); + PropertyChangeListeners.destroy(ui); } }); - SwingUtil.center(getContext().getMainUI(), result); + Swings.center(getContext().getMainUI(), result); result.setVisible(true); } @@ -334,7 +336,7 @@ public abstract class AbstractApplicationUIHandler<M, UI extends ApplicationUI<M } public <U extends Container> U getParentContainer(Class<U> uiType) { - return SwingUtil.getParentContainer(ui, uiType); + return JAXXRuntime.getParentContainer(ui, uiType); } public static final String CONFIRMATION_FORMAT = "<html>%s<hr/><br/>%s</html>"; @@ -1229,7 +1231,7 @@ public abstract class AbstractApplicationUIHandler<M, UI extends ApplicationUI<M if (!dataToList.isEmpty() && dataToList.get(0) != null) { dataToList.add(0, null); } - SwingUtil.fillComboBox(comboBox, dataToList, null); + JComboBoxes.fillComboBox(comboBox, dataToList, null); ObjectToStringConverter converter = BeanUIUtil.newDecoratedObjectToStringConverter(decorator); BeanUIUtil.decorate(comboBox, converter); diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/ApplicationUI.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/ApplicationUI.java index 4c2d810..ef33243 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/ApplicationUI.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/ApplicationUI.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.application.swing; * #L% */ -import jaxx.runtime.JAXXObject; +import org.nuiton.jaxx.runtime.api.JAXXObject; /** * Contract to place on each ui. diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java index 2709041..757ab43 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java @@ -33,7 +33,7 @@ import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; import org.nuiton.jaxx.application.swing.ApplicationUI; import org.nuiton.jaxx.application.swing.ApplicationUIContext; import org.nuiton.jaxx.application.type.ApplicationProgressionModel; -import org.nuiton.jaxx.runtime.JaxxFileChooser; +import org.nuiton.jaxx.swing.extra.JaxxFileChooser; import javax.swing.JOptionPane; import java.awt.Component; diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUI.jaxx b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUI.jaxx index c3548cd..97da796 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUI.jaxx +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUI.jaxx @@ -28,7 +28,7 @@ org.nuiton.jaxx.application.swing.ApplicationUIContext org.nuiton.jaxx.application.swing.util.ApplicationUIUtil - jaxx.runtime.swing.BlockingLayerUI + org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI javax.swing.border.EmptyBorder </import> diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java index e2ed60a..b957c40 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/ApplicationActionUIHandler.java @@ -22,13 +22,13 @@ package org.nuiton.jaxx.application.swing.action; * #L% */ -import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; import org.nuiton.jaxx.application.type.ApplicationProgressionModel; +import org.nuiton.jaxx.swing.extra.JXLayers; import javax.swing.JComponent; import java.awt.Component; @@ -182,7 +182,7 @@ public class ApplicationActionUIHandler extends AbstractApplicationUIHandler<App initUI(this.ui); // installation layer de blocage en mode busy - SwingUtil.setLayerUI(this.ui.getRootPanel(), this.ui.getBusyBlockLayerUI()); + JXLayers.setLayerUI(this.ui.getRootPanel(), this.ui.getBusyBlockLayerUI()); this.ui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java index 81a0168..29fab3a 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/tab/CustomTab.java @@ -22,9 +22,9 @@ package org.nuiton.jaxx.application.swing.tab; * #L% */ -import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.Icons; import org.nuiton.util.beans.BeanUtil; import javax.swing.AbstractButton; @@ -100,7 +100,7 @@ public class CustomTab extends JPanel { updateTitle(); String actionIcon = model.getIcon(); if (actionIcon != null) { - title.setIcon(SwingUtil.createActionIcon(actionIcon)); + title.setIcon(Icons.createActionIcon(actionIcon)); } title.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5)); add(title); diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/table/AbstractApplicationTableModel.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/table/AbstractApplicationTableModel.java index 1021bcb..3e9b4bb 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/table/AbstractApplicationTableModel.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/table/AbstractApplicationTableModel.java @@ -27,12 +27,12 @@ import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import jaxx.runtime.SwingUtil; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.table.TableColumnModelExt; +import org.nuiton.jaxx.swing.extra.JTables; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumn; @@ -184,7 +184,7 @@ public abstract class AbstractApplicationTableModel<R extends Serializable> exte } public final R removeRow(int rowIndex) { - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureRowIndex(this, rowIndex); List<R> data = getRows(); @@ -221,7 +221,7 @@ public abstract class AbstractApplicationTableModel<R extends Serializable> exte } public final R getEntry(int rowIndex) { - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureRowIndex(this, rowIndex); List<R> data = getRows(); R result = data == null ? null : data.get(rowIndex); return result; diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/util/ApplicationUIUtil.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/util/ApplicationUIUtil.java index 2d5c749..8279590 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/util/ApplicationUIUtil.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/util/ApplicationUIUtil.java @@ -22,8 +22,8 @@ package org.nuiton.jaxx.application.swing.util; * #L% */ -import jaxx.runtime.JAXXObject; -import jaxx.runtime.swing.JTables; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.swing.extra.JTables; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; diff --git a/jaxx-compiler/pom.xml b/jaxx-compiler/pom.xml index 5169282..7caab59 100644 --- a/jaxx-compiler/pom.xml +++ b/jaxx-compiler/pom.xml @@ -45,7 +45,13 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> <version>${project.version}</version> </dependency> diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java b/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java index b6b4cb7..407b335 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java @@ -29,8 +29,8 @@ import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.tags.TagHandler; import jaxx.compiler.tags.TagManager; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.JAXXUtil; import org.apache.commons.lang3.StringUtils; +import org.nuiton.jaxx.runtime.api.internal.EventListeners; import java.awt.Container; import java.util.ArrayList; @@ -514,7 +514,7 @@ public class CompiledObject { MethodDescriptor addMethod = handler.getAddMethod(); ClassDescriptor listenerClass = addMethod.getParameterTypes()[0]; String type = compiler.getImportedType(listenerClass.getName()); - String prefix = compiler.getImportedType(JAXXUtil.class); + String prefix = compiler.getImportedType(EventListeners.class); //TC-20091026 use 'this' instead of root object javaCode //TC-20091105 JAXXUtil.getEventListener is generic, no more need cast and use simple name diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java b/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java index efc8214..8a8b035 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java @@ -24,8 +24,8 @@ package jaxx.compiler; import jaxx.compiler.finalizers.JAXXCompilerFinalizer; import jaxx.compiler.spi.Initializer; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import java.io.File; import java.util.Map; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java b/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java index 419ddfb..83c4bda 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java @@ -24,9 +24,9 @@ package jaxx.compiler; import jaxx.compiler.finalizers.JAXXCompilerFinalizer; import jaxx.compiler.spi.Initializer; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.logging.Log; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/I18nHelper.java b/jaxx-compiler/src/main/java/jaxx/compiler/I18nHelper.java index 4ab922d..a638f79 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/I18nHelper.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/I18nHelper.java @@ -22,11 +22,11 @@ package jaxx.compiler; -import jaxx.runtime.SwingUtil; import org.apache.commons.lang3.CharUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; import java.util.Arrays; import java.util.List; @@ -137,8 +137,8 @@ public class I18nHelper { attributeName, attributeValueCode, compiler); - compiler.addImport(SwingUtil.class.getName()); - String result = "{" + SwingUtil.class.getSimpleName() + + compiler.addImport(JAXXRuntime.class.getName()); + String result = "{" + JAXXRuntime.class.getSimpleName() + ".getFirstCharAt(" + stringValue + ",'Z')}"; return result; } diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java b/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java index 60656d2..86a06e6 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java @@ -39,17 +39,17 @@ import jaxx.compiler.script.ScriptManager; import jaxx.compiler.tags.DefaultObjectHandler; import jaxx.compiler.tags.TagHandler; import jaxx.compiler.tags.TagManager; -import jaxx.runtime.ComponentDescriptor; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.JAXXObjectDescriptor; -import jaxx.runtime.css.Rule; -import jaxx.runtime.css.Stylesheet; -import jaxx.runtime.spi.UIHandler; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.java.extension.ImportsManager; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.internal.css.Rule; +import org.nuiton.jaxx.runtime.api.internal.css.Stylesheet; +import org.nuiton.jaxx.runtime.api.internal.descriptor.ComponentDescriptor; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.Attributes; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java b/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java index 80fcad2..8e3104f 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java @@ -451,7 +451,8 @@ public class JAXXEngine { "javax.swing.border.*", // "javax.swing.event.*", // "jaxx.runtime.*", - "jaxx.runtime.swing.*" + "jaxx.runtime.swing.*", + "org.nuiton.jaxx.runtime.api.swing.*" ) ); jaxxFile.setCompiler(jaxxCompiler); diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java b/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java index 532bb8a..f988736 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java @@ -41,12 +41,13 @@ import jaxx.compiler.reflect.MethodDescriptor; import jaxx.compiler.tags.DefaultObjectHandler; import jaxx.compiler.tags.TagManager; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.JAXXUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBindings; +import org.nuiton.jaxx.runtime.api.internal.EventListeners; import java.beans.Introspector; import java.io.StringReader; @@ -686,11 +687,12 @@ public class DataSource { //TC-20091105 JAXXUtil.getEventListener is generic, no more need cast and use simple listener name ClassDescriptor listenerClass = eventInfo.getListenerClass(); String listenerType = compiler.getImportedType(listenerClass.getName()); - String jaxxUtilPrefix = compiler.getImportedType(JAXXUtil.class); + String jAXXBindingsPrefix = compiler.getImportedType(JAXXBindings.class); + String eventListenersPrefix = compiler.getImportedType(EventListeners.class); result.append(code); result.append('.'); result.append(eventInfo.getAddMethod()); - result.append("( ").append(jaxxUtilPrefix).append(".getEventListener("); + result.append("( ").append(eventListenersPrefix).append(".getEventListener("); result.append(listenerType); result.append(".class, "); result.append("this"); @@ -703,7 +705,7 @@ public class DataSource { handler, objectCode, "get" + StringUtils.capitalize(eventInfo.getModelName()), - jaxxUtilPrefix + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this" + ", " + constantId + ")", + jAXXBindingsPrefix + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this" + ", " + constantId + ")", compiler ); result.append(addCode); @@ -786,7 +788,8 @@ public class DataSource { String modelType = compiler.getImportedType(modelClassName); String code = objectCode + (eventInfo.getModelName() != null ? "." + modelMemberName + "()" : ""); String eol = JAXXCompiler.getLineSeparator(); - String jaxxUtilPrefix = compiler.getImportedType(JAXXUtil.class); + String jAXXBindingsPrefix = compiler.getImportedType(JAXXBindings.class); + String eventListenersPrefix = compiler.getImportedType(EventListeners.class); result.append(modelType).append(" $target = (").append(modelType).append(") $bindingSources.remove(\"").append(code).append("\");").append(eol); //TC-20091105 test if $target is not null result.append("if ($target != null) {").append(eol); @@ -795,7 +798,7 @@ public class DataSource { String listenerType = compiler.getImportedType(listenerClass.getName()); result.append(" $target."); result.append(eventInfo.getRemoveMethod()); - result.append("( ").append(jaxxUtilPrefix).append(".getEventListener("); + result.append("( ").append(eventListenersPrefix).append(".getEventListener("); result.append(listenerType); result.append(".class, "); result.append("this"); @@ -806,7 +809,7 @@ public class DataSource { result.append("}").append(eol); if (eventInfo.getModelName() != null) { result.append(getRemoveMemberListenerCode(handler, objectCode, "get" + StringUtils.capitalize(eventInfo.getModelName()), - jaxxUtilPrefix + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this, " + constantId + ")", + jAXXBindingsPrefix + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this, " + constantId + ")", compiler)); } return result.toString(); diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/AbstractJAXXBindingWriter.java b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/AbstractJAXXBindingWriter.java index 9a73c30..ebcc436 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/AbstractJAXXBindingWriter.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/AbstractJAXXBindingWriter.java @@ -27,7 +27,7 @@ import jaxx.compiler.binding.DataListener; import jaxx.compiler.finalizers.DefaultFinalizer; import jaxx.compiler.java.JavaFileGenerator; import jaxx.compiler.java.JavaMethod; -import jaxx.runtime.JAXXBinding; +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBinding; import java.util.List; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java index b534bcc..b1f1fc1 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java @@ -29,7 +29,7 @@ import jaxx.compiler.finalizers.JAXXCompilerFinalizer; import jaxx.compiler.java.JavaElementFactory; import jaxx.compiler.java.JavaFileGenerator; import jaxx.compiler.java.JavaMethod; -import jaxx.runtime.binding.DefaultJAXXBinding; +import org.nuiton.jaxx.runtime.api.internal.binding.DefaultJAXXBinding; import java.util.List; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/JAXXBindingWriter.java b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/JAXXBindingWriter.java index 9ca3a1b..7a6ac7a 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/JAXXBindingWriter.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/JAXXBindingWriter.java @@ -23,7 +23,7 @@ package jaxx.compiler.binding.writers; import jaxx.compiler.binding.DataBinding; import jaxx.compiler.java.JavaFileGenerator; -import jaxx.runtime.JAXXBinding; +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBinding; /** * The contract of a writer of {@link JAXXBinding} creation code from a diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java index d6d7099..118e580 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java @@ -29,7 +29,7 @@ import jaxx.compiler.finalizers.JAXXCompilerFinalizer; import jaxx.compiler.java.JavaElementFactory; import jaxx.compiler.java.JavaFileGenerator; import jaxx.compiler.java.JavaMethod; -import jaxx.runtime.binding.SimpleJAXXObjectBinding; +import org.nuiton.jaxx.runtime.api.internal.binding.SimpleJAXXObjectBinding; import java.lang.reflect.Modifier; import java.util.List; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java b/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java index 6d2df90..ac1d595 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java @@ -39,10 +39,10 @@ import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.tags.DefaultObjectHandler; import jaxx.compiler.tags.TagManager; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.css.Pseudoclasses; -import jaxx.runtime.css.Rule; -import jaxx.runtime.css.Selector; -import jaxx.runtime.css.Stylesheet; +import org.nuiton.jaxx.runtime.api.internal.css.Pseudoclasses; +import org.nuiton.jaxx.runtime.api.internal.css.Rule; +import org.nuiton.jaxx.runtime.api.internal.css.Selector; +import org.nuiton.jaxx.runtime.api.internal.css.Stylesheet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -366,7 +366,7 @@ public class StylesheetHelper { if (!properties.isEmpty()) { pseudoClassesPrefix = compiler.getImportedType(Pseudoclasses.class); - dataBindingPrefix = compiler.getImportedType(jaxx.runtime.css.DataBinding.class); + dataBindingPrefix = compiler.getImportedType(org.nuiton.jaxx.runtime.api.internal.css.DataBinding.class); } String outputClassName = diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java b/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java index 8162923..240f96d 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java @@ -26,7 +26,7 @@ import jaxx.compiler.CompiledObject; import jaxx.compiler.CompiledObject.ChildRef; import jaxx.compiler.JAXXCompiler; import jaxx.compiler.java.JavaFile; -import jaxx.runtime.SwingUtil; +import org.nuiton.jaxx.swing.extra.JXLayers; /** * A decorator to surround a compiled object (should be a component at least) @@ -58,7 +58,7 @@ public class BoxedCompiledObjectDecorator extends DefaultCompiledObjectDecorator for (ChildRef child : parent.getChilds()) { if (child.getChild() == object) { String javaCode = child.getChildJavaCode(); - String type = compiler.getImportedType(SwingUtil.class); + String type = compiler.getImportedType(JXLayers.class); child.setChildJavaCode( type + ".boxComponentWithJxLayer(" + javaCode + ")"); diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java b/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java index a8ce044..40a4692 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java @@ -30,7 +30,7 @@ import jaxx.compiler.finalizers.JAXXCompilerFinalizer; import jaxx.compiler.java.JavaElementFactory; import jaxx.compiler.java.JavaFile; import jaxx.compiler.reflect.ClassDescriptor; -import jaxx.runtime.swing.help.JAXXHelpUI; +import org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpUI; import java.awt.Component; import java.lang.reflect.Modifier; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java b/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java index f62f024..5427df7 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java @@ -41,16 +41,18 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.reflect.MethodDescriptor; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.Base64Coder; -import jaxx.runtime.JAXXBinding; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.JAXXObjectDescriptor; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBinding; +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBindings; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.context.JAXXContexts; +import org.nuiton.jaxx.runtime.api.internal.descriptor.Base64Coder; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptors; import java.awt.Container; import java.beans.PropertyChangeListener; @@ -557,7 +559,7 @@ public class DefaultFinalizer extends AbstractFinalizer { addJAXXObjectDescriptorField(compiler, javaFile); addMethod(javaFile, GET_JAXX_OBJECT_DESCRIPTOR_METHOD, - JAXXUtil.class.getName() + JAXXObjectDescriptors.class.getName() ); addPreviousValuesField(compiler, javaFile, root); @@ -709,8 +711,8 @@ public class DefaultFinalizer extends AbstractFinalizer { javaFile.addMethod(GET_CONTEXT_VALUE_NAMED_METHOD); javaFile.addMethod(REMOVE_CONTEXT_VALUE_METHOD); javaFile.addMethod(REMOVE_CONTEXT_VALUE_NAMED_METHOD); - addMethod(javaFile, GET_PARENT_CONTAINER_METHOD, SwingUtil.class.getName()); - addMethod(javaFile, GET_PARENT_CONTAINER_MORE_METHOD, SwingUtil.class.getName()); + addMethod(javaFile, GET_PARENT_CONTAINER_METHOD, JAXXRuntime.class.getName()); + addMethod(javaFile, GET_PARENT_CONTAINER_MORE_METHOD, JAXXRuntime.class.getName()); // javaFile.addMethod(GET_PARENT_CONTAINER_METHOD); // javaFile.addMethod(GET_PARENT_CONTAINER_MORE_METHOD); @@ -1044,7 +1046,7 @@ public class DefaultFinalizer extends AbstractFinalizer { // } // } if (!superclassIsJAXXObject) { - String prefix = compiler.getImportedType(JAXXUtil.class); + String prefix = compiler.getImportedType(JAXXContexts.class); code.append(prefix); code.append(".initContext(this, " + PARAMETER_NAME_PARENT_CONTEXT + ");"); code.append(eol); @@ -1205,7 +1207,8 @@ public class DefaultFinalizer extends AbstractFinalizer { result.append(bindings.length); result.append(" data bindings"); result.append(eol); - result.append(JAXXUtil.class.getSimpleName()); + String importedType = compiler.getImportedType(JAXXBindings.class); + result.append(importedType); result.append("." + METHOD_NAME_APPLY_DATA_BINDING + "(this, " + FIELD_NAME_$BINDINGS + ".keySet());"); result.append(eol); diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/SwingFinalizer.java b/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/SwingFinalizer.java index d196406..bffcc06 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/SwingFinalizer.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/SwingFinalizer.java @@ -28,9 +28,9 @@ import jaxx.compiler.java.JavaElementFactory; import jaxx.compiler.java.JavaFile; import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; -import jaxx.runtime.swing.Application; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.swing.Application; import javax.swing.SwingUtilities; import java.lang.reflect.Modifier; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java b/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java index d28665f..9d5d272 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java @@ -36,13 +36,13 @@ import jaxx.compiler.tags.validator.BeanValidatorHandler; import jaxx.compiler.tags.validator.BeanValidatorHandler.CompiledBeanValidator; import jaxx.compiler.types.TypeManager; import jaxx.runtime.JAXXValidator; -import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorUtil; import jaxx.runtime.validator.swing.meta.Validator; import jaxx.runtime.validator.swing.meta.ValidatorField; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JXLayers; import java.lang.reflect.Modifier; import java.util.ArrayList; @@ -103,7 +103,7 @@ public class ValidatorFinalizer extends AbstractFinalizer { if (found) { // compiler.setNeedSwingUtil(true); String type = - compiler.getImportedType(SwingUtil.class); + compiler.getImportedType(JXLayers.class); // box the child component in a JxLayer child.setChildJavaCode( type + diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptor.java b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptor.java index 821faa5..f558226 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptor.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptor.java @@ -22,7 +22,7 @@ package jaxx.compiler.reflect; -import jaxx.runtime.JAXXObjectDescriptor; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptorHelper.java b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptorHelper.java index 1c86107..2fd51c8 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptorHelper.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/ClassDescriptorHelper.java @@ -30,8 +30,8 @@ import jaxx.compiler.JAXXFactory; import jaxx.compiler.reflect.resolvers.ClassDescriptorResolverFromJavaClass; import jaxx.compiler.reflect.resolvers.ClassDescriptorResolverFromJavaFile; import jaxx.compiler.reflect.resolvers.ClassDescriptorResolverFromJaxxFile; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.JAXXObjectDescriptor; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaClass.java b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaClass.java index 6ab03de..60143fd 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaClass.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaClass.java @@ -26,7 +26,7 @@ import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.reflect.ClassDescriptorResolver; import jaxx.compiler.reflect.FieldDescriptor; import jaxx.compiler.reflect.MethodDescriptor; -import jaxx.runtime.JAXXObjectDescriptor; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaFile.java b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaFile.java index 250a618..92975b8 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaFile.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJavaFile.java @@ -34,9 +34,9 @@ import jaxx.compiler.reflect.ClassDescriptorResolver; import jaxx.compiler.reflect.FieldDescriptor; import jaxx.compiler.reflect.MethodDescriptor; import jaxx.compiler.tags.TagManager; -import jaxx.runtime.JAXXUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptors; import java.io.IOException; import java.io.InputStreamReader; @@ -123,7 +123,7 @@ public class ClassDescriptorResolverFromJavaFile extends ClassDescriptorResolver parser.isInterface, false, null, - parser.jaxxObjectDescriptorValue == null ? null : JAXXUtil.decodeCompressedJAXXObjectDescriptor(parser.jaxxObjectDescriptorValue), + parser.jaxxObjectDescriptorValue == null ? null : JAXXObjectDescriptors.decodeCompressedJAXXObjectDescriptor(parser.jaxxObjectDescriptorValue), classLoader, parser.constructors.toArray(new MethodDescriptor[parser.constructors.size()]), parser.methods.toArray(new MethodDescriptor[parser.methods.size()]), diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJaxxFile.java b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJaxxFile.java index 66e7536..af6eee9 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJaxxFile.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/reflect/resolvers/ClassDescriptorResolverFromJaxxFile.java @@ -31,8 +31,8 @@ import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.reflect.ClassDescriptorResolver; import jaxx.compiler.reflect.FieldDescriptor; import jaxx.compiler.reflect.MethodDescriptor; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.JAXXObjectDescriptor; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/spi/DefaultInitializer.java b/jaxx-compiler/src/main/java/jaxx/compiler/spi/DefaultInitializer.java index b5cf5cc..bda7d3a 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/spi/DefaultInitializer.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/spi/DefaultInitializer.java @@ -65,17 +65,15 @@ import jaxx.compiler.tags.swing.TableHandler; import jaxx.compiler.tags.validator.BeanValidatorHandler; import jaxx.compiler.tags.validator.ExcludeFieldValidatorHandler; import jaxx.compiler.tags.validator.FieldValidatorHandler; -import jaxx.runtime.swing.Application; -import jaxx.runtime.swing.JAXXButtonGroup; -import jaxx.runtime.swing.JAXXComboBox; -import jaxx.runtime.swing.JAXXList; -import jaxx.runtime.swing.JAXXTab; -import jaxx.runtime.swing.JAXXTree; -import jaxx.runtime.swing.Table; -import jaxx.runtime.swing.editor.EnumEditor; -import jaxx.runtime.swing.editor.LocaleEditor; import jaxx.runtime.validator.swing.SwingValidator; import org.jdesktop.jxlayer.JXLayer; +import org.nuiton.jaxx.runtime.api.swing.Application; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; +import org.nuiton.jaxx.runtime.api.swing.JAXXComboBox; +import org.nuiton.jaxx.runtime.api.swing.JAXXList; +import org.nuiton.jaxx.runtime.api.swing.JAXXTab; +import org.nuiton.jaxx.runtime.api.swing.JAXXTree; +import org.nuiton.jaxx.runtime.api.swing.Table; import javax.swing.JCheckBox; import javax.swing.JCheckBoxMenuItem; @@ -117,7 +115,7 @@ public class DefaultInitializer implements Initializer { @Override public void initialize() { - BeanInfoUtil.addJaxxBeanInfoPath("jaxx.runtime.swing"); + BeanInfoUtil.addJaxxBeanInfoPath("jaxx.runtime.swing", "org.nuiton.jaxx.runtime.api.swing"); registerDefaultNamespace("javax.swing.*", JEditorPane.class, @@ -163,8 +161,9 @@ public class DefaultInitializer implements Initializer { // combo boxes registerBean(JComboBox.class, JComboBoxHandler.class); - registerBean(EnumEditor.class, JComboBoxHandler.class); - registerBean(LocaleEditor.class, JComboBoxHandler.class); + //FIXME Check if commenting this still works... +// registerBean(EnumEditor.class, JComboBoxHandler.class); +// registerBean(LocaleEditor.class, JComboBoxHandler.class); registerBean(JAXXComboBox.class, JAXXComboBoxHandler.class); // radio boxes diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java index d723e1d..b5fb555 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java @@ -30,9 +30,10 @@ import jaxx.compiler.UnsupportedAttributeException; import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; +import org.nuiton.jaxx.swing.extra.Icons; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; @@ -225,14 +226,14 @@ public class DefaultComponentHandler extends DefaultObjectHandler { return id + ".setLocation(" + id + ".getX(), " + valueCode + ");"; } if (WIDTH_ATTRIBUTE.equals(name)) { - String type = compiler.getImportedType(SwingUtil.class); + String type = compiler.getImportedType(JAXXRuntime.class); // compiler.setNeedSwingUtil(true); // need to optimize case when both width and height are being assigned return type + ".setComponentWidth(" + id + "," + valueCode + ");"; } if (HEIGHT_ATTRIBUTE.equals(name)) { // compiler.setNeedSwingUtil(true); - String type = compiler.getImportedType(SwingUtil.class); + String type = compiler.getImportedType(JAXXRuntime.class); return type + ".setComponentHeight(" + id + "," + valueCode + ");"; } if (FONT_FACE_ATTRIBUTE.equals(name)) { @@ -320,7 +321,7 @@ public class DefaultComponentHandler extends DefaultObjectHandler { if (!(stringValue.startsWith("{") || stringValue.endsWith("}"))) { // this is a customized icon, add the icon creation code // compiler.setNeedSwingUtil(true); - String type = compiler.getImportedType(SwingUtil.class); + String type = compiler.getImportedType(Icons.class); if (compiler.getConfiguration().isUseUIManagerForIcon()) { stringValue = "{" + type + ".getUIManagerIcon(\"" + stringValue + "\")}"; @@ -333,7 +334,7 @@ public class DefaultComponentHandler extends DefaultObjectHandler { // this is a customized icon, add the icon creation code // compiler.setNeedSwingUtil(true); String type = - compiler.getImportedType(SwingUtil.class); + compiler.getImportedType(Icons.class); if (compiler.getConfiguration().isUseUIManagerForIcon()) { stringValue = "{" + type + ".getUIManagerIcon(\"" + stringValue + "\").getImage()}"; @@ -350,7 +351,7 @@ public class DefaultComponentHandler extends DefaultObjectHandler { } propertyName = ICON_ATTRIBUTE; // compiler.setNeedSwingUtil(true); - String type = compiler.getImportedType(SwingUtil.class); + String type = compiler.getImportedType(Icons.class); if (compiler.getConfiguration().isUseUIManagerForIcon()) { stringValue = "{" + type + ".getUIManagerActionIcon(\"" + stringValue + "\")}"; } else { diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java index 1533b79..a610eb6 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java @@ -40,14 +40,14 @@ import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.reflect.FieldDescriptor; import jaxx.compiler.reflect.MethodDescriptor; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.ComponentDescriptor; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.JAXXObjectDescriptor; -import jaxx.runtime.bean.BeanTypeAware; -import jaxx.runtime.css.Stylesheet; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.spi.BeanTypeAware; +import org.nuiton.jaxx.runtime.api.internal.css.Stylesheet; +import org.nuiton.jaxx.runtime.api.internal.descriptor.ComponentDescriptor; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java index 6dfe719..40985fb 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java @@ -26,7 +26,7 @@ import jaxx.compiler.CompilerException; import jaxx.compiler.JAXXCompiler; import jaxx.compiler.UnsupportedAttributeException; import jaxx.compiler.css.StylesheetHelper; -import jaxx.runtime.css.Stylesheet; +import org.nuiton.jaxx.runtime.api.internal.css.Stylesheet; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ApplicationHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ApplicationHandler.java index ea61a89..a6303df 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ApplicationHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ApplicationHandler.java @@ -28,7 +28,7 @@ import jaxx.compiler.JAXXCompiler; import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.Application; +import org.nuiton.jaxx.runtime.api.swing.Application; import org.w3c.dom.Element; import javax.swing.WindowConstants; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/CompiledItemContainer.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/CompiledItemContainer.java index 06263d7..de1f84c 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/CompiledItemContainer.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/CompiledItemContainer.java @@ -26,7 +26,7 @@ import jaxx.compiler.CompiledObject; import jaxx.compiler.CompilerException; import jaxx.compiler.JAXXCompiler; import jaxx.compiler.reflect.ClassDescriptor; -import jaxx.runtime.swing.Item; +import org.nuiton.jaxx.runtime.api.swing.Item; import java.util.ArrayList; import java.util.List; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ItemHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ItemHandler.java index a442c9b..31b3d59 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ItemHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/ItemHandler.java @@ -28,7 +28,7 @@ import jaxx.compiler.UnsupportedAttributeException; import jaxx.compiler.binding.DataBindingHelper; import jaxx.compiler.tags.TagHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.Item; +import org.nuiton.jaxx.runtime.api.swing.Item; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXComboBoxHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXComboBoxHandler.java index 433a84d..6c84071 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXComboBoxHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXComboBoxHandler.java @@ -29,8 +29,8 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.Item; -import jaxx.runtime.swing.JAXXComboBox; +import org.nuiton.jaxx.runtime.api.swing.Item; +import org.nuiton.jaxx.runtime.api.swing.JAXXComboBox; import org.w3c.dom.Element; import java.awt.event.ItemListener; @@ -63,7 +63,8 @@ public class JAXXComboBoxHandler extends DefaultComponentHandler { List<Item> items = list.getItems(); if (items != null && !items.isEmpty()) { String listName = list.getId() + "$items"; - list.appendAdditionCode("java.util.List<jaxx.runtime.swing.Item> " + listName + " = new java.util.ArrayList<jaxx.runtime.swing.Item>();"); + String importedType = compiler.getImportedType(Item.class); + list.appendAdditionCode("java.util.List<" + importedType + "> " + listName + " = new java.util.ArrayList<" + importedType + ">();"); for (Item item : items) { String id = item.getId(); CompiledObject compiledItem = new CompiledObject(id, ClassDescriptorHelper.getClassDescriptor(Item.class), compiler); diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXListHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXListHandler.java index 1200ae2..ba89fd5 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXListHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXListHandler.java @@ -29,8 +29,8 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.Item; -import jaxx.runtime.swing.JAXXList; +import org.nuiton.jaxx.runtime.api.swing.Item; +import org.nuiton.jaxx.runtime.api.swing.JAXXList; import org.w3c.dom.Element; import javax.swing.event.ListSelectionListener; @@ -65,8 +65,8 @@ public class JAXXListHandler extends DefaultComponentHandler { List<Item> items = list.getItems(); if (items != null && !items.isEmpty()) { String listName = list.getId() + "$items"; - //TODO Add the correct generic type - list.appendAdditionCode("java.util.List<jaxx.runtime.swing.Item> " + listName + " = new java.util.ArrayList<jaxx.runtime.swing.Item>();"); + String importedType = compiler.getImportedType(Item.class); + list.appendAdditionCode("java.util.List<" + importedType + "> " + listName + " = new java.util.ArrayList<" + importedType + ">();"); for (Item item : items) { String id = item.getId(); CompiledObject compiledItem = new CompiledObject(id, ClassDescriptorHelper.getClassDescriptor(Item.class), compiler); diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXTreeHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXTreeHandler.java index 8429221..ec43cd0 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXTreeHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JAXXTreeHandler.java @@ -29,8 +29,8 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.Item; -import jaxx.runtime.swing.JAXXTree; +import org.nuiton.jaxx.runtime.api.swing.Item; +import org.nuiton.jaxx.runtime.api.swing.JAXXTree; import org.w3c.dom.Element; import javax.swing.event.TreeSelectionListener; @@ -77,7 +77,8 @@ public class JAXXTreeHandler extends DefaultComponentHandler { List<Item> items = tree.getItems(); if (items != null && !items.isEmpty()) { String listName = tree.getId() + "$items"; - tree.appendAdditionCode("java.util.List<jaxx.runtime.swing.Item> " + listName + " = new java.util.ArrayList<jaxx.runtime.swing.Item>();"); + String importedType = compiler.getImportedType(Item.class); + tree.appendAdditionCode("java.util.List<" + importedType + "> " + listName + " = new java.util.ArrayList<" + importedType + ">();"); createItems(tree, items, listName + ".add", compiler); tree.appendAdditionCode(tree.getId() + ".setItems(" + listName + ");"); } diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JRadioButtonHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JRadioButtonHandler.java index 89c148f..5847ccc 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JRadioButtonHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JRadioButtonHandler.java @@ -30,7 +30,7 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.JAXXButtonGroup; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java index cb502c0..5a3eede 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java @@ -30,8 +30,8 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.TabInfo; -import jaxx.runtime.swing.TabInfoPropertyChangeListener; +import org.nuiton.jaxx.runtime.api.swing.TabInfo; +import org.nuiton.jaxx.runtime.api.swing.TabInfoPropertyChangeListener; import javax.swing.Icon; import javax.swing.JTabbedPane; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java index a9d88bf..50150b1 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java @@ -28,7 +28,7 @@ import jaxx.compiler.JAXXCompiler; import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultComponentHandler; -import jaxx.runtime.SwingUtil; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; import org.w3c.dom.Attr; import org.w3c.dom.Element; @@ -86,7 +86,7 @@ public class JTextComponentHandler extends DefaultComponentHandler { String valueCode, JAXXCompiler compiler) throws CompilerException { if (name.equals(ATTRIBUTE_TEXT)) { - String prefix = compiler.getImportedType(SwingUtil.class); + String prefix = compiler.getImportedType(JAXXRuntime.class); return prefix + ".setText(" + id + ", " + valueCode + ");" + JAXXCompiler.getLineSeparator(); diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/RowHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/RowHandler.java index 58ddacc..b0a9f14 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/RowHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/RowHandler.java @@ -26,7 +26,7 @@ import jaxx.compiler.CompilerException; import jaxx.compiler.JAXXCompiler; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.TagHandler; -import jaxx.runtime.swing.Table; +import org.nuiton.jaxx.runtime.api.swing.Table; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TabHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TabHandler.java index a3829f0..f9a9ec2 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TabHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TabHandler.java @@ -30,8 +30,8 @@ import jaxx.compiler.binding.DataBindingHelper; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.TagHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.TabInfo; import org.apache.commons.lang3.StringUtils; +import org.nuiton.jaxx.runtime.api.swing.TabInfo; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java index 0f2a0ec..cab0de4 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java @@ -30,7 +30,7 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultComponentHandler; import jaxx.compiler.types.TypeManager; -import jaxx.runtime.swing.Table; +import org.nuiton.jaxx.runtime.api.swing.Table; import java.awt.GridBagConstraints; import java.awt.Insets; diff --git a/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateConstructorsTask.java b/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateConstructorsTask.java index f2d2073..e7781b0 100644 --- a/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateConstructorsTask.java +++ b/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateConstructorsTask.java @@ -35,10 +35,10 @@ import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.reflect.MethodDescriptor; import jaxx.compiler.tags.TagManager; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXUtil; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.context.JAXXContexts; import java.util.ArrayList; import java.util.Iterator; @@ -491,7 +491,7 @@ public class GenerateConstructorsTask extends JAXXEngineTask { if (!superclassIsJAXXObject) { // call explicitly the init code of the parentContext - String prefix = compiler.getImportedType(JAXXUtil.class); + String prefix = compiler.getImportedType(JAXXContexts.class); code.append(prefix); code.append(".initContext(this, " + PARAMETER_NAME_PARENT_CONTEXT + ");"); code.append(eol); diff --git a/jaxx-compiler/src/test/java/jaxx/compiler/tags/TagManagerTest.java b/jaxx-compiler/src/test/java/jaxx/compiler/tags/TagManagerTest.java index c01c7f2..bdfd6d7 100644 --- a/jaxx-compiler/src/test/java/jaxx/compiler/tags/TagManagerTest.java +++ b/jaxx-compiler/src/test/java/jaxx/compiler/tags/TagManagerTest.java @@ -162,7 +162,7 @@ public class TagManagerTest { @Test public void testAliasing() { - Assert.assertEquals("ButtonGroup is not aliased to jaxx.runtime.swing.JAXXButtonGroup", "jaxx.runtime.swing.JAXXButtonGroup", TagManager.resolveClassName("ButtonGroup", compiler)); - Assert.assertEquals("javax.swing.ButtonGroup is not aliased to jaxx.runtime.swing.JAXXButtonGroup", "jaxx.runtime.swing.JAXXButtonGroup", TagManager.resolveClassName("javax.swing.ButtonGroup", compiler)); + Assert.assertEquals("ButtonGroup is not aliased to org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup", "org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup", TagManager.resolveClassName("ButtonGroup", compiler)); + Assert.assertEquals("javax.swing.ButtonGroup is not aliased to org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup", "org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup", TagManager.resolveClassName("javax.swing.ButtonGroup", compiler)); } } diff --git a/jaxx-config/pom.xml b/jaxx-config/pom.xml index 022e9ae..7cf6f5a 100644 --- a/jaxx-config/pom.xml +++ b/jaxx-config/pom.xml @@ -54,7 +54,13 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> <version>${project.version}</version> </dependency> @@ -62,6 +68,12 @@ <groupId>${project.groupId}</groupId> <artifactId>jaxx-widgets</artifactId> <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.nuiton.jaxx</groupId> + <artifactId>jaxx-runtime</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCallBackUIHandler.java b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCallBackUIHandler.java index 13e1c74..275a8b9 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCallBackUIHandler.java +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCallBackUIHandler.java @@ -22,12 +22,12 @@ package jaxx.runtime.swing.config; * #L% */ -import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.config.model.CallBackEntry; import jaxx.runtime.swing.config.model.CallBackMap; import jaxx.runtime.swing.config.model.OptionModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JTrees; import javax.swing.JLabel; import javax.swing.JTree; @@ -85,7 +85,7 @@ public class ConfigCallBackUIHandler { tree.setModel(new DefaultTreeModel(root)); - SwingUtil.expandTree(tree); + JTrees.expandTree(tree); tree.setCellRenderer(new DefaultTreeCellRenderer() { @Override diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.css b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.css index c2d9493..56d4080 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.css +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.css @@ -26,7 +26,7 @@ } #descriptionPane { - columnHeaderView:{new JLabel(t("config.description"), SwingUtil.getUIManagerActionIcon("information"), 10)}; + columnHeaderView:{new JLabel(t("config.description"), Icons.getUIManagerActionIcon("information"), 10)}; } #description { diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.jaxx b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.jaxx index 4a75bed..7562b08 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.jaxx +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUI.jaxx @@ -29,6 +29,8 @@ jaxx.runtime.swing.config.model.ConfigTableModel jaxx.runtime.swing.config.model.ConfigUIModel org.jdesktop.swingx.JXTable + + org.nuiton.jaxx.swing.extra.Icons </import> <ConfigCategoryUIHandler id='handler' constructorParams='this'/> diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUIHandler.java b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUIHandler.java index dd43f0f..d5e507c 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUIHandler.java +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigCategoryUIHandler.java @@ -22,16 +22,16 @@ package jaxx.runtime.swing.config; * #L% */ -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.config.model.ConfigTableModel; import jaxx.runtime.swing.config.model.OptionModel; -import jaxx.runtime.swing.renderer.ClassTableCellRenderer; -import jaxx.runtime.swing.renderer.ColorCellRenderer; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; +import org.nuiton.jaxx.swing.extra.Desktops; +import org.nuiton.jaxx.swing.extra.JTables; +import org.nuiton.jaxx.swing.extra.table.renderer.ClassTableCellRenderer; +import org.nuiton.jaxx.swing.extra.table.renderer.ColorCellRenderer; import javax.swing.JLabel; import javax.swing.JPopupMenu; @@ -72,7 +72,7 @@ public class ConfigCategoryUIHandler { JTable table = ui.getTable(); // prepare table - SwingUtil.setI18nTableHeaderRenderer( + JTables.setI18nTableHeaderRenderer( table, n("config.key"), n("config.key.tip"), @@ -82,13 +82,13 @@ public class ConfigCategoryUIHandler { n("config.defaultValue.tip")); ConfigTableRenderer renderer = new ConfigTableRenderer(); - SwingUtil.setTableColumnRenderer(table, 0, renderer); - SwingUtil.setTableColumnRenderer(table, 1, renderer); - SwingUtil.setTableColumnRenderer(table, 2, renderer); + JTables.setTableColumnRenderer(table, 0, renderer); + JTables.setTableColumnRenderer(table, 1, renderer); + JTables.setTableColumnRenderer(table, 2, renderer); Font f = table.getFont().deriveFont(Font.ITALIC | Font.BOLD); - int width = SwingUtil.computeTableColumnWidth(table, f, 0, "___*"); - SwingUtil.fixTableColumnWidth(table, 0, width); - SwingUtil.setTableColumnEditor(table, 1, new ConfigTableEditor((ConfigTableModel) table.getModel())); + int width = JTables.computeTableColumnWidth(table, f, 0, "___*"); + JTables.fixTableColumnWidth(table, 0, width); + JTables.setTableColumnEditor(table, 1, new ConfigTableEditor((ConfigTableModel) table.getModel())); table.setDefaultRenderer(Color.class, new ColorCellRenderer()); table.setDefaultRenderer(Class.class, new ClassTableCellRenderer()); } @@ -167,7 +167,7 @@ public class ConfigCategoryUIHandler { log.info("Copy to clipboard cell (" + selectedRow + "-" + selectedColumn + ") value: \"" + text + "\""); } - JAXXUtil.copyToClipBoard(text); + Desktops.copyToClipBoard(text); } diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigTableEditor.java b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigTableEditor.java index 27e9ec4..21d4282 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigTableEditor.java +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigTableEditor.java @@ -23,15 +23,15 @@ package jaxx.runtime.swing.config; */ import com.google.common.io.Files; -import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.config.model.ConfigTableModel; import jaxx.runtime.swing.config.model.OptionModel; -import jaxx.runtime.swing.editor.ClassCellEditor; -import jaxx.runtime.swing.editor.ColorCellEditor; -import jaxx.runtime.swing.editor.EnumEditor; -import jaxx.runtime.swing.editor.LocaleEditor; import jaxx.runtime.swing.editor.cell.FileCellEditor; import org.apache.commons.lang3.StringUtils; +import org.nuiton.jaxx.swing.extra.editor.ColorCellEditor; +import org.nuiton.jaxx.swing.extra.editor.EnumEditor; +import org.nuiton.jaxx.swing.extra.editor.KeyStrokeCellEditor; +import org.nuiton.jaxx.swing.extra.editor.LocaleEditor; +import org.nuiton.jaxx.swing.extra.table.editor.ClassCellEditor; import javax.swing.DefaultCellEditor; import javax.swing.JTable; @@ -132,7 +132,7 @@ public class ConfigTableEditor implements TableCellEditor { editor = new FileCellEditorWithExtDetector(); } else if (type.equals(KeyStroke.class)) { - editor = JAXXWidgetUtil.newKeyStrokeTableCellEditor(); + editor = new KeyStrokeCellEditor(); } else if (type.equals(Locale.class)) { editor = new DefaultCellEditor(LocaleEditor.newEditor()); diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java index d9af222..472409e 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java @@ -22,9 +22,6 @@ package jaxx.runtime.swing.config; * #L% */ -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.swing.config.model.CallBackEntry; import jaxx.runtime.swing.config.model.CallBackMap; import jaxx.runtime.swing.config.model.CategoryModel; @@ -32,6 +29,9 @@ import jaxx.runtime.swing.config.model.ConfigUIModel; import jaxx.runtime.swing.config.model.OptionModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.context.JAXXInitialContext; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; +import org.nuiton.jaxx.swing.extra.Swings; import javax.swing.AbstractAction; import javax.swing.Action; @@ -156,7 +156,7 @@ public class ConfigUIHandler { if (log.isDebugEnabled()) { log.debug("destroy ui " + ui.getName()); } - JAXXUtil.destroy(ui); + PropertyChangeListeners.destroy(ui); ui.getModel().destroy(); } @@ -196,7 +196,7 @@ public class ConfigUIHandler { KeyStroke.getKeyStroke("ESCAPE"), QUIT_ACTION); rootPane.getActionMap().put(QUIT_ACTION, ui.getQuit().getAction()); f.pack(); - SwingUtil.center(parentUI, f); + Swings.center(parentUI, f); f.setVisible(true); } diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHelper.java b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHelper.java index 22aeb84..9ca44f5 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHelper.java +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHelper.java @@ -24,8 +24,6 @@ package jaxx.runtime.swing.config; import com.google.common.base.Preconditions; import com.google.common.base.Supplier; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.swing.config.model.CallBackFinalizer; import jaxx.runtime.swing.config.model.CategoryModel; import jaxx.runtime.swing.config.model.ConfigUIModel; @@ -35,12 +33,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ConfigOptionDef; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.context.JAXXInitialContext; import javax.swing.Icon; import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; import java.awt.Frame; import java.io.File; -import javax.swing.table.TableCellRenderer; /** * A helper to build a config ui. diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/CategoryModel.java b/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/CategoryModel.java index 540ef9c..c649ad4 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/CategoryModel.java +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/CategoryModel.java @@ -22,7 +22,7 @@ package jaxx.runtime.swing.config.model; * #L% */ -import jaxx.runtime.JAXXUtil; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; @@ -212,7 +212,7 @@ public class CategoryModel implements Iterable<OptionModel>, Serializable { } public void destroy() { - JAXXUtil.destroy(pcs); + PropertyChangeListeners.destroy(pcs); } @Override diff --git a/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java b/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java index a44cdee..0bf2250 100644 --- a/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java +++ b/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java @@ -25,11 +25,11 @@ package jaxx.runtime.swing.config.model; import com.google.common.base.Joiner; import com.google.common.base.Supplier; import com.google.common.collect.Lists; -import jaxx.runtime.JAXXUtil; import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.config.ApplicationConfig; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; import javax.swing.Icon; import java.beans.PropertyChangeListener; @@ -403,7 +403,7 @@ public class ConfigUIModel implements Iterable<CategoryModel> { } public void destroy() { - JAXXUtil.destroy(pcs); + PropertyChangeListeners.destroy(pcs); } @Override diff --git a/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyDelegateConfigTest.java b/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyDelegateConfigTest.java index 1bacaa6..4b54765 100644 --- a/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyDelegateConfigTest.java +++ b/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyDelegateConfigTest.java @@ -22,14 +22,15 @@ package jaxx.runtime.swing.config.model; * #L% */ -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.editor.MyDefaultCellEditor; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.nuiton.config.ApplicationConfig; +import org.nuiton.jaxx.swing.extra.Icons; +import javax.swing.DefaultCellEditor; import javax.swing.ImageIcon; +import javax.swing.JCheckBox; import javax.swing.table.TableCellEditor; import java.awt.Color; import java.io.File; @@ -118,7 +119,7 @@ public class MyDelegateConfigTest { public void run() { } }; - ImageIcon icon = SwingUtil.createActionIcon("add"); + ImageIcon icon = Icons.createActionIcon("add"); ConfigUIModel configModel = builder.createModel(config) .registerCallBack("yo", "yo description", icon, callback) .flushModel(); @@ -265,7 +266,7 @@ public class MyDelegateConfigTest { @Test public void testSetOptionEditor() throws Exception { - TableCellEditor cellEditor = MyDefaultCellEditor.newBooleanEditor(); + TableCellEditor cellEditor = new DefaultCellEditor(new JCheckBox()); OptionModel optionModel = builder.createModel(config) .addCategory("cat0", "cat0 label") .addOption(MyDelegateConfig.Option.LOCALE) diff --git a/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyInheritedConfigTest.java b/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyInheritedConfigTest.java index 9442fcb..f4d86bc 100644 --- a/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyInheritedConfigTest.java +++ b/jaxx-config/src/test/java/jaxx/runtime/swing/config/model/MyInheritedConfigTest.java @@ -22,14 +22,15 @@ package jaxx.runtime.swing.config.model; * #L% */ -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.editor.MyDefaultCellEditor; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.nuiton.config.ApplicationConfig; +import org.nuiton.jaxx.swing.extra.Icons; +import javax.swing.DefaultCellEditor; import javax.swing.ImageIcon; +import javax.swing.JCheckBox; import javax.swing.table.TableCellEditor; import java.awt.Color; import java.io.File; @@ -118,7 +119,7 @@ public class MyInheritedConfigTest { public void run() { } }; - ImageIcon icon = SwingUtil.createActionIcon("add"); + ImageIcon icon = Icons.createActionIcon("add"); ConfigUIModel configModel = builder .createModel(config) .registerCallBack("yo", "yo description", icon, callback) @@ -266,7 +267,7 @@ public class MyInheritedConfigTest { @Test public void testSetOptionEditor() throws Exception { - TableCellEditor cellEditor = MyDefaultCellEditor.newBooleanEditor(); + TableCellEditor cellEditor = new DefaultCellEditor(new JCheckBox()); OptionModel optionModel = builder.createModel(config) .addCategory("cat0", "cat0 label") .addOption(MyInheritedConfig.Option.LOCALE) diff --git a/jaxx-demo/pom.xml b/jaxx-demo/pom.xml index cce50f1..a16202f 100644 --- a/jaxx-demo/pom.xml +++ b/jaxx-demo/pom.xml @@ -72,12 +72,24 @@ <dependency> <groupId>${project.groupId}</groupId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> <artifactId>jaxx-runtime</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> <artifactId>jaxx-validator</artifactId> <version>${project.version}</version> </dependency> diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoApplicationContext.java b/jaxx-demo/src/main/java/jaxx/demo/DemoApplicationContext.java index 483bea3..eb6e2e3 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoApplicationContext.java +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoApplicationContext.java @@ -22,15 +22,15 @@ package jaxx.demo; * #L% */ -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.context.DefaultApplicationContext; -import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.swing.help.JAXXHelpBroker; -import jaxx.runtime.swing.help.JAXXHelpUIHandler; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.context.DefaultApplicationContext; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.context.JAXXContextEntryDef; +import org.nuiton.jaxx.runtime.api.context.JAXXContexts; +import org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpBroker; +import org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpUIHandler; import java.io.InputStream; import java.net.URI; @@ -47,7 +47,7 @@ import static org.nuiton.i18n.I18n.t; public class DemoApplicationContext extends DefaultApplicationContext implements JAXXHelpUIHandler { static final JAXXContextEntryDef<DemoUI> MAIN_UI = - JAXXUtil.newContextEntryDef("MainUI", DemoUI.class); + JAXXContexts.newContextEntryDef("MainUI", DemoUI.class); /** The singleton instance of the main context */ private static volatile DemoApplicationContext context; diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java b/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java index 4aed261..69d2a1e 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java @@ -24,13 +24,13 @@ package jaxx.demo; import com.google.common.base.Supplier; import jaxx.demo.component.swing.JButtonDemo; -import jaxx.runtime.JAXXUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractBean; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ArgumentsParserException; import org.nuiton.config.ConfigOptionDef; +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBindings; import org.nuiton.util.version.Version; import org.nuiton.util.version.Versions; @@ -322,7 +322,7 @@ public class DemoConfig extends AbstractBean implements Supplier<ApplicationConf public void removeJaxxPropertyChangeListener() { PropertyChangeListener[] toRemove; - toRemove = JAXXUtil.findJaxxPropertyChangeListener( + toRemove = JAXXBindings.findJaxxPropertyChangeListener( DEFAULT_JAXX_PCS, applicationConfig.getPropertyChangeListeners()); if (toRemove == null || toRemove.length == 0) { diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoHelpBroker.java b/jaxx-demo/src/main/java/jaxx/demo/DemoHelpBroker.java index 4b595be..48faa49 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoHelpBroker.java +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoHelpBroker.java @@ -23,16 +23,16 @@ package jaxx.demo; */ import com.google.common.base.Preconditions; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.awt.visitor.BuildTreeVisitor; -import jaxx.runtime.awt.visitor.ComponentTreeNode; -import jaxx.runtime.awt.visitor.DebugComponentTreeNodeVisitor; -import jaxx.runtime.awt.visitor.GetCompopentAtPointVisitor; -import jaxx.runtime.swing.help.JAXXHelpBroker; -import jaxx.runtime.swing.help.JAXXHelpUI; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.internal.awt.visitor.BuildTreeVisitor; +import org.nuiton.jaxx.runtime.api.internal.awt.visitor.ComponentTreeNode; +import org.nuiton.jaxx.runtime.api.internal.awt.visitor.DebugComponentTreeNodeVisitor; +import org.nuiton.jaxx.runtime.api.internal.awt.visitor.GetCompopentAtPointVisitor; +import org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpBroker; +import org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; import javax.swing.AbstractButton; import java.awt.Component; @@ -93,7 +93,7 @@ public class DemoHelpBroker extends JAXXHelpBroker { if (comp == null) { comp = DemoApplicationContext.get().getMainUI(); } - JAXXHelpUI parentContainer = SwingUtil.getParent(comp, JAXXHelpUI.class); + JAXXHelpUI parentContainer = JAXXRuntime.getParent(comp, JAXXHelpUI.class); String result; if (parentContainer != null && this != parentContainer.getBroker()) { diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx b/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx index 207fe2f..d322de2 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx @@ -30,6 +30,8 @@ java.awt.RenderingHints javax.swing.DefaultComboBoxModel + org.nuiton.jaxx.swing.extra.Swings + org.fife.ui.rsyntaxtextarea.RSyntaxTextArea </import> @@ -65,7 +67,7 @@ public DemoConfig getConfig() { model='{new DefaultComboBoxModel()}' onItemStateChanged='if(event.getStateChange() == ItemEvent.SELECTED) { handler.updateSource(event); }'/> <javax.swing.Box.Filler - constructorParams='SwingUtil.newMinDimension(), SwingUtil.newMinDimension(), SwingUtil.newMaxXDimension()'/> + constructorParams='Swings.newMinDimension(), Swings.newMinDimension(), Swings.newMaxXDimension()'/> <FontSizor id='fontSizor' opaque='false' showFontSize='true' fontSize='{getConfig().getFontSize()}'/> </JToolBar> @@ -74,7 +76,7 @@ public DemoConfig getConfig() { constraints='BorderLayout.CENTER'> <RSyntaxTextArea id='editor' font-size='{getConfig().getFontSize()}' - minimumSize="{SwingUtil.newMinDimension()}" + minimumSize="{Swings.newMinDimension()}" antiAliasingEnabled='true' editable="false" wrapStyleWord="false" diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoSourcesHandler.java b/jaxx-demo/src/main/java/jaxx/demo/DemoSourcesHandler.java index de87e6c..2b80a5d 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoSourcesHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoSourcesHandler.java @@ -22,14 +22,14 @@ package jaxx.demo; import com.google.common.collect.Lists; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import jaxx.runtime.swing.FontSizor; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; +import org.nuiton.jaxx.swing.extra.JComboBoxes; import java.awt.event.ItemEvent; import java.io.InputStream; @@ -188,7 +188,7 @@ public class DemoSourcesHandler implements UIHandler<DemoSources> { } toFill.add(path); } - SwingUtil.fillComboBox(ui.getSourceTabs(), toFill, null); + JComboBoxes.fillComboBox(ui.getSourceTabs(), toFill, null); if (!toFill.isEmpty()) { ui.getSourceTabs().setSelectedIndex(0); } diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css b/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css index ad8de82..64ada36 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css @@ -34,7 +34,7 @@ JSplitPane { #mainFrame { title:"JAXX Demo"; - iconImage:{SwingUtil.createIcon(getConfig().getIconPath()).getImage()}; + iconImage:{Icons.createIcon(getConfig().getIconPath()).getImage()}; undecorated:{getConfig().isFullScreen()}; } diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx index 1faf8c3..8e6de59 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx @@ -28,7 +28,7 @@ jaxx.demo.tree.DemoCellRenderer jaxx.runtime.SwingUtil - jaxx.runtime.swing.CardLayout2 + org.nuiton.jaxx.swing.extra.layout.CardLayout2 jaxx.runtime.swing.StatusMessagePanel java.awt.Dimension diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java b/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java index 8865a8c..f70e6b3 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java @@ -24,22 +24,23 @@ package jaxx.demo; import jaxx.demo.tree.DemoNode; import jaxx.demo.tree.DemoTreeHelper; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.context.DefaultApplicationContext; -import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.context.JAXXInitialContext; -import jaxx.runtime.spi.UIHandler; import jaxx.runtime.swing.AboutPanel; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.swing.config.ConfigUIHelper; import jaxx.runtime.swing.log.JAXXLog4jUI; -import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.DecoratorProvider; import org.nuiton.i18n.I18n; +import org.nuiton.jaxx.runtime.api.context.DefaultApplicationContext; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.context.JAXXContextEntryDef; +import org.nuiton.jaxx.runtime.api.context.JAXXContexts; +import org.nuiton.jaxx.runtime.api.context.JAXXInitialContext; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.JTrees; +import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorProviderListCellRenderer; import javax.swing.AbstractAction; import javax.swing.InputMap; @@ -61,8 +62,8 @@ import java.net.URL; import java.util.Arrays; import java.util.Locale; -import static org.nuiton.i18n.I18n.t; import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; /** * Le handler de l'ui principale. @@ -70,13 +71,13 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @see DemoUI */ -public class DemoUIHandler implements UIHandler<DemoUI>{ +public class DemoUIHandler implements UIHandler<DemoUI> { /** Logger */ static private Log log = LogFactory.getLog(DemoUIHandler.class); static final JAXXContextEntryDef<DemoUI> MAIN_UI_ENTRY_DEF = - JAXXUtil.newContextEntryDef("mainui", DemoUI.class); + JAXXContexts.newContextEntryDef("mainui", DemoUI.class); public static final String OPEN_CONFIG_ACTION = "openConfig"; @@ -204,7 +205,7 @@ public class DemoUIHandler implements UIHandler<DemoUI>{ ui.getTreeHelper().setUI(tree, true, listener); // auto-expand node when selected - SwingUtil.addExpandOnClickListener(tree); + JTrees.addExpandOnClickListener(tree); } @@ -264,7 +265,7 @@ public class DemoUIHandler implements UIHandler<DemoUI>{ public void displayUI(final DemoUI ui, final String[] nodePath) { // expend all nodes of the demo tree - SwingUtil.expandTree(ui.getNavigation()); + JTrees.expandTree(ui.getNavigation()); SwingUtilities.invokeLater(new Runnable() { @@ -441,17 +442,17 @@ public class DemoUIHandler implements UIHandler<DemoUI>{ helper.registerCallBack("ui", n("demo.action.reload.ui"), - SwingUtil.createActionIcon("reload-ui"), + Icons.createActionIcon("reload-ui"), reloadUICallback); helper.registerCallBack("application", n("demo.action.reload.application"), - SwingUtil.createActionIcon("reload-application"), + Icons.createActionIcon("reload-application"), reloadApplicationCallback); helper.registerCallBack("log", n("demo.action.reload.logAppender"), - SwingUtil.createActionIcon("reload-log"), + Icons.createActionIcon("reload-log"), reloadLogAppenderCallback); // categorie repertoires diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css index 80e089c..0737794 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.css @@ -20,15 +20,15 @@ * #L% */ #layerUI { - blockIcon:{SwingUtil.createImageIcon("action-block.png")}; - acceptIcon:{SwingUtil.createImageIcon("action-accept.png")}; + blockIcon:{Icons.createImageIcon("action-block.png")}; + acceptIcon:{Icons.createImageIcon("action-accept.png")}; useIcon:true; blockingColor:{new Color(50,50,50)}; } #layerUI2 { - blockIcon:{SwingUtil.createImageIcon("action-block.png")}; - acceptIcon:{SwingUtil.createImageIcon("action-accept.png")}; + blockIcon:{Icons.createImageIcon("action-block.png")}; + acceptIcon:{Icons.createImageIcon("action-accept.png")}; } #buttonPane { diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx index 61582a5..2384eb58 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx @@ -25,8 +25,11 @@ <import> jaxx.runtime.SwingUtil - jaxx.runtime.swing.BlockingLayerUI - jaxx.runtime.swing.BlockingLayerUI2 + org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI + org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI2 + + org.nuiton.jaxx.swing.extra.Icons + org.nuiton.jaxx.swing.extra.JXLayers java.awt.Color java.awt.event.ActionEvent @@ -54,9 +57,9 @@ <script><![CDATA[ void $afterCompleteSetup() { - for (JComponent boxed : SwingUtil.getLayeredComponents(this)) { + for (JComponent boxed : JXLayers.getLayeredComponents(this)) { if (boxed == buttonD) { - SwingUtil.setLayerUI(boxed, layerUI2); + JXLayers.setLayerUI(boxed, layerUI2); continue; } @@ -64,16 +67,16 @@ void $afterCompleteSetup() { if (boxed == buttonC) { ui.setBlock(true); } - SwingUtil.setLayerUI(boxed, ui); + JXLayers.setLayerUI(boxed, ui); } } public void setLayer(boolean active) { - for (JComponent boxed : SwingUtil.getLayeredComponents(this)) { + for (JComponent boxed : JXLayers.getLayeredComponents(this)) { if (boxed == buttonD) { continue; } - BlockingLayerUI ui = (BlockingLayerUI) SwingUtil.getLayer(boxed).getUI(); + BlockingLayerUI ui = (BlockingLayerUI) JXLayers.getLayer(boxed).getUI(); if (boxed == buttonC) { ui.setBlock(active); } diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanComboBoxDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanComboBoxDemoHandler.java index b426a8c..a4bad54 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanComboBoxDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanComboBoxDemoHandler.java @@ -25,7 +25,7 @@ package jaxx.demo.component.jaxx.editor; import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.DemoDecoratorProvider; import jaxx.demo.entities.People; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.nuiton.decorator.JXPathDecorator; import java.util.List; diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanDoubleListDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanDoubleListDemoHandler.java index df9bb67..a9b8379 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanDoubleListDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanDoubleListDemoHandler.java @@ -31,7 +31,7 @@ import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.DemoDecoratorProvider; import jaxx.demo.entities.Movie; import jaxx.demo.entities.People; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.nuiton.decorator.JXPathDecorator; import javax.swing.event.ChangeEvent; diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanFilterableComboBoxDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanFilterableComboBoxDemoHandler.java index bd623a3..a20be32 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanFilterableComboBoxDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/BeanFilterableComboBoxDemoHandler.java @@ -25,7 +25,7 @@ package jaxx.demo.component.jaxx.editor; import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.DemoDecoratorProvider; import jaxx.demo.entities.People; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.nuiton.decorator.JXPathDecorator; import java.util.List; diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx index ee63828..eb5fd65 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx @@ -26,6 +26,9 @@ <import> org.nuiton.i18n.LanguageEnum org.nuiton.i18n.CountryEnum + + org.nuiton.jaxx.swing.extra.editor.EnumEditor + org.nuiton.jaxx.swing.extra.editor.LocaleEditor </import> <Table fill='both' constraints='BorderLayout.CENTER'> diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx index ac81728..a467833 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx @@ -28,7 +28,7 @@ jaxx.demo.entities.Movie jaxx.demo.entities.DemoDataProvider jaxx.demo.entities.DemoDecoratorProvider - jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer + org.nuiton.jaxx.swing.extra.list.renderer.DecoratorProviderListCellRenderer java.util.Collection jaxx.runtime.swing.model.GenericListModel </import> diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/SimpleTimeEditorDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/SimpleTimeEditorDemoHandler.java index fad294e..8f19ab3 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/SimpleTimeEditorDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/SimpleTimeEditorDemoHandler.java @@ -22,7 +22,7 @@ package jaxx.demo.component.jaxx.editor; * #L% */ -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; /** * Created on 11/22/13. diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/gis/CoordinateDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/gis/CoordinateDemoHandler.java index 34c4b51..d4663c2 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/gis/CoordinateDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/gis/CoordinateDemoHandler.java @@ -22,7 +22,7 @@ package jaxx.demo.component.jaxx.editor.gis; * #L% */ -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import jaxx.runtime.swing.editor.gis.DmdCoordinate; import jaxx.runtime.swing.editor.gis.DmsCoordinate; import org.apache.commons.logging.Log; diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/DateTimeEditorDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/DateTimeEditorDemoHandler.java index 8ff7746..4ac1087 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/DateTimeEditorDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/DateTimeEditorDemoHandler.java @@ -22,7 +22,7 @@ package jaxx.demo.component.jaxx.widgets.datetime; * #L% */ -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import java.text.DateFormat; import java.text.SimpleDateFormat; diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/TimeEditorDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/TimeEditorDemoHandler.java index a0ad6de..587fdd9 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/TimeEditorDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/datetime/TimeEditorDemoHandler.java @@ -22,7 +22,7 @@ package jaxx.demo.component.jaxx.widgets.datetime; * #L% */ -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import java.text.DateFormat; import java.text.SimpleDateFormat; diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/gis/CoordinatesEditorDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/gis/CoordinatesEditorDemoHandler.java index 3bbb968..480f0da 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/gis/CoordinatesEditorDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/gis/CoordinatesEditorDemoHandler.java @@ -22,7 +22,7 @@ package jaxx.demo.component.jaxx.widgets.gis; * #L% */ -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import static org.nuiton.i18n.I18n.t; diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/number/NumberEditorDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/number/NumberEditorDemoHandler.java index c053d2d..7ea24bd 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/number/NumberEditorDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/number/NumberEditorDemoHandler.java @@ -22,7 +22,7 @@ package jaxx.demo.component.jaxx.widgets.number; * #L% */ -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; /** * Created on 11/23/14. diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/select/FilterableDoubleListDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/select/FilterableDoubleListDemoHandler.java index c6edefc..60ac292 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/select/FilterableDoubleListDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/widgets/select/FilterableDoubleListDemoHandler.java @@ -25,7 +25,7 @@ package jaxx.demo.component.jaxx.widgets.select; import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.DemoDecoratorProvider; import jaxx.demo.entities.People; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.jaxx.widgets.select.FilterableDoubleList; diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx b/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx index fbe7483..fb106b0 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx @@ -25,7 +25,7 @@ layout='{new BorderLayout()}'> <import> - jaxx.runtime.JAXXBinding + org.nuiton.jaxx.runtime.api.internal.binding.JAXXBinding jaxx.runtime.FileChooserUtil java.awt.Color javax.swing.border.TitledBorder diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx index 0ab267f..1065896 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx @@ -23,6 +23,9 @@ <jaxx.demo.DemoPanel layout='{new BorderLayout()}'> <import> + + org.nuiton.jaxx.swing.extra.layout.CardLayout2 + jaxx.demo.feature.nav.tree.NavDemoTreeHelper jaxx.demo.feature.nav.treetable.NavDemoTreeTableHelper org.jdesktop.swingx.JXTreeTable diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java index 174ac52..a1498fb 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java @@ -33,10 +33,8 @@ import jaxx.demo.feature.nav.content.MoviesContentUI; import jaxx.demo.feature.nav.tree.NavDemoTreeCellRenderer; import jaxx.demo.feature.nav.tree.NavDemoTreeNode; import jaxx.demo.feature.nav.treetable.NavDemoTreeTableNode; -import jaxx.runtime.JAXXContext; import jaxx.runtime.SwingUtil; -import jaxx.runtime.spi.UIHandler; -import jaxx.runtime.swing.CardLayout2; +import org.nuiton.jaxx.swing.extra.layout.CardLayout2; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.swing.nav.NavNode; import org.apache.commons.logging.Log; @@ -44,6 +42,10 @@ import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTreeTable; import org.nuiton.decorator.DecoratorProvider; import org.nuiton.decorator.JXPathDecorator; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.JTrees; import javax.swing.ImageIcon; import javax.swing.JPanel; @@ -154,11 +156,11 @@ public class NavDemoHandler implements UIHandler<NavDemo> { }); // expand the tree - SwingUtil.expandTree(tree); + JTrees.expandTree(tree); SwingUtil.expandTreeTable(table); // auto-expand demoNode when selected - SwingUtil.addExpandOnClickListener(tree); + JTrees.addExpandOnClickListener(tree); SwingUtil.addExpandOnClickListener(table); } @@ -194,7 +196,7 @@ public class NavDemoHandler implements UIHandler<NavDemo> { } public ImageIcon getImage(AbstractDemoBean data) { - return data == null ? null : SwingUtil.createIcon(data.getImage()); + return data == null ? null : Icons.createIcon(data.getImage()); } protected void openUI(NavNode<?, ?> demoNode) { diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorContentUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorContentUI.jaxx index ac51d2b..3713ad0 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorContentUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorContentUI.jaxx @@ -24,6 +24,9 @@ <import> jaxx.demo.entities.People + + org.nuiton.jaxx.swing.extra.Swings + static org.nuiton.i18n.I18n.t </import> @@ -45,7 +48,7 @@ <JScrollPane border='{new TitledBorder("Picture")}' horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED}' verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}' - minimumSize='{SwingUtil.newMinDimension()}'> + minimumSize='{Swings.newMinDimension()}'> <JLabel horizontalAlignment='center' icon='{getHandler().getImage(getData())}'/> diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx index 573849c..9311168 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx @@ -26,8 +26,8 @@ java.util.List jaxx.demo.entities.People jaxx.runtime.swing.editor.bean.BeanListHeader - jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer - + org.nuiton.jaxx.swing.extra.list.renderer.DecoratorProviderListCellRenderer + static org.nuiton.i18n.I18n.t </import> diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MovieContentUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MovieContentUI.jaxx index 6a62da7..2906ed1 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MovieContentUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MovieContentUI.jaxx @@ -24,6 +24,9 @@ <import> jaxx.demo.entities.Movie + + org.nuiton.jaxx.swing.extra.Swings + static org.nuiton.i18n.I18n.t </import> @@ -46,7 +49,7 @@ <JScrollPane border='{new TitledBorder("Picture")}' horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED}' verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}' - minimumSize='{SwingUtil.newMinDimension()}'> + minimumSize='{Swings.newMinDimension()}'> <JLabel horizontalAlignment='center' icon='{getHandler().getImage(getData())}'/> diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx index ede7c80..c445e47 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx @@ -26,7 +26,7 @@ java.util.List jaxx.demo.entities.Movie jaxx.runtime.swing.editor.bean.BeanListHeader - jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer + org.nuiton.jaxx.swing.extra.list.renderer.DecoratorProviderListCellRenderer static org.nuiton.i18n.I18n.t </import> diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/ListBeanValidationDemoHandler.java b/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/ListBeanValidationDemoHandler.java index d1a7534..bec3a72 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/ListBeanValidationDemoHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/ListBeanValidationDemoHandler.java @@ -23,14 +23,14 @@ package jaxx.demo.feature.validation.list; import jaxx.demo.entities.DemoDecoratorProvider; import jaxx.demo.entities.People; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.spi.UIHandler; import jaxx.runtime.validator.swing.SwingListValidatorDataLocator; import jaxx.runtime.validator.swing.SwingListValidatorMessageTableRenderer; import jaxx.runtime.validator.swing.SwingValidatorUtil; import org.apache.commons.lang3.tuple.Pair; import org.jdesktop.swingx.JXTable; import org.nuiton.decorator.Decorator; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; +import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.list.BeanListValidator; @@ -67,7 +67,7 @@ public class ListBeanValidationDemoHandler implements UIHandler<ListBeanValidati dataTable.getRowSorter().setSortKeys( Arrays.asList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); - SwingUtil.setI18nTableHeaderRenderer( + JTables.setI18nTableHeaderRenderer( dataTable, n("jaxx.demo.label.id"), n("jaxx.demo.label.id.tip"), @@ -78,7 +78,7 @@ public class ListBeanValidationDemoHandler implements UIHandler<ListBeanValidati n("jaxx.demo.label.age"), n("jaxx.demo.label.age.tip")); - SwingUtil.fixTableColumnWidth(dataTable, 3, 35); + JTables.fixTableColumnWidth(dataTable, 3, 35); // register validator BeanListValidator<People> validator = ui.getValidator(); diff --git a/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/PeopleTableModel.java b/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/PeopleTableModel.java index 1e44463..7e60fbc 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/PeopleTableModel.java +++ b/jaxx-demo/src/main/java/jaxx/demo/feature/validation/list/PeopleTableModel.java @@ -24,8 +24,8 @@ package jaxx.demo.feature.validation.list; import com.google.common.collect.Lists; import jaxx.demo.entities.Identity; import jaxx.demo.entities.People; -import jaxx.runtime.SwingUtil; import org.apache.commons.lang3.tuple.Pair; +import org.nuiton.jaxx.swing.extra.JTables; import javax.swing.table.AbstractTableModel; import java.util.Arrays; @@ -59,7 +59,7 @@ public class PeopleTableModel extends AbstractTableModel { @Override public String getColumnName(int column) { - SwingUtil.ensureColumnIndex(this, column); + JTables.ensureColumnIndex(this, column); return columnNames.get(column); } @@ -76,8 +76,8 @@ public class PeopleTableModel extends AbstractTableModel { @Override public Object getValueAt(int rowIndex, int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureColumnIndex(this, columnIndex); + JTables.ensureRowIndex(this, rowIndex); People row = data.get(rowIndex); if (columnIndex == 0) { @@ -99,8 +99,8 @@ public class PeopleTableModel extends AbstractTableModel { @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureColumnIndex(this, columnIndex); + JTables.ensureRowIndex(this, rowIndex); People row = data.get(rowIndex); @@ -122,7 +122,7 @@ public class PeopleTableModel extends AbstractTableModel { } public People getBean(int row) { - SwingUtil.ensureRowIndex(this, row); + JTables.ensureRowIndex(this, row); People bean = data.get(row); return bean; } @@ -137,7 +137,7 @@ public class PeopleTableModel extends AbstractTableModel { } public void removeBean(int selectedRow) { - SwingUtil.ensureRowIndex(this, selectedRow); + JTables.ensureRowIndex(this, selectedRow); data.remove(selectedRow); fireTableRowsDeleted(selectedRow, selectedRow); } diff --git a/jaxx-maven-plugin/pom.xml b/jaxx-maven-plugin/pom.xml index 409a0fe..e1cb6af 100644 --- a/jaxx-maven-plugin/pom.xml +++ b/jaxx-maven-plugin/pom.xml @@ -50,7 +50,7 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> <version>${project.version}</version> </dependency> diff --git a/jaxx-maven-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java b/jaxx-maven-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java index 7b3de10..42c9dbf 100644 --- a/jaxx-maven-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java +++ b/jaxx-maven-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java @@ -33,10 +33,10 @@ import jaxx.compiler.binding.DataBindingHelper; import jaxx.compiler.finalizers.JAXXCompilerFinalizer; import jaxx.compiler.spi.DefaultInitializer; import jaxx.compiler.spi.Initializer; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.spi.UIHandler; -import jaxx.runtime.swing.help.JAXXHelpBroker; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpBroker; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -106,7 +106,7 @@ public class GenerateMojo extends AbstractJaxxMojo implements CompilerConfigurat * <p/> * Must not be abstract. */ - @Parameter(property = "jaxx.jaxxContextFQN", defaultValue = "jaxx.runtime.context.DefaultJAXXContext", required = true) + @Parameter(property = "jaxx.jaxxContextFQN", defaultValue = "org.nuiton.jaxx.runtime.api.context.DefaultJAXXContext", required = true) protected String jaxxContextFQN; /** @@ -268,7 +268,7 @@ public class GenerateMojo extends AbstractJaxxMojo implements CompilerConfigurat * * @since 1.3 */ - @Parameter(property = "jaxx.helpBrokerFQN", defaultValue = "jaxx.runtime.swing.help.JAXXHelpBroker") + @Parameter(property = "jaxx.helpBrokerFQN", defaultValue = "org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpBroker") protected String helpBrokerFQN; /** diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1124Test.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1124Test.java index 9277367..527c336 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1124Test.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1124Test.java @@ -21,12 +21,11 @@ */ package org.nuiton.jaxx.plugin; -import jaxx.compiler.I18nHelper; -import jaxx.runtime.JAXXUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; +import org.nuiton.jaxx.runtime.api.internal.EventListeners; import javax.swing.event.ChangeEvent; import javax.swing.event.TableColumnModelEvent; @@ -53,7 +52,7 @@ public class Bug1124Test { TableColumnModelListener listener; - listener = JAXXUtil.getEventListener( + listener = EventListeners.getEventListener( TableColumnModelListener.class, "columnAdded", this, @@ -70,7 +69,7 @@ public class Bug1124Test { Assert.assertEquals(1,i); - listener = JAXXUtil.getEventListener( + listener = EventListeners.getEventListener( TableColumnModelListener.class, "columnMarginChanged", this, diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java index 58ff931..fdb0c96 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1404Test.java @@ -38,7 +38,11 @@ public class Bug1404Test extends JaxxBaseTest { mojo.execute(); assertNumberJaxxFiles(3); - checkPattern(mojo, "import jaxx.runtime.SwingUtil;", true); - checkPattern(mojo, "import jaxx.runtime.JAXXUtil;", true); + String[] files = mojo.files; + + checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.JXLayers;", true, files[0]); + checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.JXLayers;", false, files[1], files[2]); + checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.Icons;", true, files[2]); + checkPattern(mojo, "import org.nuiton.jaxx.swing.extra.Icons;", false, files[0], files[1]); } } diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1750Test.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1750Test.java index 62f307f..611bce5 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1750Test.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/Bug1750Test.java @@ -22,12 +22,13 @@ package org.nuiton.jaxx.plugin; -import jaxx.runtime.Base64Coder; +import org.nuiton.jaxx.runtime.api.internal.descriptor.Base64Coder; import jaxx.compiler.JAXXCompiler; -import jaxx.runtime.JAXXObjectDescriptor; -import jaxx.runtime.JAXXUtil; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptor; import org.junit.Test; +import org.nuiton.jaxx.runtime.api.internal.descriptor.JAXXObjectDescriptors; + import static org.junit.Assert.*; /** @author Tony Chemit - chemit@codelutin.com */ @@ -50,7 +51,7 @@ public class Bug1750Test extends JaxxBaseTest { assertNotNull(descriptor2); assertEquals(descriptor.toString(), descriptor2.toString()); - descriptor2 = JAXXUtil.decodeJAXXObjectDescriptor(data); + descriptor2 = JAXXObjectDescriptors.decodeJAXXObjectDescriptor(data); assertNotNull(descriptor2); assertEquals(descriptor.toString(), descriptor2.toString()); @@ -60,7 +61,7 @@ public class Bug1750Test extends JaxxBaseTest { assertNotNull(descriptor2); assertEquals(descriptor.toString(), descriptor2.toString()); - descriptor2 = JAXXUtil.decodeCompressedJAXXObjectDescriptor(data); + descriptor2 = JAXXObjectDescriptors.decodeCompressedJAXXObjectDescriptor(data); assertNotNull(descriptor2); assertEquals(descriptor.toString(), descriptor2.toString()); diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java index 4592867..57a295e 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.plugin; -import jaxx.runtime.context.DefaultJAXXContext; +import org.nuiton.jaxx.runtime.api.context.DefaultJAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.maven.plugin.MojoExecutionException; diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java index a51f0ba..92cb4ad 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/DecoratorTest.java @@ -31,7 +31,7 @@ public class DecoratorTest extends JaxxBaseTest { GenerateMojo mojo = getMojo(); mojo.execute(); assertNumberJaxxFiles(1); - checkPattern(mojo, "add(SwingUtil.boxComponentWithJxLayer(boxedButton))", true); + checkPattern(mojo, "add(JXLayers.boxComponentWithJxLayer(boxedButton))", true); } } diff --git a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/JaxxBaseTest.java b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/JaxxBaseTest.java index bb7c7c8..1f3f29c 100644 --- a/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/JaxxBaseTest.java +++ b/jaxx-maven-plugin/src/test/java/org/nuiton/jaxx/plugin/JaxxBaseTest.java @@ -26,7 +26,7 @@ import jaxx.compiler.JAXXCompiler; import jaxx.compiler.JAXXCompilerFile; import jaxx.compiler.JAXXEngine; import jaxx.compiler.decorators.DefaultCompiledObjectDecorator; -import jaxx.runtime.context.DefaultJAXXContext; +import org.nuiton.jaxx.runtime.api.context.DefaultJAXXContext; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; diff --git a/jaxx-runtime-api/LICENSE.txt b/jaxx-runtime-api/LICENSE.txt new file mode 100644 index 0000000..cca7fc2 --- /dev/null +++ b/jaxx-runtime-api/LICENSE.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/jaxx-runtime-api/README.txt b/jaxx-runtime-api/README.txt new file mode 100644 index 0000000..d2e50d3 --- /dev/null +++ b/jaxx-runtime-api/README.txt @@ -0,0 +1,2 @@ +To deploy new version of pom: mvn deploy +To install localy: mvn install diff --git a/jaxx-runtime-api/changelog.txt b/jaxx-runtime-api/changelog.txt new file mode 100644 index 0000000..764da92 --- /dev/null +++ b/jaxx-runtime-api/changelog.txt @@ -0,0 +1,109 @@ +1.5 + * 20090506 [chemit] - super-pom has no dependencies + +1.3 chemit 20090409 + * 20090404 [chemit] - introduce DataContext class + * 20090331 [chemit] - introduce DecoratorUtils class + * 20090302 [chemit] - add pcs in ApplicationContext + - add method in Util to filter JAXX property changed listeners + +1.2 letellier 2009022? + * 2009021 [chemit] - introduce DefaultApplicationContext iwth annotation system. + +1.1 chemit 20090220 + * 20090124 [chemit] - add methods to retreave icons from UIManager in Util class + * 20090123 [chemit] - add a simple createIcon method in Util classe (to create an icon with no path prefix) + - add a UIManager key "default.icon.path" to be able to change the path where to find icons + * 20090122 [chemit] - refactor poms (sibling dependencies, pluginsManagment,...) + +1.0 chemit 20090111 + * 20090111 [chemit] - integrate new architecture to allow to have runtime code with NO link with compiler :) + +0.8 ??? 200812?? + * 20081228 [chemit] - generify ClassDescriptor + - introduce StylesheetHelper helper class to detach Stylesheet, Rule and Selector classes from + JAXXCompiler and make possible to extract compiler engine from runtime + + * 20081227 [chemit] - add PCS on ValidatorErrorTable to be used by table validation + * 20081218 [chemit] - improve generation of methods + * 20081214 [chemit] - can now in validation, put error with args (all args must be separated by a ##) + - improve event naming : replace the $evXXX by doMEthodName__on__field (except with optimize option) + - add jaww.runtime.swing.Utils.fillComboBox to fill a combobox model from a collection + - add addSourcesToClassPath property to add sources directories in class-path + - improve classloader managment + - keep in DataSource objetCode + - fix bug when processDataBinding on a null objectCode + - always clean demoNode cached values when selected it + - add usefull databinding method in Util + + * 20081213 [chemit] - improve navigation tree demoNode rendering with some caches + - introduce a ChildBuilder to simplify building of child nodes from a collection or array + +0.7 chemit 20081210 + * 20081210 [chemit] - fix bug 1751 + * 20081210 [chemit] - improve JAXXButtonGroup (add ActionChangeListener and toolTipText mecanism) + * 20081208 [chemit] - javabBean attribute use to initialize bean + - introduce Base64Coder to fix bug 1750 and control serailVersionUI (put them to 1L for the moment) + - introduce MultiJXPathDecorator + - add a resetAfterCompile parameter toCompilerOption to keep in test used compilers + + * 20081207 [chemit] use lutinproject 3.1 + - can exclude field from validator + * 20081202 [chemit] - add strategy for loading ui in NavigationTreeSelectionAdapter + - fix bug when searching for a inner class + + * 20081201 [chemit] - implements jaxx.runtime.JXPathDecorator + - add setcontextValue and removeContextValue on JAXXContextEntryDef + - introduce scope in BeanValidator (ERROR or WARNING) and related swing stuff + - only enter once in $initialize method in generated code + + 0.6 chemit 20081117 + * 20081118 [chemit] introduce NavigationUtil, save in context selected demoNode + * 20081107 [chemit] improve data binding and code generation : + - make possible inheritance in binding + - add an attribute javaBean to an object : will generate a full java bean support property + - make possible binding to the javaBean added properties + - clean generated code + + * 20081105 [chemit] - introduce a CardLayout2 to extends awt CardLayout + - introduce a NavigationTreeModel + - introduce a Decorator to render Object + - propagate constructor JAXXContext(JAXXContext) in JAXXObject generation + - begin of rst documentation + + * 20081104 [chemit] can add extra beanInfoSearchPath in SwingInitializer + * 20081104 [chemit] add jaxxContextImplementorClass in option to make possible use of other JAXXContext implementor. + * 20081102 [chemit] improve JAXXContext : + - introduce a JAXXContextEntryDef to qualify an entry of a JAXXContext + - do javadoc in JAXXContext + - add logic in DefaultJAXXContext : seek in parent context if entry not found + * 20081102 [chemit] improve tests : + - fix the last failed test from Jaxx original version :) + - dumps tests to JUnit4 :) + * 20081030 [chemit] improve BeanValidator : + - add full PropertyChangeEvent java-bean support and a property valid + - when remove bean from validator, must remove errors from model + - make possible to have a dynamic errorListModel in jaxx files + * 20081030 [chemit] improve JAXXContext : + - fix setContextValue bug when setting twice a same type for a same key + - implements a DefaultJAXXContext + - use this default implementation with delegate pattern in JAXXObject + * 20081030 [chemit] add JAXXAction contract to simplify init of ui with JAXXInitialContext + * 20081027 [chemit] fix bug 1722 + * 20081027 [chemit] add conversion support in validator + * 20081025 [chemit] improve BeanValidator tag : + - add a errorList attribute for set a ErrorListMouseListener on the errorList + - add a beanInitializer attribute for set the validator's bean at runtime + - add a default errorListModel value 'errors' + * 20081025 [chemit] introduce JAXXInitialContext to fill JAXXContext at runtime before $initialize() method + * 20081024 [chemit] fix validator context lost if UI is launched from another thread + 0.5 chemit 20081002 + * 20081017 [chemit] add validator support + * 20081013 [chemit] can generate logger on jaxx files + * 20081011 [chemit] improve site + * 20081011 [chemit] fix bug on JavaFileParser : works again + * 20081002 [chemit] Using lutinproject 3.0, changing groupId to org.codelutin + * 20081002 [chemit] use a single module jaxx-core (no more core, runtime and jaxx-swing modules) + * 20081002 [chemit] Introduce JAXXContext + * 20081002 [chemit] Fix bug on method creation via scripting + * 20081002 [chemit] Improve i18n integration (works now also for tabs) diff --git a/jaxx-runtime/pom.xml b/jaxx-runtime-api/pom.xml similarity index 68% copy from jaxx-runtime/pom.xml copy to jaxx-runtime-api/pom.xml index 85d49c4..b12e144 100644 --- a/jaxx-runtime/pom.xml +++ b/jaxx-runtime-api/pom.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- #%L - JAXX :: Runtime - - $Id$ - $HeadURL$ + JAXX :: Runtime Api %% Copyright (C) 2008 - 2010 CodeLutin %% @@ -34,33 +31,13 @@ </parent> <groupId>org.nuiton.jaxx</groupId> - <artifactId>jaxx-runtime</artifactId> - <name>JAXX :: Runtime</name> - <description>JAXX Runtime api</description> + <artifactId>jaxx-runtime-api</artifactId> + <name>JAXX :: Runtime Api</name> + <description>JAXX Runtime Api (comes with generated code)</description> <dependencies> <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-utils</artifactId> - </dependency> - - <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> - </dependency> - - <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-converter</artifactId> - </dependency> - - <dependency> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </dependency> - - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> @@ -76,16 +53,6 @@ </dependency> <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - </dependency> - - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - </dependency> - - <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> @@ -112,13 +79,6 @@ <artifactId>junit</artifactId> </dependency> - <!-- pour utiliser JTreeTable --> - - <dependency> - <groupId>org.swinglabs.swingx</groupId> - <artifactId>swingx-core</artifactId> - </dependency> - </dependencies> </project> diff --git a/jaxx-runtime-api/src/license/THIRD-PARTY.properties b/jaxx-runtime-api/src/license/THIRD-PARTY.properties new file mode 100644 index 0000000..aa1cf78 --- /dev/null +++ b/jaxx-runtime-api/src/license/THIRD-PARTY.properties @@ -0,0 +1,20 @@ +# Generated by org.codehaus.mojo.license.AddThirdPartyMojo +#------------------------------------------------------------------------------- +# Already used licenses in project : +# - BSD License +# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 +# - Common Public License Version 1.0 +# - GNU General Public License - Version 2 with the class path exception +# - Indiana University Extreme! Lab Software License, vesion 1.1.1 +# - Lesser General Public License (LGPL) +# - Lesser General Public License (LGPL) v 3.0 +# - Lesser General Public License (LPGL) +# - Lesser General Public License (LPGL) v 2.1 +# - MIT License +# - The Apache Software License, Version 2.0 +#------------------------------------------------------------------------------- +# Please fill the missing licenses for dependencies : +# +# +#Thu Aug 18 07:10:40 CEST 2011 +commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObject.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/JAXXObject.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/JAXXObject.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/JAXXObject.java index 0e40984..641d11a 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObject.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/JAXXObject.java @@ -19,7 +19,10 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api; + +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBinding; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; import java.awt.Container; import java.beans.PropertyChangeListener; diff --git a/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/JAXXRuntime.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/JAXXRuntime.java new file mode 100644 index 0000000..e8ebe19 --- /dev/null +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/JAXXRuntime.java @@ -0,0 +1,183 @@ +package org.nuiton.jaxx.runtime.api; + +import javax.swing.JComponent; +import javax.swing.SwingUtilities; +import javax.swing.text.AbstractDocument; +import javax.swing.text.JTextComponent; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.lang.reflect.Field; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JAXXRuntime { + private static Field numReaders; + + private static Field notifyingListeners; + + /** + * Get the first char of a String, or return default value. + * <p/> + * Used for example by generated code (i18nMnemonic). + * + * @param text the text to cut + * @param defaultValue default char value if text is null, or empty + * @return the first char of the given text or the default value if text is null or empty. + * @since 2.6.14 + */ + public static char getFirstCharAt(String text, char defaultValue) { + return text == null || text.trim().length() == 0 ? + defaultValue : text.charAt(0); + } + + /** + * Return parent's container corresponding to the Class clazz + * + * @param <O> type of container to obtain from context + * @param top the top container + * @param clazz desired + * @return parent's container + */ + @SuppressWarnings({"unchecked"}) + public static <O extends Container> O getParentContainer(Object top, + Class<O> clazz) { + + return getParent(top, clazz); + } + + /** + * Find a parent of the given {@code top} object using the container api to get up. + * <p/> + * Stop on parent when it is of the given{@code clazz} type. + * + * @param <O> type of container to obtain from context + * @param top the top container + * @param clazz desired + * @return parent's container + * @since 2.5.14 + */ + public static <O> O getParent(Object top, Class<O> clazz) { + if (top == null) { + throw new IllegalArgumentException("top parameter can not be null"); + } + if (!Container.class.isAssignableFrom(top.getClass())) { + throw new IllegalArgumentException("top parameter " + top + + " is not a " + Container.class); + } + Container parent = ((Container) top).getParent(); + if (parent != null && !clazz.isAssignableFrom(parent.getClass())) { + parent = (Container) getParent(parent, clazz); + } + return (O) parent; + } + + /** + * Set the width of the given component + * + * @param component the component to resize + * @param width the new width to apply + */ + public static void setComponentWidth(Component component, int width) { + component.setSize(width, component.getHeight()); + if (component instanceof JComponent) { + JComponent jcomponent = (JComponent) component; + jcomponent.setPreferredSize( + new Dimension(width, + jcomponent.getPreferredSize().height) + ); + jcomponent.setMinimumSize( + new Dimension(width, + jcomponent.getPreferredSize().height) + ); + if (jcomponent.isDisplayable()) { + jcomponent.revalidate(); + } + } + } + + /** + * Set the height of a given component. + * + * @param component the component to resize + * @param height the new height to apply + */ + public static void setComponentHeight(Component component, int height) { + component.setSize(component.getWidth(), height); + if (component instanceof JComponent) { + JComponent jcomponent = (JComponent) component; + jcomponent.setPreferredSize( + new Dimension(jcomponent.getPreferredSize().width, height)); + jcomponent.setMinimumSize( + new Dimension(jcomponent.getPreferredSize().width, height)); + if (jcomponent.isDisplayable()) { + jcomponent.revalidate(); + } + } + } + + public static void setText(final JTextComponent c, final String text) { + try { + // AbstractDocument deadlocks if we try to acquire a write lock while a read lock is held by the current thread + // If there are any readers, dispatch an invokeLater. This should only happen in the event of circular bindings. + // Similarly, circular bindings can result in an "Attempt to mutate in notification" error, which we deal with + // by checking for the 'notifyingListeners' property. + AbstractDocument document = (AbstractDocument) c.getDocument(); + if (numReaders == null) { + numReaders = AbstractDocument.class.getDeclaredField("numReaders"); + numReaders.setAccessible(true); + } + if (notifyingListeners == null) { + notifyingListeners = AbstractDocument.class.getDeclaredField("notifyingListeners"); + notifyingListeners.setAccessible(true); + } + + if (notifyingListeners.get(document).equals(Boolean.TRUE)) { + return; + } + + if ((Integer) numReaders.get(document) > 0) { + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + if (!c.getText().equals(text)) { + c.setText(text); + } + } + }); + return; + } + + String oldText = c.getText(); + if (oldText == null || !oldText.equals(text)) { + c.setText(text); + } + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (SecurityException e) { + c.setText(text); + } + } + + /** + * Compute the string representation of an object. + * <p/> + * Return empty string if given object is null + * + * @param value the value to write + * @return the string representation of the given object or an empty string + * if object is null. + */ + public static String getStringValue(Object value) { + String result; + result = value == null ? "" : value.toString(); + return result; + } +} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/context/DataContext.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DataContext.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/context/DataContext.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DataContext.java index 98f8fe5..dedaba6 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/context/DataContext.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DataContext.java @@ -19,12 +19,11 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; +package org.nuiton.jaxx.runtime.api.context; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.internal.binding.JAXXBindings; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; @@ -261,7 +260,7 @@ public abstract class DataContext { public void removeJaxxPropertyChangeListener() { PropertyChangeListener[] toRemove = - JAXXUtil.findJaxxPropertyChangeListener( + JAXXBindings.findJaxxPropertyChangeListener( DEFAULT_JAXX_PCS, getPropertyChangeListeners()); if (toRemove == null || toRemove.length == 0) { return; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultApplicationContext.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DefaultApplicationContext.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultApplicationContext.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DefaultApplicationContext.java index 8d412bf..1766c09 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultApplicationContext.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DefaultApplicationContext.java @@ -19,9 +19,8 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; +package org.nuiton.jaxx.runtime.api.context; -import jaxx.runtime.JAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultJAXXContext.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DefaultJAXXContext.java similarity index 96% rename from jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultJAXXContext.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DefaultJAXXContext.java index afec8ee..a1c4796 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultJAXXContext.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/DefaultJAXXContext.java @@ -19,13 +19,11 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; +package org.nuiton.jaxx.runtime.api.context; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.JAXXUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXObject; import java.util.ArrayList; import java.util.HashMap; @@ -52,7 +50,7 @@ public class DefaultJAXXContext implements JAXXContext { /** entry of the parent context */ protected static final JAXXContextEntryDef<JAXXContext> - PARENT_CONTEXT_ENTRY = JAXXUtil.newContextEntryDef(JAXXContext.class); + PARENT_CONTEXT_ENTRY = JAXXContexts.newContextEntryDef(JAXXContext.class); /** Logger */ static private final Log log = LogFactory.getLog(DefaultJAXXContext.class); @@ -161,7 +159,7 @@ public class DefaultJAXXContext implements JAXXContext { protected JAXXContextEntryDef<?> getKey(String name, Class<?> klass) { //FIXME-TC20100322 : must change this to have a store, we instanciate // a new object each time we wants to deal with the context... - return JAXXUtil.newContextEntryDef(name, klass); + return JAXXContexts.newContextEntryDef(name, klass); } @SuppressWarnings({"unchecked"}) diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXContext.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContext.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/JAXXContext.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContext.java index 269a6d5..fc19a10 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXContext.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContext.java @@ -19,10 +19,10 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.context; /** - * The {@link jaxx.runtime.JAXXContext} contract defines a generic context. + * The {@link JAXXContext} contract defines a generic context. * <p/> * A context contains two king of entries : * <p/> diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContextEntryDef.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContextEntryDef.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContextEntryDef.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContextEntryDef.java index ae51180..569304f 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContextEntryDef.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContextEntryDef.java @@ -19,9 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; - -import jaxx.runtime.JAXXContext; +package org.nuiton.jaxx.runtime.api.context; import java.io.Serializable; import java.util.List; diff --git a/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContexts.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContexts.java new file mode 100644 index 0000000..b21c99e --- /dev/null +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXContexts.java @@ -0,0 +1,122 @@ +package org.nuiton.jaxx.runtime.api.context; + +import org.nuiton.jaxx.runtime.api.JAXXObject; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JAXXContexts { + + public static final String PARENT = "parent"; + + public static <O> JAXXContextEntryDef<O> newContextEntryDef( + Class<O> klass) { + return newContextEntryDef(null, klass); + } + + public static <O> JAXXContextEntryDef<O> newContextEntryDef( + String name, Class<?> klass) { + return new JAXXContextEntryDef<O>(name, (Class<O>) klass); + } + + public static <O> JAXXContextEntryDef<List<O>> newListContextEntryDef() { + return newListContextEntryDef(null); + } + + public static <O> JAXXContextEntryDef<List<O>> newListContextEntryDef( + String name) { + Class<List<O>> castList = castList(); + JAXXContextEntryDef<List<O>> contextEntryDef = + new JAXXContextEntryDef<List<O>>(name, castList); + return contextEntryDef; + } + + public static <K, V> JAXXContextEntryDef<Map<K, V>> newMapContextEntryDef( + String name) { + JAXXContextEntryDef<Map<K, V>> contextEntryDef = + new JAXXContextEntryDef<Map<K, V>>(Map.class, name); + return contextEntryDef; + } + + /** + * Method to initialize the context of a ui. + * + * @param ui the ui + * @param parentContext the context to set in ui + */ + public static void initContext(JAXXObject ui, JAXXContext parentContext) { + + if (parentContext instanceof JAXXInitialContext) { + ((JAXXInitialContext) parentContext).to(ui); + } else { + ui.setContextValue(parentContext); + } + // if parentContext is a JAXXObject then + // add an special parent entry to can go up + if (parentContext instanceof JAXXObject) { + ui.setContextValue(parentContext, PARENT); + } + } + + private static <O> Class<List<O>> castList() { + return (Class<List<O>>) Collections.emptyList().getClass(); + } + + /** + * Test if some entries exists in a given context and throw an + * IllegalArgumentException if not. + * <p/> + * + * @param context the context to test + * @param defs the definitions of entries to seek in context + * @throws IllegalArgumentException if the entry is not found in context. + */ + public static void checkJAXXContextEntries(JAXXContext context, + JAXXContextEntryDef<?>... defs) + throws IllegalArgumentException { + + for (JAXXContextEntryDef<?> def : defs) { + Object value = def.getContextValue(context); + + if (value == null) { + throw new IllegalArgumentException( + "the context entry [" + def + "] ] was not found in " + + "context " + context); + } + } + } + + /** + * Test if a type of entry exists in a given context and throw an + * IllegalArgumentException if not found. + * <p/> + * If entry is found, return his value in context. + * + * @param <T> the type of required data + * @param context the context to test + * @param def the definition of the entry to seek in context + * @return the value from the context + * @throws IllegalArgumentException if the entry is not found in context. + */ + public static <T> T checkJAXXContextEntry(JAXXContext context, + JAXXContextEntryDef<T> def) + throws IllegalArgumentException { + + T value = def.getContextValue(context); + + if (value == null) { + throw new IllegalArgumentException( + "the context entry [" + def + "] ] was not found in " + + "context " + context); + } + + return value; + } +} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXInitialContext.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXInitialContext.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXInitialContext.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXInitialContext.java index f11abaf..dd5d244 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXInitialContext.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/context/JAXXInitialContext.java @@ -19,10 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; +package org.nuiton.jaxx.runtime.api.context; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXObject; +import org.nuiton.jaxx.runtime.api.JAXXObject; import java.util.Map.Entry; diff --git a/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/EventListeners.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/EventListeners.java new file mode 100644 index 0000000..734f429 --- /dev/null +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/EventListeners.java @@ -0,0 +1,157 @@ +package org.nuiton.jaxx.runtime.api.internal; + +import java.lang.ref.WeakReference; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.EventListener; +import java.util.List; +import java.util.Map; +import java.util.WeakHashMap; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class EventListeners { + + private static Map<Object, WeakReference<List<EventListenerDescriptor>>> + eventListeners = new WeakHashMap<Object, WeakReference<List<EventListenerDescriptor>>>(); + + public static <E extends EventListener> E getEventListener( + Class<E> listenerClass, + final String listenerMethodName, + final Object methodContainer, + String methodName) { + + WeakReference<List<EventListenerDescriptor>> ref = + eventListeners.get(methodContainer); + List<EventListenerDescriptor> descriptors = ref != null ? + ref.get() : null; + if (descriptors == null) { + descriptors = new ArrayList<EventListenerDescriptor>(); + eventListeners.put( + methodContainer, + new WeakReference<List<EventListenerDescriptor>>( + descriptors)); + } else { + for (EventListenerDescriptor descriptor : descriptors) { + if (descriptor.listenerClass.equals(listenerClass) && + (listenerMethodName == null ? + descriptor.listenerMethodName == null : + listenerMethodName.equals( + descriptor.listenerMethodName)) && + methodName.equals(descriptor.methodName)) { + return (E) descriptor.eventListener; + } + } + } + + // else we need to create a new listener + final EventListenerDescriptor descriptor = new EventListenerDescriptor(); + descriptor.listenerClass = listenerClass; + descriptor.listenerMethodName = listenerMethodName; + descriptor.methodName = methodName; + try { + final List<Method> listenerMethods = + Arrays.asList(listenerClass.getMethods()); + Method listenerMethod = null; + if (listenerMethodName != null) { + for (Method listenerMethod1 : listenerMethods) { + if (listenerMethod1.getName().equals(listenerMethodName)) { + listenerMethod = listenerMethod1; + break; + } + } + } + if (listenerMethodName != null && listenerMethod == null) { + throw new IllegalArgumentException( + "no method named " + listenerMethodName + + " found in class " + listenerClass.getName()); + } + // tchemit 2010-12-01 : we must the exact method found, some none javaBeans + // api does use different signature for some of them listener + // an exemple is the TableColumnModelListener : http://download.oracle.com/javase/6/docs/api/javax/swing/event/TableColumnMo... + // This fix the bug https://forge.nuiton.org/issues/show/1124 + Class<?>[] parameterTypes; + if (listenerMethodName != null) { + + // search an exact method, so must use the exact found listener method + parameterTypes = listenerMethod.getParameterTypes(); + } else { + + // keep this horrible code which is not safe at all : + // see previous comment + parameterTypes = listenerMethods.get(0).getParameterTypes(); + } + Class<?> methodContainerClass = methodContainer.getClass(); + final Method targetMethod = + methodContainerClass.getMethod(methodName, parameterTypes); + descriptor.eventListener = + Proxy.newProxyInstance(listenerClass.getClassLoader(), + new Class<?>[]{listenerClass}, + new InvocationHandler() { + + @Override + public Object invoke(Object proxy, + Method method, + Object[] args) { + String methodName = method.getName(); + if (listenerMethodName == null && + listenerMethods.contains(method) || + methodName.equals(listenerMethodName)) { + try { + targetMethod.setAccessible(true); + return targetMethod.invoke( + methodContainer, args); + } catch (IllegalAccessException e) { + throw new RuntimeException( + "could not invoke on container " + + methodContainer, e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } + } + if (methodName.equals("toString")) { + return toString(); + } + if (methodName.equals("equals")) { + return descriptor.eventListener == args[0]; + } + if (methodName.equals("hashCode")) { + return hashCode(); + } + return null; + } + }); + descriptors.add(descriptor); + return (E) descriptor.eventListener; + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + } + + public static <E extends EventListener> E getEventListener( + Class<E> listenerClass, + Object methodContainer, + String methodName) { + return getEventListener(listenerClass, null, methodContainer, + methodName); + } + + private static class EventListenerDescriptor { + + Class<?> listenerClass; + + String listenerMethodName; + + String methodName; + + Object eventListener; + } +} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/BuildTreeVisitor.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/BuildTreeVisitor.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/BuildTreeVisitor.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/BuildTreeVisitor.java index b3b363a..1000829 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/BuildTreeVisitor.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/BuildTreeVisitor.java @@ -1,4 +1,4 @@ -package jaxx.runtime.awt.visitor; +package org.nuiton.jaxx.runtime.api.internal.awt.visitor; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/ComponentTreeNode.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/ComponentTreeNode.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/ComponentTreeNode.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/ComponentTreeNode.java index 819e863..df70596 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/ComponentTreeNode.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/ComponentTreeNode.java @@ -1,4 +1,4 @@ -package jaxx.runtime.awt.visitor; +package org.nuiton.jaxx.runtime.api.internal.awt.visitor; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/ComponentTreeNodeVisitor.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/ComponentTreeNodeVisitor.java similarity index 94% rename from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/ComponentTreeNodeVisitor.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/ComponentTreeNodeVisitor.java index b04ad94..7f2423c 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/ComponentTreeNodeVisitor.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/ComponentTreeNodeVisitor.java @@ -1,4 +1,4 @@ -package jaxx.runtime.awt.visitor; +package org.nuiton.jaxx.runtime.api.internal.awt.visitor; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/DebugComponentTreeNodeVisitor.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/DebugComponentTreeNodeVisitor.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/DebugComponentTreeNodeVisitor.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/DebugComponentTreeNodeVisitor.java index 2b5a81b..9c19464 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/DebugComponentTreeNodeVisitor.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/DebugComponentTreeNodeVisitor.java @@ -1,4 +1,4 @@ -package jaxx.runtime.awt.visitor; +package org.nuiton.jaxx.runtime.api.internal.awt.visitor; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/GetCompopentAtPointVisitor.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/GetCompopentAtPointVisitor.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/GetCompopentAtPointVisitor.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/GetCompopentAtPointVisitor.java index b916a58..92f991b 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/GetCompopentAtPointVisitor.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/GetCompopentAtPointVisitor.java @@ -1,4 +1,4 @@ -package jaxx.runtime.awt.visitor; +package org.nuiton.jaxx.runtime.api.internal.awt.visitor; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/package.html similarity index 100% copy from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html copy to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/awt/visitor/package.html diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/DataBindingListener.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DataBindingListener.java similarity index 95% rename from jaxx-runtime/src/main/java/jaxx/runtime/DataBindingListener.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DataBindingListener.java index d0e5066..ec1e73e 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/DataBindingListener.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DataBindingListener.java @@ -19,7 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.internal.binding; + +import org.nuiton.jaxx.runtime.api.JAXXObject; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/DataBindingUpdateListener.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DataBindingUpdateListener.java similarity index 95% rename from jaxx-runtime/src/main/java/jaxx/runtime/DataBindingUpdateListener.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DataBindingUpdateListener.java index 3f44e6f..ff6a876 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/DataBindingUpdateListener.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DataBindingUpdateListener.java @@ -19,7 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.internal.binding; + +import org.nuiton.jaxx.runtime.api.JAXXObject; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/binding/DefaultJAXXBinding.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DefaultJAXXBinding.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/binding/DefaultJAXXBinding.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DefaultJAXXBinding.java index b8b9fff..ab90463 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/binding/DefaultJAXXBinding.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/DefaultJAXXBinding.java @@ -19,13 +19,11 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.binding; +package org.nuiton.jaxx.runtime.api.internal.binding; -import jaxx.runtime.JAXXBinding; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.JAXXUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXObject; import java.beans.PropertyChangeEvent; @@ -150,7 +148,7 @@ public abstract class DefaultJAXXBinding implements JAXXBinding { // the binding. We should be more efficient and only do this when it's // actually necessary if (reloadAfterFire) { - JAXXUtil.reloadBinding(this); + JAXXBindings.reloadBinding(this); } // source.removeDataBinding(id); // source.applyDataBinding(id); diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXBinding.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/JAXXBinding.java similarity index 94% rename from jaxx-runtime/src/main/java/jaxx/runtime/JAXXBinding.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/JAXXBinding.java index e72d807..57d694f 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXBinding.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/JAXXBinding.java @@ -19,7 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.internal.binding; + +import org.nuiton.jaxx.runtime.api.JAXXObject; import java.beans.PropertyChangeListener; diff --git a/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/JAXXBindings.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/JAXXBindings.java new file mode 100644 index 0000000..2ea6173 --- /dev/null +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/JAXXBindings.java @@ -0,0 +1,198 @@ +package org.nuiton.jaxx.runtime.api.internal.binding; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXObject; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeListenerProxy; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.WeakHashMap; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JAXXBindings { + + /** Logger. */ + private static final Log log = LogFactory.getLog(JAXXBindings.class); + + private static final PropertyChangeListener[] EMPTY_ARRAY_PROPERTY_CHANGE_LISTENERS = new PropertyChangeListener[0]; + + private static final Map<JAXXObject, WeakReference<List<DataBindingUpdateListener>>> + dataBindingUpdateListeners = new WeakHashMap<JAXXObject, WeakReference<List<DataBindingUpdateListener>>>(); + + /** + * To reload a binding, the method will invoke + * <ul> + * <li>{@link JAXXBinding#removeDataBinding()}</li> + * <li>{@link JAXXBinding#applyDataBinding()}</li> + * </ul> + * + * @param binding the binding to reload. + * @since 2.4.2 + */ + public static void reloadBinding(JAXXBinding binding) { + binding.removeDataBinding(); + binding.applyDataBinding(); + } + + /** + * Convinient method to reload a given binding by his id on a JAXX ui. + * + * @param src the ui to treate + * @param bindingId the id of binding to reload. + * @since 2.4.2 + */ + public static void reloadBinding(JAXXObject src, String bindingId) { + JAXXBinding dataBinding = src.getDataBinding(bindingId); + if (dataBinding != null) { + reloadBinding(dataBinding); + } else { + if (log.isWarnEnabled()) { + log.warn("Could not found binding[" + bindingId + "] on ui " + src); + } + } + } + + /** + * Convinient method to apply more than one binding on a JAXX ui. + * + * @param src the ui to treate + * @param bindings the list of binding to process. + */ + public static void applyDataBinding(JAXXObject src, String... bindings) { + for (String binding : bindings) { + src.applyDataBinding(binding); + } + } + + /** + * Convinient method to apply more than one binding on a JAXX ui. + * + * @param src the ui to treate + * @param bindings the list of binding to process. + */ + public static void applyDataBinding(JAXXObject src, + Collection<String> bindings) { + for (String binding : bindings) { + src.applyDataBinding(binding); + } + } + + /** + * Convinient method to process more than one binding on a JAXX ui. + * + * @param src the ui to treate + * @param bindings the list of binding to process. + */ + public static void processDataBinding(JAXXObject src, String... bindings) { + for (String binding : bindings) { + src.processDataBinding(binding); + } + } + + /** + * Convinient method to remove more than one binding on a JAXX ui. + * + * @param src the ui to treate + * @param bindings the list of binding to process. + */ + public static void removeDataBinding(JAXXObject src, String... bindings) { + for (String binding : bindings) { + src.removeDataBinding(binding); + } + } + + /** + * Convinient method to remove all than one binding on a JAXX ui. + * + * @param src the ui to treate + * @since 2.10 + */ + public static void removeAllDataBindings(JAXXObject src) { + + JAXXBinding[] bindings = src.getDataBindings(); + for (JAXXBinding binding : bindings) { + removeDataBinding(src, binding.getId()); + } + + } + + public static DataBindingUpdateListener getDataBindingUpdateListener( + JAXXObject object, String bindingName) { + WeakReference<List<DataBindingUpdateListener>> ref = + dataBindingUpdateListeners.get(object); + List<DataBindingUpdateListener> listeners = ref == null ? null : + ref.get(); + if (listeners == null) { + listeners = new ArrayList<DataBindingUpdateListener>(); + dataBindingUpdateListeners.put( + object, + new WeakReference<List<DataBindingUpdateListener>>( + listeners)); + } else { + for (DataBindingUpdateListener listener : listeners) { + if (bindingName.equals(listener.getBindingName())) { + return listener; + } + } + } + DataBindingUpdateListener listener = + new DataBindingUpdateListener(object, bindingName); + listeners.add(listener); + return listener; + } + + /** + * detects all PropertychangedListener added by Jaxx uis (should be a {@link + * DataBindingListener} + * + * @param propertyNames the array of property names to find + * @param listeners the array of listeners to filter + * @return the filtered listeners + */ + public static PropertyChangeListener[] findJaxxPropertyChangeListener( + String[] propertyNames, PropertyChangeListener... listeners) { + if (listeners == null || listeners.length == 0) { + return EMPTY_ARRAY_PROPERTY_CHANGE_LISTENERS; + } + List<String> pNames = Arrays.asList(propertyNames); + + List<PropertyChangeListener> toRemove = + new ArrayList<PropertyChangeListener>(); + + for (PropertyChangeListener listener : listeners) { + String pName = null; + PropertyChangeListenerProxy plistener = null; + if (listener instanceof PropertyChangeListenerProxy) { + plistener = (PropertyChangeListenerProxy) listener; + if (!pNames.contains(plistener.getPropertyName())) { + // not on the good property + continue; + } + listener = plistener.getListener(); + pName = plistener.getPropertyName(); + } + if (plistener != null && + pName != null && + listener instanceof DataBindingListener) { + if (log.isDebugEnabled()) { + log.debug("find config listener to remove [" + pName + + "] : " + listener); + } + toRemove.add(plistener); + //toRemove.add(listener); + } + } + return toRemove.toArray(new PropertyChangeListener[toRemove.size()]); + } +} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/binding/SimpleJAXXObjectBinding.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/SimpleJAXXObjectBinding.java similarity index 96% rename from jaxx-runtime/src/main/java/jaxx/runtime/binding/SimpleJAXXObjectBinding.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/SimpleJAXXObjectBinding.java index 6dd0eb2..8867ac9 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/binding/SimpleJAXXObjectBinding.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/binding/SimpleJAXXObjectBinding.java @@ -19,9 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.binding; +package org.nuiton.jaxx.runtime.api.internal.binding; -import jaxx.runtime.JAXXObject; +import org.nuiton.jaxx.runtime.api.JAXXObject; /** * Created: 5 déc. 2009 diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/css/DataBinding.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/DataBinding.java similarity index 96% rename from jaxx-runtime/src/main/java/jaxx/runtime/css/DataBinding.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/DataBinding.java index 4409557..10488b3 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/css/DataBinding.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/DataBinding.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.css; +package org.nuiton.jaxx.runtime.api.internal.css; /** * Represents a data binding bound to an attribute at runtime. Used by {@link Pseudoclasses} to keep diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/css/Pseudoclasses.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Pseudoclasses.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/css/Pseudoclasses.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Pseudoclasses.java index 4fc3536..4ab5373 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/css/Pseudoclasses.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Pseudoclasses.java @@ -19,9 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.css; +package org.nuiton.jaxx.runtime.api.internal.css; -import jaxx.runtime.JAXXObject; +import org.nuiton.jaxx.runtime.api.JAXXObject; import java.util.ArrayList; import java.util.Collections; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/css/Rule.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Rule.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/css/Rule.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Rule.java index 015996f..03c4532 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/css/Rule.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Rule.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.css; +package org.nuiton.jaxx.runtime.api.internal.css; import java.util.Map; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/css/Selector.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Selector.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/css/Selector.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Selector.java index dfff9ed..d56b391 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/css/Selector.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Selector.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.css; +package org.nuiton.jaxx.runtime.api.internal.css; public class Selector implements java.io.Serializable, Comparable<Selector> { diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/css/Stylesheet.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Stylesheet.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/css/Stylesheet.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Stylesheet.java index ebc182a..4e81407 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/css/Stylesheet.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/css/Stylesheet.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.css; +package org.nuiton.jaxx.runtime.api.internal.css; public class Stylesheet implements java.io.Serializable { diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/Base64Coder.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/Base64Coder.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/Base64Coder.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/Base64Coder.java index d8d93d5..931f04d 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/Base64Coder.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/Base64Coder.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.internal.descriptor; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/ComponentDescriptor.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/ComponentDescriptor.java similarity index 96% rename from jaxx-runtime/src/main/java/jaxx/runtime/ComponentDescriptor.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/ComponentDescriptor.java index 9c41116..478c81c 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/ComponentDescriptor.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/ComponentDescriptor.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.internal.descriptor; import java.io.Serializable; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObjectDescriptor.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/JAXXObjectDescriptor.java similarity index 93% rename from jaxx-runtime/src/main/java/jaxx/runtime/JAXXObjectDescriptor.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/JAXXObjectDescriptor.java index bfe1655..18fc69b 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObjectDescriptor.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/JAXXObjectDescriptor.java @@ -19,9 +19,10 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.internal.descriptor; -import jaxx.runtime.css.Stylesheet; + +import org.nuiton.jaxx.runtime.api.internal.css.Stylesheet; import java.io.Serializable; diff --git a/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/JAXXObjectDescriptors.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/JAXXObjectDescriptors.java new file mode 100644 index 0000000..662a902 --- /dev/null +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/internal/descriptor/JAXXObjectDescriptors.java @@ -0,0 +1,44 @@ +package org.nuiton.jaxx.runtime.api.internal.descriptor; + +import java.io.IOException; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JAXXObjectDescriptors { + + /** + * Decodes the serialized representation of a JAXXObjectDescriptor. The + * string must be a byte-to-character mapping of the binary serialization + * data for a JAXXObjectDescriptor. See the comments in + * JAXXCompiler.createJAXXObjectDescriptorField for the rationale behind + * this (admittedly ugly) approach. + * + * @param descriptor descriptor to decode + * @return the dedoced descriptor + */ + public static JAXXObjectDescriptor decodeJAXXObjectDescriptor( + String descriptor) { + try { + return (JAXXObjectDescriptor) Base64Coder.deserialize(descriptor, false); + } catch (IOException e) { + throw new RuntimeException("Internal error: can't-happen error", e); + } catch (ClassNotFoundException e) { + throw new RuntimeException("Internal error: can't-happen error", e); + } + } + + public static JAXXObjectDescriptor decodeCompressedJAXXObjectDescriptor( + String descriptor) { + try { + return (JAXXObjectDescriptor) Base64Coder.deserialize(descriptor, true); + } catch (IOException e) { + throw new RuntimeException("Internal error: can't-happen error", e); + } catch (ClassNotFoundException e) { + throw new RuntimeException("Internal error: can't-happen error", e); + } + } +} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/bean/BeanTypeAware.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/spi/BeanTypeAware.java similarity index 95% rename from jaxx-runtime/src/main/java/jaxx/runtime/bean/BeanTypeAware.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/spi/BeanTypeAware.java index f83312b..3908e33 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/bean/BeanTypeAware.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/spi/BeanTypeAware.java @@ -1,4 +1,4 @@ -package jaxx.runtime.bean; +package org.nuiton.jaxx.runtime.api.spi; /* * #%L @@ -25,7 +25,7 @@ package jaxx.runtime.bean; /** * Contract for ui which contains a {@code beanType} property. * <p/> - * In a jaxx file, if an object has a genericType and implementsthis contract + * In a jaxx file, if an object has a genericType and implements this contract * then the {@code beanType} will be automaticly setted. * * @author Tony Chemit - chemit@codelutin.com diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/spi/UIHandler.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/spi/UIHandler.java similarity index 91% rename from jaxx-runtime/src/main/java/jaxx/runtime/spi/UIHandler.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/spi/UIHandler.java index 780e5c3..9e51925 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/spi/UIHandler.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/spi/UIHandler.java @@ -1,4 +1,4 @@ -package jaxx.runtime.spi; +package org.nuiton.jaxx.runtime.api.spi; /* * #%L @@ -22,7 +22,7 @@ package jaxx.runtime.spi; * #L% */ -import jaxx.runtime.JAXXObject; +import org.nuiton.jaxx.runtime.api.JAXXObject; /** * Created on 11/26/13. diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/Application.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Application.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/Application.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Application.java index a1ad913..4a32ba9 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/Application.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Application.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.JFrame; import javax.swing.SwingUtilities; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/HBox.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBox.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/HBox.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBox.java index 5dc3517..10ff2d6 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/HBox.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBox.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.JPanel; import java.awt.Insets; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/HBoxBeanInfo.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBoxBeanInfo.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/HBoxBeanInfo.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBoxBeanInfo.java index 4302590..71c5435 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/HBoxBeanInfo.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBoxBeanInfo.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.JPanel; import javax.swing.SwingConstants; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/HBoxLayout.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBoxLayout.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/HBoxLayout.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBoxLayout.java index fff4baf..dbc3958 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/HBoxLayout.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/HBoxLayout.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.SwingConstants; import java.awt.Component; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/Item.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Item.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/Item.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Item.java index c62737b..272cd39 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/Item.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Item.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.event.SwingPropertyChangeSupport; import java.beans.PropertyChangeListener; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXButtonGroup.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXButtonGroup.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXButtonGroup.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXButtonGroup.java index 125ec3e..adae839 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXButtonGroup.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXButtonGroup.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXComboBox.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXComboBox.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXComboBox.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXComboBox.java index dc44c2e..785e946 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXComboBox.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXComboBox.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXList.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXList.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXList.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXList.java index eb6b720..f423dc3 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXList.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXList.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.AbstractListModel; import javax.swing.DefaultListCellRenderer; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXTab.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXTab.java similarity index 95% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXTab.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXTab.java index 8e60bcb..1a81b94 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXTab.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXTab.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; /** @author Tony Chemit - chemit@codelutin.com */ public class JAXXTab extends Table { diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXTree.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXTree.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXTree.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXTree.java index f127ad3..366ea0c 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JAXXTree.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/JAXXTree.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.JTree; import javax.swing.event.TreeModelEvent; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/TabInfo.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/TabInfo.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/TabInfo.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/TabInfo.java index 8bc9821..cf5d8e8 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/TabInfo.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/TabInfo.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.Icon; import javax.swing.JComponent; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/TabInfoPropertyChangeListener.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/TabInfoPropertyChangeListener.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/TabInfoPropertyChangeListener.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/TabInfoPropertyChangeListener.java index 0229b3e..eb0437a 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/TabInfoPropertyChangeListener.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/TabInfoPropertyChangeListener.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.Icon; import javax.swing.JTabbedPane; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/Table.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Table.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/Table.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Table.java index b93d36b..f567ae8 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/Table.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/Table.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.JPanel; import java.awt.GridBagConstraints; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/VBox.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBox.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/VBox.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBox.java index 46841b9..2857d2f 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/VBox.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBox.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.JPanel; import java.awt.Insets; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/VBoxBeanInfo.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBoxBeanInfo.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/VBoxBeanInfo.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBoxBeanInfo.java index 95633e5..fe61563 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/VBoxBeanInfo.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBoxBeanInfo.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.JPanel; import javax.swing.SwingConstants; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/VBoxLayout.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBoxLayout.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/VBoxLayout.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBoxLayout.java index a063939..6f959a4 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/VBoxLayout.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/VBoxLayout.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.runtime.api.swing; import javax.swing.SwingConstants; import java.awt.Component; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpBroker.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpBroker.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpBroker.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpBroker.java index 1206bdf..c39f0f7 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpBroker.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpBroker.java @@ -19,16 +19,16 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.help; +package org.nuiton.jaxx.runtime.api.swing.help; import com.google.common.base.Preconditions; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXObject; -import jaxx.runtime.awt.visitor.BuildTreeVisitor; -import jaxx.runtime.awt.visitor.ComponentTreeNode; -import jaxx.runtime.awt.visitor.GetCompopentAtPointVisitor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.internal.awt.visitor.BuildTreeVisitor; +import org.nuiton.jaxx.runtime.api.internal.awt.visitor.ComponentTreeNode; +import org.nuiton.jaxx.runtime.api.internal.awt.visitor.GetCompopentAtPointVisitor; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; import javax.help.CSH; import javax.help.HelpBroker; @@ -466,7 +466,7 @@ public class JAXXHelpBroker { * method returns when stopModal is invoked. * * @return MouseEvent The mouse event occurred. Null if - * cancelled on an undetermined object. + * cancelled on an undetermined object. */ public static MouseEvent getMouseEvent() { // Should the cursor change to a quesiton mark here or diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpUI.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpUI.java similarity index 96% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpUI.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpUI.java index 7736f87..dde3721 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpUI.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpUI.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.help; +package org.nuiton.jaxx.runtime.api.swing.help; import java.awt.Component; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpUIHandler.java b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpUIHandler.java similarity index 90% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpUIHandler.java rename to jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpUIHandler.java index 4316991..42ebc54 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/help/JAXXHelpUIHandler.java +++ b/jaxx-runtime-api/src/main/java/org/nuiton/jaxx/runtime/api/swing/help/JAXXHelpUIHandler.java @@ -19,9 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.help; +package org.nuiton.jaxx.runtime.api.swing.help; -import jaxx.runtime.JAXXContext; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; /** @author Tony Chemit - chemit@codelutin.com */ public interface JAXXHelpUIHandler { diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html b/jaxx-runtime-api/src/site/site.xml similarity index 54% copy from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html copy to jaxx-runtime-api/src/site/site.xml index e3ebdf2..92b2371 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html +++ b/jaxx-runtime-api/src/site/site.xml @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L JAXX :: Runtime @@ -19,16 +20,27 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<html> -<body> -<h1>JAXX - awt tree node API</h1> -This package contains a API to visit swing components. +<project name="${project.name}" + xmlns="http://maven.apache.org/DECORATION/1.4.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"> -<h2>ComponentTreenode</h2> -The model of a node in the tree + <bannerLeft> + <name>${project.name}</name> + <src>${siteCommonResourcesUrl}/images/logos/jaxx-logo.png</src> + <href>index.html</href> + </bannerLeft> -<h2>ComponentTreenodeVisitor</h2> -Object to load childs of Contract of a visitor on nodes. -</body> -</html> + <body> + + <breadcrumbs> + <item name="${project.name}" href="index.html"/> + </breadcrumbs> + + <menu ref="parent"/> + + <menu ref="reports"/> + + </body> +</project> diff --git a/jaxx-runtime/src/test/java/jaxx/runtime/context/DataContextEntryIteratorTest.java b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DataContextEntryIteratorTest.java similarity index 95% rename from jaxx-runtime/src/test/java/jaxx/runtime/context/DataContextEntryIteratorTest.java rename to jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DataContextEntryIteratorTest.java index 81ab569..1830196 100644 --- a/jaxx-runtime/src/test/java/jaxx/runtime/context/DataContextEntryIteratorTest.java +++ b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DataContextEntryIteratorTest.java @@ -19,17 +19,17 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; +package org.nuiton.jaxx.runtime.api.context; -import jaxx.runtime.context.DataContext.DataContextEntry; -import jaxx.runtime.context.DataContext.DataContextEntryIterator; import org.junit.BeforeClass; import org.junit.Test; +import org.nuiton.jaxx.runtime.api.context.DataContext.DataContextEntry; import java.util.regex.Pattern; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.nuiton.jaxx.runtime.api.context.DataContext.*; /** * Tests {@link DataContext}. @@ -81,7 +81,7 @@ public class DataContextEntryIteratorTest { public void testEmptyIterator() { instance = new DataContextEntryIterator( - DataContext.EMPTY_DATA_CONTEXT_ENTRY_ARRAY); + EMPTY_DATA_CONTEXT_ENTRY_ARRAY); boolean result = instance.hasNext(); assertEquals(false, result); @@ -91,7 +91,7 @@ public class DataContextEntryIteratorTest { public void testEmptyReverseIterator() { instance = new DataContextEntryIterator( - DataContext.EMPTY_DATA_CONTEXT_ENTRY_ARRAY, true); + EMPTY_DATA_CONTEXT_ENTRY_ARRAY, true); boolean result = instance.hasNext(); assertEquals(false, result); @@ -101,7 +101,7 @@ public class DataContextEntryIteratorTest { public void testEmptyLevelIterator() { instance = new DataContextEntryIterator( - DataContext.EMPTY_DATA_CONTEXT_ENTRY_ARRAY, 0); + EMPTY_DATA_CONTEXT_ENTRY_ARRAY, 0); boolean result = instance.hasNext(); assertEquals(false, result); diff --git a/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultApplicationContextTest.java b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DefaultApplicationContextTest.java similarity index 93% rename from jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultApplicationContextTest.java rename to jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DefaultApplicationContextTest.java index 378447e..dcc3195 100644 --- a/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultApplicationContextTest.java +++ b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DefaultApplicationContextTest.java @@ -19,11 +19,8 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; +package org.nuiton.jaxx.runtime.api.context; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.context.DefaultApplicationContext.AutoLoad; -import jaxx.runtime.context.DefaultApplicationContext.MethodAccess; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.After; @@ -54,13 +51,13 @@ public class DefaultApplicationContextTest { static int helloGetCount; static final JAXXContextEntryDef<String> STRING_ENTRY = - JAXXUtil.newContextEntryDef("myStringEntryKey", String.class); + JAXXContexts.newContextEntryDef("myStringEntryKey", String.class); static final JAXXContextEntryDef<List<String>> LIST_STRING_ENTRY = - JAXXUtil.newListContextEntryDef("myListEntryKey"); + JAXXContexts.newListContextEntryDef("myListEntryKey"); - @AutoLoad - @MethodAccess(methodName = "hello", target = String.class) + @DefaultApplicationContext.AutoLoad + @DefaultApplicationContext.MethodAccess(methodName = "hello", target = String.class) public static class Hello { public Hello() { diff --git a/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultJAXXContextTest.java b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DefaultJAXXContextTest.java similarity index 99% rename from jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultJAXXContextTest.java rename to jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DefaultJAXXContextTest.java index 006abdf..cdaa4d4 100644 --- a/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultJAXXContextTest.java +++ b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/context/DefaultJAXXContextTest.java @@ -19,9 +19,8 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.context; +package org.nuiton.jaxx.runtime.api.context; -import jaxx.runtime.JAXXContext; import org.junit.Assert; import org.junit.Before; import org.junit.Test; diff --git a/jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/internal/EventListenersTest.java similarity index 81% rename from jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java rename to jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/internal/EventListenersTest.java index dd207cc..f3ad8de 100644 --- a/jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java +++ b/jaxx-runtime-api/src/test/java/org/nuiton/jaxx/runtime/api/internal/EventListenersTest.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime; +package org.nuiton.jaxx.runtime.api.internal; import org.junit.Assert; import org.junit.Test; @@ -27,17 +27,17 @@ import org.junit.Test; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -public class UtilTest { +public class EventListenersTest { int count; @Test public void testGetEventListener() { count = 0; - DocumentListener listener = JAXXUtil.getEventListener(DocumentListener.class, this, "incCount"); + DocumentListener listener = EventListeners.getEventListener(DocumentListener.class, this, "incCount"); listener.insertUpdate(null); Assert.assertEquals(count, 1); - DocumentListener listener2 = JAXXUtil.getEventListener(DocumentListener.class, this, "incCount"); + DocumentListener listener2 = EventListeners.getEventListener(DocumentListener.class, this, "incCount"); listener2.removeUpdate(null); Assert.assertEquals(count, 2); //assertTrue("Received two different event listeners despite using identical parameters", listener == listener2); diff --git a/jaxx-runtime/pom.xml b/jaxx-runtime/pom.xml index 85d49c4..cf9d7f6 100644 --- a/jaxx-runtime/pom.xml +++ b/jaxx-runtime/pom.xml @@ -41,18 +41,20 @@ <dependencies> <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-utils</artifactId> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> </dependency> <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> + <version>${project.version}</version> </dependency> <dependency> <groupId>org.nuiton</groupId> - <artifactId>nuiton-converter</artifactId> + <artifactId>nuiton-utils</artifactId> </dependency> <dependency> @@ -61,46 +63,20 @@ </dependency> <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-lang3</artifactId> - </dependency> - - <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </dependency> - - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-collections4</artifactId> - </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> - - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> - <!-- pour utiliser javaHelp --> - <dependency> - <groupId>javax.help</groupId> - <artifactId>javahelp</artifactId> - </dependency> - - <dependency> - <groupId>org.swinglabs</groupId> - <artifactId>jxlayer</artifactId> - </dependency> - <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/FileChooserUtil.java b/jaxx-runtime/src/main/java/jaxx/runtime/FileChooserUtil.java index 326fa14..daa5048 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/FileChooserUtil.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/FileChooserUtil.java @@ -24,7 +24,7 @@ package jaxx.runtime; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.jaxx.runtime.JaxxFileChooser; +import org.nuiton.jaxx.swing.extra.JaxxFileChooser; import org.nuiton.util.FileUtil; import javax.swing.JFileChooser; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java b/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java index 61dbac2..f648e06 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java @@ -21,7 +21,9 @@ */ package jaxx.runtime; -import jaxx.runtime.context.JAXXInitialContext; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.context.JAXXInitialContext; /** * This is the contract to be realized by any class to be used as Action class for an ui. diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXUtil.java b/jaxx-runtime/src/main/java/jaxx/runtime/JAXXUtil.java index effb5ec..07283f4 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/JAXXUtil.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/JAXXUtil.java @@ -21,124 +21,26 @@ */ package jaxx.runtime; -import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.context.JAXXInitialContext; import org.apache.commons.beanutils.ConstructorUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.api.JAXXObject; -import java.awt.Component; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeListenerProxy; -import java.beans.PropertyChangeSupport; -import java.io.IOException; -import java.lang.ref.WeakReference; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; import java.util.Collections; -import java.util.EventListener; import java.util.List; import java.util.Map; -import java.util.WeakHashMap; public class JAXXUtil { /** Logger */ static private final Log log = LogFactory.getLog(JAXXUtil.class); - public static final String PARENT = "parent"; - // Maps root objects to lists of event listeners - private static Map<Object, WeakReference<List<EventListenerDescriptor>>> - eventListeners = new WeakHashMap<Object, WeakReference<List<EventListenerDescriptor>>>(); - - private static Map<JAXXObject, WeakReference<List<DataBindingUpdateListener>>> - dataBindingUpdateListeners = new WeakHashMap<JAXXObject, WeakReference<List<DataBindingUpdateListener>>>(); - - private static final PropertyChangeListener[] EMPTY_ARRAY_PROPERTY_CHANGE_LISTENERS = new PropertyChangeListener[0]; - - private static class EventListenerDescriptor { - - Class<?> listenerClass; - - String listenerMethodName; - - String methodName; - - Object eventListener; - } - - /** - * Decodes the serialized representation of a JAXXObjectDescriptor. The - * string must be a byte-to-character mapping of the binary serialization - * data for a JAXXObjectDescriptor. See the comments in - * JAXXCompiler.createJAXXObjectDescriptorField for the rationale behind - * this (admittedly ugly) approach. - * - * @param descriptor descriptor to decode - * @return the dedoced descriptor - */ - public static JAXXObjectDescriptor decodeJAXXObjectDescriptor( - String descriptor) { - try { - return (JAXXObjectDescriptor) Base64Coder.deserialize(descriptor, - false); - } catch (IOException e) { - throw new RuntimeException("Internal error: can't-happen error", e); - } catch (ClassNotFoundException e) { - throw new RuntimeException("Internal error: can't-happen error", e); - } - } - - public static JAXXObjectDescriptor decodeCompressedJAXXObjectDescriptor( - String descriptor) { - try { - return (JAXXObjectDescriptor) Base64Coder.deserialize(descriptor, - true); - } catch (IOException e) { - throw new RuntimeException("Internal error: can't-happen error", e); - } catch (ClassNotFoundException e) { - throw new RuntimeException("Internal error: can't-happen error", e); - } - } - - public static <O> JAXXContextEntryDef<O> newContextEntryDef( - Class<O> klass) { - return newContextEntryDef(null, klass); - } - - public static <O> JAXXContextEntryDef<O> newContextEntryDef( - String name, Class<?> klass) { - return new JAXXContextEntryDef<O>(name, (Class<O>) klass); - } - - public static <O> JAXXContextEntryDef<List<O>> newListContextEntryDef() { - return newListContextEntryDef(null); - } - - public static <O> JAXXContextEntryDef<List<O>> newListContextEntryDef( - String name) { - Class<List<O>> castList = castList(); - JAXXContextEntryDef<List<O>> contextEntryDef = - new JAXXContextEntryDef<List<O>>(name, castList); - return contextEntryDef; - } - - public static <K, V> JAXXContextEntryDef<Map<K, V>> newMapContextEntryDef( - String name) { - JAXXContextEntryDef<Map<K, V>> contextEntryDef = - new JAXXContextEntryDef<Map<K, V>>(Map.class, name); - return contextEntryDef; - } + // private static final PropertyChangeListener[] EMPTY_ARRAY_PROPERTY_CHANGE_LISTENERS = new PropertyChangeListener[0]; @SuppressWarnings({"unchecked"}) protected static <K, V> Class<Map<K, V>> castMap() { @@ -150,212 +52,6 @@ public class JAXXUtil { return (Class<List<O>>) Collections.emptyList().getClass(); } - /** - * Method to initialize the context of a ui. - * - * @param ui the ui - * @param parentContext the context to set in ui - */ - public static void initContext(JAXXObject ui, JAXXContext parentContext) { - - if (parentContext instanceof JAXXInitialContext) { - ((JAXXInitialContext) parentContext).to(ui); - } else { - ui.setContextValue(parentContext); - } - // if parentContext is a JAXXObject then - // add an special parent entry to can go up - if (parentContext instanceof JAXXObject) { - ui.setContextValue(parentContext, PARENT); - } - } - - public static <E extends EventListener> E getEventListener( - Class<E> listenerClass, - final String listenerMethodName, - final Object methodContainer, - String methodName) { - - WeakReference<List<EventListenerDescriptor>> ref = - eventListeners.get(methodContainer); - List<EventListenerDescriptor> descriptors = ref != null ? - ref.get() : null; - if (descriptors == null) { - descriptors = new ArrayList<EventListenerDescriptor>(); - eventListeners.put( - methodContainer, - new WeakReference<List<EventListenerDescriptor>>( - descriptors)); - } else { - for (EventListenerDescriptor descriptor : descriptors) { - if (descriptor.listenerClass.equals(listenerClass) && - (listenerMethodName == null ? - descriptor.listenerMethodName == null : - listenerMethodName.equals( - descriptor.listenerMethodName)) && - methodName.equals(descriptor.methodName)) { - return (E) descriptor.eventListener; - } - } - } - - // else we need to create a new listener - final EventListenerDescriptor descriptor = new EventListenerDescriptor(); - descriptor.listenerClass = listenerClass; - descriptor.listenerMethodName = listenerMethodName; - descriptor.methodName = methodName; - try { - final List<Method> listenerMethods = - Arrays.asList(listenerClass.getMethods()); - Method listenerMethod = null; - if (listenerMethodName != null) { - for (Method listenerMethod1 : listenerMethods) { - if (listenerMethod1.getName().equals(listenerMethodName)) { - listenerMethod = listenerMethod1; - break; - } - } - } - if (listenerMethodName != null && listenerMethod == null) { - throw new IllegalArgumentException( - "no method named " + listenerMethodName + - " found in class " + listenerClass.getName()); - } - // tchemit 2010-12-01 : we must the exact method found, some none javaBeans - // api does use different signature for some of them listener - // an exemple is the TableColumnModelListener : http://download.oracle.com/javase/6/docs/api/javax/swing/event/TableColumnMo... - // This fix the bug https://forge.nuiton.org/issues/show/1124 - Class<?>[] parameterTypes; - if (listenerMethodName != null) { - - // search an exact method, so must use the exact found listener method - parameterTypes = listenerMethod.getParameterTypes(); - } else { - - // keep this horrible code which is not safe at all : - // see previous comment - parameterTypes = listenerMethods.get(0).getParameterTypes(); - } - Class<?> methodContainerClass = methodContainer.getClass(); - final Method targetMethod = - methodContainerClass.getMethod(methodName, parameterTypes); - descriptor.eventListener = - Proxy.newProxyInstance(listenerClass.getClassLoader(), - new Class<?>[]{listenerClass}, - new InvocationHandler() { - - @Override - public Object invoke(Object proxy, - Method method, - Object[] args) { - String methodName = method.getName(); - if (listenerMethodName == null && - listenerMethods.contains(method) || - methodName.equals(listenerMethodName)) { - try { - targetMethod.setAccessible(true); - return targetMethod.invoke( - methodContainer, args); - } catch (IllegalAccessException e) { - throw new RuntimeException( - "could not invoke on container " + - methodContainer, e); - } catch (InvocationTargetException e) { - throw new RuntimeException(e); - } - } - if (methodName.equals("toString")) { - return toString(); - } - if (methodName.equals("equals")) { - return descriptor.eventListener == args[0]; - } - if (methodName.equals("hashCode")) { - return hashCode(); - } - return null; - } - }); - descriptors.add(descriptor); - return (E) descriptor.eventListener; - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } - } - - public static <E extends EventListener> E getEventListener( - Class<E> listenerClass, - Object methodContainer, - String methodName) { - return getEventListener(listenerClass, null, methodContainer, - methodName); - } - - public static DataBindingUpdateListener getDataBindingUpdateListener( - JAXXObject object, String bindingName) { - WeakReference<List<DataBindingUpdateListener>> ref = - dataBindingUpdateListeners.get(object); - List<DataBindingUpdateListener> listeners = ref == null ? null : - ref.get(); - if (listeners == null) { - listeners = new ArrayList<DataBindingUpdateListener>(); - dataBindingUpdateListeners.put( - object, - new WeakReference<List<DataBindingUpdateListener>>( - listeners)); - } else { - for (DataBindingUpdateListener listener : listeners) { - if (bindingName.equals(listener.getBindingName())) { - return listener; - } - } - } - DataBindingUpdateListener listener = - new DataBindingUpdateListener(object, bindingName); - listeners.add(listener); - return listener; - } - - /** - * Remove all listeners registred in given {@code pcs}. - * - * @param pcs the pcs to clean - */ - public static void destroy(PropertyChangeSupport pcs) { - PropertyChangeListener[] listeners = pcs.getPropertyChangeListeners(); - for (PropertyChangeListener l : listeners) { - if (log.isInfoEnabled()) { - if (l instanceof PropertyChangeListenerProxy) { - PropertyChangeListenerProxy ll = (PropertyChangeListenerProxy) l; - log.info("remove property change listener " + ll.getPropertyName() + " : " + l); - } else { - log.info("remove property change listener " + l); - } - } - pcs.removePropertyChangeListener(l); - } - } - - /** - * Remove all listeners registred in given {@code component}. - * - * @param component the pcs to clean - */ - public static void destroy(Component component) { - PropertyChangeListener[] listeners = component.getPropertyChangeListeners(); - for (PropertyChangeListener l : listeners) { - if (log.isInfoEnabled()) { - if (l instanceof PropertyChangeListenerProxy) { - PropertyChangeListenerProxy ll = (PropertyChangeListenerProxy) l; - log.info("remove property change listener " + ll.getPropertyName() + " : " + l); - } else { - log.info("remove property change listener " + l); - } - } - component.removePropertyChangeListener(l); - } - } - /** @deprecated since 2.4.2, never use, will not be replaced */ @Deprecated public static boolean assignment(boolean value, @@ -423,213 +119,6 @@ public class JAXXUtil { } /** - * Compute the string representation of an object. - * <p/> - * Return empty string if given object is null - * - * @param value the value to write - * @return the string representation of the given object or an empty string - * if object is null. - */ - public static String getStringValue(Object value) { - String result; - result = value == null ? "" : value.toString(); - return result; - } - - /** - * Test if some entries exists in a given context and throw an - * IllegalArgumentException if not. - * <p/> - * - * @param context the context to test - * @param defs the definitions of entries to seek in context - * @throws IllegalArgumentException if the entry is not found in context. - */ - public static void checkJAXXContextEntries(JAXXContext context, - JAXXContextEntryDef<?>... defs) - throws IllegalArgumentException { - - for (JAXXContextEntryDef<?> def : defs) { - Object value = def.getContextValue(context); - - if (value == null) { - throw new IllegalArgumentException( - "the context entry [" + def + "] ] was not found in " + - "context " + context); - } - } - } - - /** - * Test if a type of entry exists in a given context and throw an - * IllegalArgumentException if not found. - * <p/> - * If entry is found, return his value in context. - * - * @param <T> the type of required data - * @param context the context to test - * @param def the definition of the entry to seek in context - * @return the value from the context - * @throws IllegalArgumentException if the entry is not found in context. - */ - public static <T> T checkJAXXContextEntry(JAXXContext context, - JAXXContextEntryDef<T> def) - throws IllegalArgumentException { - - T value = def.getContextValue(context); - - if (value == null) { - throw new IllegalArgumentException( - "the context entry [" + def + "] ] was not found in " + - "context " + context); - } - - return value; - } - - /** - * To reload a binding, the method will invoke - * <ul> - * <li>{@link JAXXBinding#removeDataBinding()}</li> - * <li>{@link JAXXBinding#applyDataBinding()}</li> - * </ul> - * - * @param binding the binding to reload. - * @since 2.4.2 - */ - public static void reloadBinding(JAXXBinding binding) { - binding.removeDataBinding(); - binding.applyDataBinding(); - } - - /** - * Convinient method to reload a given binding by his id on a JAXX ui. - * - * @param src the ui to treate - * @param bindingId the id of binding to reload. - * @since 2.4.2 - */ - public static void reloadBinding(JAXXObject src, String bindingId) { - JAXXBinding dataBinding = src.getDataBinding(bindingId); - if (dataBinding != null) { - reloadBinding(dataBinding); - } else { - if (log.isWarnEnabled()) { - log.warn("Could not found binding[" + bindingId + "] on ui " + src); - } - } - } - - /** - * Convinient method to apply more than one binding on a JAXX ui. - * - * @param src the ui to treate - * @param bindings the list of binding to process. - */ - public static void applyDataBinding(JAXXObject src, String... bindings) { - for (String binding : bindings) { - src.applyDataBinding(binding); - } - } - - /** - * Convinient method to apply more than one binding on a JAXX ui. - * - * @param src the ui to treate - * @param bindings the list of binding to process. - */ - public static void applyDataBinding(JAXXObject src, - Collection<String> bindings) { - for (String binding : bindings) { - src.applyDataBinding(binding); - } - } - - /** - * Convinient method to process more than one binding on a JAXX ui. - * - * @param src the ui to treate - * @param bindings the list of binding to process. - */ - public static void processDataBinding(JAXXObject src, String... bindings) { - for (String binding : bindings) { - src.processDataBinding(binding); - } - } - - /** - * Convinient method to remove more than one binding on a JAXX ui. - * - * @param src the ui to treate - * @param bindings the list of binding to process. - */ - public static void removeDataBinding(JAXXObject src, String... bindings) { - for (String binding : bindings) { - src.removeDataBinding(binding); - } - } - - /** - * Convinient method to remove all than one binding on a JAXX ui. - * - * @param src the ui to treate - * @since 2.10 - */ - public static void removeAllDataBindings(JAXXObject src) { - - JAXXBinding[] bindings = src.getDataBindings(); - for (JAXXBinding binding : bindings) { - removeDataBinding(src, binding.getId()); - } - - } - - /** - * detects all PropertychangedListener added by Jaxx uis (should be a {@link - * DataBindingListener} - * - * @param propertyNames the array of property names to find - * @param listeners the array of listeners to filter - * @return the filtered listeners - */ - public static PropertyChangeListener[] findJaxxPropertyChangeListener( - String[] propertyNames, PropertyChangeListener... listeners) { - if (listeners == null || listeners.length == 0) { - return EMPTY_ARRAY_PROPERTY_CHANGE_LISTENERS; - } - List<String> pNames = Arrays.asList(propertyNames); - - List<PropertyChangeListener> toRemove = - new ArrayList<PropertyChangeListener>(); - - for (PropertyChangeListener listener : listeners) { - String pName = null; - PropertyChangeListenerProxy plistener = null; - if (listener instanceof PropertyChangeListenerProxy) { - plistener = (PropertyChangeListenerProxy) listener; - if (!pNames.contains(plistener.getPropertyName())) { - // not on the good property - continue; - } - listener = (PropertyChangeListener) plistener.getListener(); - pName = plistener.getPropertyName(); - } - if (plistener != null && - pName != null && - listener instanceof DataBindingListener) { - if (log.isDebugEnabled()) { - log.debug("find config listener to remove [" + pName + - "] : " + listener); - } - toRemove.add(plistener); - //toRemove.add(listener); - } - } - return toRemove.toArray(new PropertyChangeListener[toRemove.size()]); - } - - /** * Overrides the commons method to have generict cast fiex. * * @param type the type of objet to instanciate @@ -644,26 +133,11 @@ public class JAXXUtil { public static <O> O invokeConstructor(Class<O> type, Class<?>[] prototype, Object... parms) throws Exception { - O o = (O) ConstructorUtils.invokeConstructor(type, + O o = ConstructorUtils.invokeConstructor(type, parms, prototype ); return o; } - /** - * Copy to clipBoard the content of the given text. - * - * @param text text to copy to clipboard - * @since 2.17 - */ - public static void copyToClipBoard(String text) { - - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - if (log.isInfoEnabled()) { - log.info("Put in clipboard :\n" + text); - } - StringSelection selection = new StringSelection(text); - clipboard.setContents(selection, selection); - } } diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java b/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java index 3168bbe..3b1a7f0 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java @@ -22,89 +22,33 @@ package jaxx.runtime; import com.google.common.base.Predicate; -import jaxx.runtime.swing.Item; -import jaxx.runtime.swing.JAXXComboBox; import jaxx.runtime.swing.editor.BooleanCellEditor; -import jaxx.runtime.swing.model.JaxxDefaultComboBoxModel; -import jaxx.runtime.swing.model.JaxxDefaultListModel; -import jaxx.runtime.swing.renderer.BooleanCellRenderer; -import jaxx.runtime.swing.renderer.EmptyNumberTableCellRenderer; -import jaxx.runtime.swing.renderer.EnumTableCellRenderer; -import jaxx.runtime.swing.renderer.I18nTableCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.jdesktop.jxlayer.JXLayer; -import org.jdesktop.jxlayer.plaf.LayerUI; import org.jdesktop.swingx.JXTreeTable; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.table.renderer.BooleanCellRenderer; +import org.nuiton.jaxx.swing.extra.table.renderer.EmptyNumberTableCellRenderer; +import org.nuiton.jaxx.swing.extra.table.renderer.EnumTableCellRenderer; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultComboBoxModel; -import javax.swing.DefaultListModel; import javax.swing.Icon; import javax.swing.ImageIcon; -import javax.swing.JComboBox; -import javax.swing.JComponent; import javax.swing.JLabel; -import javax.swing.JLayeredPane; -import javax.swing.JList; -import javax.swing.JRootPane; -import javax.swing.JTabbedPane; -import javax.swing.JTable; -import javax.swing.JTree; -import javax.swing.ListModel; -import javax.swing.ListSelectionModel; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; -import javax.swing.event.HyperlinkEvent; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; -import javax.swing.table.TableColumn; -import javax.swing.table.TableModel; -import javax.swing.text.AbstractDocument; -import javax.swing.text.JTextComponent; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import java.awt.Color; -import java.awt.Component; -import java.awt.Container; -import java.awt.Desktop; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Rectangle; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.beans.BeanInfo; -import java.beans.IntrospectionException; -import java.beans.Introspector; -import java.beans.PropertyDescriptor; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Field; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EventObject; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; import java.util.Map.Entry; -import java.util.NoSuchElementException; import java.util.Properties; -import static org.nuiton.i18n.I18n.t; - /** * The runtime swing util class with some nice stuff. * <p/> @@ -118,470 +62,10 @@ public class SwingUtil extends JAXXUtil { /** Logger */ static private final Log log = LogFactory.getLog(SwingUtil.class); - public static final String DEFAULT_ICON_PATH = "/icons/"; - - public static final String DEFAULT_ICON_PATH_PROPERTY = "default.icon.path"; - - private static Field numReaders; - - private static Field notifyingListeners; - public static final String ICON_PREFIX = "icon."; public static final String COLOR_PREFIX = "color."; - public static Dimension newMinDimension() { - return new Dimension(0, 0); - } - - public static Dimension newMaxXDimension() { - return new Dimension(Short.MAX_VALUE, 0); - } - - public static Dimension newMaxYDimension() { - return new Dimension(0, Short.MAX_VALUE); - } - - public static Dimension newMaxXYDimension() { - return new Dimension(Short.MAX_VALUE, Short.MAX_VALUE); - } - - public static void setText(final JTextComponent c, final String text) { - try { - // AbstractDocument deadlocks if we try to acquire a write lock while a read lock is held by the current thread - // If there are any readers, dispatch an invokeLater. This should only happen in the event of circular bindings. - // Similarly, circular bindings can result in an "Attempt to mutate in notification" error, which we deal with - // by checking for the 'notifyingListeners' property. - AbstractDocument document = (AbstractDocument) c.getDocument(); - if (numReaders == null) { - numReaders = AbstractDocument.class.getDeclaredField("numReaders"); - numReaders.setAccessible(true); - } - if (notifyingListeners == null) { - notifyingListeners = AbstractDocument.class.getDeclaredField("notifyingListeners"); - notifyingListeners.setAccessible(true); - } - - if (notifyingListeners.get(document).equals(Boolean.TRUE)) { - return; - } - - if ((Integer) numReaders.get(document) > 0) { - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - if (!c.getText().equals(text)) { - c.setText(text); - } - } - }); - return; - } - - String oldText = c.getText(); - if (oldText == null || !oldText.equals(text)) { - c.setText(text); - } - } catch (NoSuchFieldException e) { - throw new RuntimeException(e); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } catch (SecurityException e) { - c.setText(text); - } - } - - /** - * Fill a combo box model with some datas, and select after all the given object - * - * @param combo the combo to fill - * @param data data ot inject in combo - * @param select the object to select in combo after reflling his model - */ - public static void fillComboBox(JComboBox combo, Collection<?> data, - Object select) { - - ComboBoxModel comboBoxModel = combo.getModel(); - - if (comboBoxModel instanceof JaxxDefaultComboBoxModel) { - JaxxDefaultComboBoxModel model = - (JaxxDefaultComboBoxModel) comboBoxModel; - - // evince the model - model.removeListDataListener(combo); - - // set data - model.setAllElements((Collection) data); - - // attach the model - model.addListDataListener(combo); - model.setSelectedItem(select); - } else if (comboBoxModel instanceof DefaultComboBoxModel) { - DefaultComboBoxModel model = (DefaultComboBoxModel) combo.getModel(); - // evince the model - model.removeListDataListener(combo); - model.removeAllElements(); - if (data != null) { - for (Object o : data) { - model.addElement(o); - } - } - // attach the model - model.addListDataListener(combo); - model.setSelectedItem(select); - } else { - throw new IllegalArgumentException( - "this method need a DefaultComboBoxModel for " + - "this model but was " + combo.getModel().getClass()); - } - - } - - /** - * Fill a list model with some datas, and select after all the given object - * - * @param list the list to fill - * @param data data ot inject in combo - * @param select the object to select in combo after reflling his model - */ - public static void fillList(JList list, Collection<?> data, Object select) { - ListModel listModel = list.getModel(); - if (listModel instanceof JaxxDefaultListModel) { - JaxxDefaultListModel model = (JaxxDefaultListModel) listModel; - - // evince the model -// model.removeListDataListener(combo); - model.setAllElements(data); - - // attach the model -// model.addListDataListener(combo); - list.setSelectedValue(select, true); - } else if (listModel instanceof DefaultListModel) { - DefaultListModel model = (DefaultListModel) listModel; - // evince the model -// model.removeListDataListener(combo); - model.removeAllElements(); - if (data != null) { - for (Object o : data) { - model.addElement(o); - } - } - // attach the model -// model.addListDataListener(combo); - list.setSelectedValue(select, true); - } else { - throw new IllegalArgumentException( - "this method need a DefaultListModel for this model " + - "but was " + listModel.getClass()); - } - } - - /** - * TODO move this to JAXXComboBox. - * <p/> - * Fill a combo box model with some datas, and select after all the given object - * - * @param combo the combo to fill - * @param data data ot inject in combo - * @param select the object to select in combo after reflling his model - * @param firstNull add a first null element - * @deprecated since 1.7.XXX this code is moved to JAXXComboBox - */ - @Deprecated - public static void fillComboBox(JAXXComboBox combo, - Collection<?> data, - Object select, boolean firstNull) { - List<Item> items = new ArrayList<Item>(); - if (firstNull) { - items.add(new Item("null", " ", null, false)); - } - if (data != null) { - for (Object d : data) { - Item item = new Item(d.toString(), d.toString(), d, - d.equals(select)); - items.add(item); - } - } - combo.setItems(items); - } - - /** - * Return parent's container corresponding to the Class clazz - * - * @param <O> type of container to obtain from context - * @param top the top container - * @param clazz desired - * @return parent's container - */ - @SuppressWarnings({"unchecked"}) - public static <O extends Container> O getParentContainer(Object top, - Class<O> clazz) { - - return getParent(top, clazz); - } - - - /** - * Find a parent of the given {@code top} object using the container api to get up. - * <p/> - * Stop on parent when it is of the given{@code clazz} type. - * - * @param <O> type of container to obtain from context - * @param top the top container - * @param clazz desired - * @return parent's container - * @since 2.5.14 - */ - public static <O> O getParent(Object top, Class<O> clazz) { - if (top == null) { - throw new IllegalArgumentException("top parameter can not be null"); - } - if (!Container.class.isAssignableFrom(top.getClass())) { - throw new IllegalArgumentException("top parameter " + top + - " is not a " + Container.class); - } - Container parent = ((Container) top).getParent(); - if (parent != null && !clazz.isAssignableFrom(parent.getClass())) { - parent = (Container) getParent(parent, clazz); - } - return (O) parent; - } - - public static int computeTableColumnWidth(JTable table, - Font font, - int columnIndex, String suffix) { - int width = 0; - if (font == null) { - font = table.getFont(); - } -// if (font == null) { -// TableColumn column = table.getColumnModel().getColumn(columnIndex); -// font = ((JComponent) column.getCellRenderer()).getFont(); -// } - FontMetrics fontMetrics = table.getFontMetrics(font); - for (int i = 0, rowCount = table.getRowCount(); i < rowCount; i++) { - String key = (String) table.getModel().getValueAt(i, 0); - int w = fontMetrics.stringWidth(key + suffix); - if (w > width) { - width = w; - } - } - return width; - } - - public static void fixTableColumnWidth(JTable table, - int columnIndex, - int width) { - TableColumn column = table.getColumnModel().getColumn(columnIndex); - column.setMaxWidth(width); - column.setMinWidth(width); - column.setWidth(width); - column.setPreferredWidth(width); - } - - public static void setTableColumnEditor(JTable table, - int columnIndex, - TableCellEditor editor) { - TableColumn column = table.getColumnModel().getColumn(columnIndex); - column.setCellEditor(editor); - } - - public static void setTableColumnRenderer(JTable table, - int columnIndex, - TableCellRenderer editor) { - TableColumn column = table.getColumnModel().getColumn(columnIndex); - column.setCellRenderer(editor); - } - - public static void setI18nTableHeaderRenderer(JTable table, - String... libelles) { - I18nTableCellRenderer defaultRenderer = - new I18nTableCellRenderer( - table.getTableHeader().getDefaultRenderer(), libelles); - table.getTableHeader().setDefaultRenderer(defaultRenderer); - } - - public static TableCellRenderer newStringTableCellRenderer( - final DefaultTableCellRenderer renderer, - final int length, - final boolean tooltip) { - - return new DefaultTableCellRenderer() { - - private static final long serialVersionUID = 1l; - - @Override - public Component getTableCellRendererComponent( - JTable table, - Object value, - boolean isSelected, - boolean hasFocus, - int row, - int column) { - - renderer.getTableCellRendererComponent( - table, - value, - isSelected, - hasFocus, - row, - column - ); - String val = renderer.getText(); - String val2 = val; - if (val.length() > length) { - val2 = val.substring(0, length - 3) + "..."; - } - - JComponent comp = (JComponent) - super.getTableCellRendererComponent( - table, - val2, - isSelected, - hasFocus, - row, - column - ); - if (tooltip) { - comp.setToolTipText(val); - } - return comp; - } - }; - } - - /** - * Box a component in a {@link JXLayer}. - * - * @param component the component to box - * @return the {@link JXLayer} boxing the component - */ - public static <V extends JComponent> JXLayer<V> boxComponentWithJxLayer(V component) { - JXLayer<V> layer = getLayer(component); - if (layer != null) { - return layer; - } - layer = new JXLayer<V>(); - layer.setView(component); - return layer; - } - - public static List<JComponent> getLayeredComponents(JAXXObject object) { - List<JComponent> result = new ArrayList<JComponent>(); - for (Entry<String, Object> child : object.get$objectMap().entrySet()) { - if (child.getValue() == null) { - log.warn("find a null object in $objectMap " + child.getKey()); - continue; - } - if (JComponent.class.isAssignableFrom(child.getValue().getClass())) { - JComponent comp = (JComponent) child.getValue(); - if (isLayered(comp)) { - result.add(comp); - } - } - } - return result; - } - - public static <V extends JComponent> JXLayer<V> getLayer(V comp) { - if (!isLayered(comp)) { - return null; - } - return (JXLayer<V>) comp.getParent(); - } - - public static void setLayerUI(JComponent comp, LayerUI<JComponent> ui) { - JXLayer<JComponent> layer = getLayer(comp); - layer.setUI(ui); - } - - public static boolean isLayered(JComponent comp) { - Container parent = comp.getParent(); - return parent != null && parent instanceof JXLayer<?>; - } - - /** - * recherche les composants portant le meme nom que les champs de la classe - * clazz. Cette methode est statique pour pouvoir eventuellement l'utiliser - * dans un autre context (je pense par exemple a la generation jaxx). - * <p/> - * <p/> - * Si la recherche echoue pour quelque raison que se soit, aucune exception - * n'est leve, et la map retournee est tout simplement vide ou incomplete - * - * @param clazz la classe ou recherche les champs - * @param container le container ou rechercher les composants d'edition - * @return le dictionnaire des composants recherches. - */ - public static Map<String, JComponent> lookingForEditor( - Class<?> clazz, - Container container) { - Map<String, JComponent> result = new HashMap<String, JComponent>(); - try { - // looking for all component with name set - Map<String, JComponent> allNamedComponent = - new HashMap<String, JComponent>(); - List<Container> todo = new LinkedList<Container>(); - todo.add(container); - while (todo.size() > 0) { - for (ListIterator<Container> i = todo.listIterator(); - i.hasNext(); ) { - Container parent = i.next(); - i.remove(); - for (Component c : parent.getComponents()) { - if (c instanceof Container) { - i.add((Container) c); - String name = c.getName(); - if (c instanceof JComponent && - name != null && !"".equals(name)) { - allNamedComponent.put(name, (JComponent) c); - } - } - } - } - } - - // looking for all properties on class - BeanInfo info = Introspector.getBeanInfo(clazz); - PropertyDescriptor[] props = info.getPropertyDescriptors(); - - // find if one properties have same name that component - for (PropertyDescriptor prop : props) { - String name = prop.getName(); - if (allNamedComponent.containsKey(name)) { - result.put(name, allNamedComponent.get(name)); - } - } - - } catch (IntrospectionException eee) { - log.warn("Can't introspect bean", eee); - } - - if (log.isDebugEnabled()) { - log.debug("Result: " + result); - } - - return result; - } - - /** - * Centrer un component graphique au center d'un autre component. - * <p/> - * <b>Note:</b> si le parent est null, alors on ne fait rien. - * - * @param parent le component parent - * @param component le component à centrer - */ - public static void center(Component parent, Component component) { - if (parent == null) { - return; - } - Rectangle r = parent.getBounds(); - int x = r.x + (r.width - component.getSize().width) / 2; - int y = r.y + (r.height - component.getSize().height) / 2; - component.setLocation(x, y); - } /** * Try to load the Nimbus look and feel. @@ -640,7 +124,7 @@ public class SwingUtil extends JAXXUtil { if (key.startsWith(ICON_PREFIX)) { ImageIcon icon; try { - icon = createImageIcon((String) entry.getValue()); + icon = Icons.createImageIcon((String) entry.getValue()); UIManager.put(key.substring(ICON_PREFIX.length()), icon); } catch (Exception e) { log.warn("could not load icon " + entry.getValue()); @@ -676,7 +160,7 @@ public class SwingUtil extends JAXXUtil { if (key.startsWith(ICON_PREFIX)) { ImageIcon icon; try { - icon = createImageIcon((String) entry.getValue()); + icon = Icons.createImageIcon((String) entry.getValue()); UIManager.put(key.substring(ICON_PREFIX.length()), icon); } catch (Exception e) { log.warn("could not load icon " + entry.getValue()); @@ -698,203 +182,12 @@ public class SwingUtil extends JAXXUtil { } } - /** - * Iterate the components of a {@link JTabbedPane} in natural order. - * <p/> - * Says using method {@link JTabbedPane#getComponent(int)} - * - * @param tabs the - * @return the iterator - * @since 1.4 - */ - public static TabbedPaneIterator<Component> newTabbedPaneIterator( - JTabbedPane tabs) { - return new TabbedPaneIterator<Component>(false, tabs) { - - @Override - protected Component get(int index, Component comp) { - return comp; - } - }; - } - - /** - * Return the selected rows of the table in the model coordinate or empty - * array if selection is empty. - * - * @param table the table to seek - * @return the selected rows of the table in the model coordinate or empty - * array if selection is empty. - * @since 2.5.29 - */ - public static int[] getSelectedModelRows(JTable table) { - int[] selectedRows = table.getSelectedRows(); - int length = selectedRows.length; - int[] result = new int[length]; - for (int i = 0; i < length; i++) { - int selectedRow = selectedRows[i]; - result[i] = table.convertRowIndexToModel(selectedRow); - } - return result; - } - - /** - * Return the selected row of the table in the model coordinate or - * {@code -1} if selection is empty. - * - * @param table the table to seek - * @return the selected row of the table in the model coordinate or - * {@code -1} if selection is empty. - * @since 2.5.29 - */ - public static int getSelectedModelRow(JTable table) { - int result = table.getSelectedRow(); - if (result != -1) { - // can convert to model coordinate - result = table.convertRowIndexToModel(result); - } - return result; - } - - /** - * Return the selected column of the table in the model coordinate or - * {@code -1} if selection is empty. - * - * @param table the table to seek - * @return the selected column of the table in the model coordinate or - * {@code -1} if selection is empty. - * @since 2.5.29 - */ - public static int getSelectedModelColumn(JTable table) { - int result = table.getSelectedColumn(); - if (result != -1) { - // can convert to model coordinate - result = table.convertColumnIndexToModel(result); - } - return result; - } - - /** - * Select the given row index {@code rowIndex} (from the model coordinate) - * in the selection of the given table. - * - * @param table the table where to set the selection - * @param rowIndex the row index in the model coordinate to set as selection - * @since 2.5.29 - */ - public static void setSelectionInterval(JTable table, int rowIndex) { - - int rowViewIndex = table.convertRowIndexToView(rowIndex); - table.getSelectionModel().setSelectionInterval(rowViewIndex, rowViewIndex); - } - - /** - * Add the given row index {@code rowIndex} (from the model coordinate) - * in the selection of the given table. - * - * @param table the table where to set the selection - * @param rowIndex the row index in the model coordinate to add to selection - * @since 2.5.29 - */ - public static void addRowSelectionInterval(JTable table, int rowIndex) { - - int rowViewIndex = table.convertRowIndexToView(rowIndex); - table.getSelectionModel().addSelectionInterval(rowViewIndex, rowViewIndex); - } - - /** - * A simple iterator on a {@link JTabbedPane}. - * <p/> - * Implements the method {@link #get(int, Component)} to obtain - * the data required given the component (or index). - * <p/> - * You can also inverse the order by usin the method {@link #reverse()}. - * <p/> - * Note: After the use of the method {@link #reverse()} the iterator returns - * to the first element. - * - * @param <O> the type of return elements. - * @since 1.4 - */ - public static abstract class TabbedPaneIterator<O> implements Iterator<O> { - - final JTabbedPane tabs; - - boolean reverse; - - int index; - - int increment; - - protected abstract O get(int index, Component comp); - - public TabbedPaneIterator(boolean reverse, JTabbedPane tabs) { - this.tabs = tabs; - setReverse(reverse); - } - - public void reset() { - setReverse(reverse); - } - - public int size() { - return tabs.getTabCount(); - } - - public TabbedPaneIterator<O> reverse() { - setReverse(!reverse); - return this; - } - - @Override - public boolean hasNext() { - return reverse ? index > 0 : index < tabs.getTabCount(); - } - - public int getIndex() { - return index; - } - - @Override - public O next() { - if (!hasNext()) { - throw new NoSuchElementException(); - } - Component next = tabs.getComponentAt(index); - O result = get(index, next); - index += increment; - return result; - } - - @Override - public void remove() { - throw new IllegalStateException("not implemented for " + this); - } - - @Override - public String toString() { - return super.toString() + "< reverse:" + reverse + ", index:" + - index + ", size:" + tabs.getTabCount() + " >"; - } - - protected void setReverse(boolean reverse) { - if (reverse) { - index = tabs.getTabCount() - 1; - increment = -1; - } else { - index = 0; - increment = 1; - } - this.reverse = reverse; - } - } - public static JLabel newLabel(String text, Object iconKey, int aligment) { Icon icon = null; if (iconKey instanceof Icon) { icon = (Icon) iconKey; } else if (iconKey instanceof String) { - icon = getUIManagerActionIcon((String) iconKey); + icon = Icons.getUIManagerActionIcon((String) iconKey); } JLabel result; if (icon == null) { @@ -905,125 +198,12 @@ public class SwingUtil extends JAXXUtil { return result; } - /** - * Gets the higest visible component in a ancestor hierarchy at - * specific x,y coordinates - * - * @param parent - * @param x - * @param y - * @return the deppest component - */ - public static Component getDeepestObjectAt(Component parent, int x, int y) { - - if (parent instanceof Container) { - Container cont = (Container) parent; - // use a copy of 1.3 Container.findComponentAt - Component child = findComponentAt(cont, - cont.getWidth(), - cont.getHeight(), x, y); - if (child != null && child != cont) { - //log.info("child find : " + child.getName()); - if (child instanceof JRootPane) { - JLayeredPane lp = ((JRootPane) child).getLayeredPane(); - Rectangle b = lp.getBounds(); - child = getDeepestObjectAt(lp, x - b.x, y - b.y); - } - if (child != null) { - return child; - } - } - } - // if the parent is not a Container then it might be a MenuItem. - // But even if it isn't a MenuItem just return the parent because - // that's a close as we can come. - return parent; - } - - public static Component findComponentAt(Container cont, - int width, - int height, - int x, - int y) { - //log.info("container : " + cont.getName()); - synchronized (cont.getTreeLock()) { - - if (!(x >= 0 && x < width && y >= 0 && y < height && - cont.isVisible() && cont.isEnabled())) { - return null; - } - - Component[] component = cont.getComponents(); - int ncomponents = cont.getComponentCount(); - - // Two passes: see comment in sun.awt.SunGraphicsCallback - for (int i = 0; i < ncomponents; i++) { - Component comp = component[i]; - Rectangle rect = null; - - if (comp != null && !comp.isLightweight()) { - if (rect == null || rect.width == 0 || rect.height == 0) { - rect = comp.getBounds(); - } - if (comp instanceof JXLayer<?>) { - JXLayer<?> layer = (JXLayer<?>) comp; - comp = layer.getView(); - } - if (comp instanceof Container) { - comp = findComponentAt( - (Container) comp, - rect.width, - rect.height, - x - rect.x, - y - rect.y - ); - } else { - comp = comp.getComponentAt(x - rect.x, y - rect.y); - } - if (comp != null && comp.isVisible() && comp.isEnabled()) { - return comp; - } - } - } - - for (int i = 0; i < ncomponents; i++) { - Component comp = component[i]; - Rectangle rect = null; - - if (comp != null && comp.isLightweight()) { - if (rect == null || rect.width == 0 || rect.height == 0) { - rect = comp.getBounds(); - } - if (comp instanceof JXLayer<?>) { - JXLayer<?> layer = (JXLayer<?>) comp; - comp = layer.getView(); - } - if (comp instanceof Container) { - comp = findComponentAt( - (Container) comp, - rect.width, - rect.height, - x - rect.x, - y - rect.y - ); - } else { - comp = comp.getComponentAt(x - rect.x, y - rect.y); - } - if (comp != null && comp.isVisible() && comp.isEnabled()) { - return comp; - } - } - } - return cont; - } - } - public static TableCellRenderer newDeleteCellRenderer( DefaultTableCellRenderer renderer) { Icon icon = UIManager.getIcon("Table.removeIcon"); if (icon == null) { // try with default icon - icon = createActionIcon("delete"); + icon = Icons.createActionIcon("delete"); } return new BooleanCellEditor(renderer, icon); } @@ -1059,83 +239,6 @@ public class SwingUtil extends JAXXUtil { } /** - * Open a link coming from a {@link HyperlinkEvent}. - * <p/> - * And try to open the link if an url in a browser. - * - * @param he the event to treate - * @since 1.6.0 - */ - public static void openLink(HyperlinkEvent he) { - if (he.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { - - if (Desktop.isDesktopSupported()) { - try { - URL u = he.getURL(); - if (u.getProtocol().equalsIgnoreCase("mailto") || - u.getProtocol().equalsIgnoreCase("http") || - u.getProtocol().equalsIgnoreCase("ftp")) { - Desktop.getDesktop().browse(u.toURI()); - } - } catch (IOException e) { - if (log.isErrorEnabled()) { - log.error("Error while opening link", e); - } - } catch (URISyntaxException e) { - if (log.isErrorEnabled()) { - log.error("Error while opening link", e); - } - } - } - } - } - - public static void openLink(String url) { - - try { - if (!Desktop.isDesktopSupported()) { - throw new IllegalStateException( - t("swing.error.desktop.not.supported")); - } - - - Desktop desktop = Desktop.getDesktop(); - - if (!desktop.isSupported(Desktop.Action.BROWSE)) { - - throw new IllegalStateException( - t("swing.error.desktop.browse.not.supported")); - } - - URI uri = new URI(url); - desktop.browse(uri); - } catch (Exception e) { - - if (log.isErrorEnabled()) { - log.error("Error while opening link", e); - } - } - } - - /** - * Expand all childs of a tree. - * - * @param tree the tree to expand - */ - public static void expandTree(final JTree tree) { - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - int i = 0; - while (i < tree.getRowCount()) { - tree.expandRow(i++); - } - } - }); - } - - /** * Expand all childs of a tree table. * <p/> * FIXME : Voir pour enlever le copier coller @@ -1156,43 +259,6 @@ public class SwingUtil extends JAXXUtil { } /** - * Add a listener of tree selection model to expand a new selected node - * when it is selected. - * - * @param tree the tree to treate - */ - public static void addExpandOnClickListener(final JTree tree) { - - tree.getSelectionModel().addTreeSelectionListener( - new TreeSelectionListener() { - - @Override - public void valueChanged(final TreeSelectionEvent e) { - TreeNode node = (TreeNode) - e.getPath().getLastPathComponent(); - if (node != null && !node.isLeaf()) { - - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - for (TreePath path : e.getPaths()) { - if (e.isAddedPath(path) && - !tree.isExpanded(path)) { - log.info("expand node [" + path - + "]"); - // will expand the node - tree.expandPath(path); - } - } - } - }); - } - } - }); - } - - /** * Add a listener of tree table selection model to expand a new selected * node when it is selected. * <p/> @@ -1228,301 +294,4 @@ public class SwingUtil extends JAXXUtil { }); } - /** - * Set the width of the given component - * - * @param component the component to resize - * @param width the new width to apply - */ - public static void setComponentWidth(Component component, int width) { - component.setSize(width, component.getHeight()); - if (component instanceof JComponent) { - JComponent jcomponent = (JComponent) component; - jcomponent.setPreferredSize( - new Dimension(width, - jcomponent.getPreferredSize().height) - ); - jcomponent.setMinimumSize( - new Dimension(width, - jcomponent.getPreferredSize().height) - ); - if (jcomponent.isDisplayable()) { - jcomponent.revalidate(); - } - } - } - - /** - * Set the height of a given component. - * - * @param component the component to resize - * @param height the new height to apply - */ - public static void setComponentHeight(Component component, int height) { - component.setSize(component.getWidth(), height); - if (component instanceof JComponent) { - JComponent jcomponent = (JComponent) component; - jcomponent.setPreferredSize( - new Dimension(jcomponent.getPreferredSize().width, height)); - jcomponent.setMinimumSize( - new Dimension(jcomponent.getPreferredSize().width, height)); - if (jcomponent.isDisplayable()) { - jcomponent.revalidate(); - } - } - } - - public static ImageIcon createIcon(String path) { - URL imgURL = JAXXUtil.class.getResource(path); - if (imgURL != null) { - return new ImageIcon(imgURL); - } else { - throw new IllegalArgumentException("could not find icon " + path); - } - } - - /** - * @param path the location of icons in root directory icons - * @return the icon at {@link #getIconPath()}+path - */ - public static ImageIcon createImageIcon(String path) { - String iconPath = getIconPath(); - return createIcon(iconPath + path); - } - - /** - * @param key the key of the icon to retreave from {@link UIManager} - * @return the icon, or <code>null if no icon found in {@link UIManager} - */ - public static Icon getUIManagerIcon(String key) { - return UIManager.getIcon(key); - } - - /** - * retreave for the {@link UIManager} the icon prefixed by {@code action}. - * - * @param key the key of the action icon to retreave from {@link UIManager} - * @return the icon, or <code>null if no icon found in {@link UIManager} - */ - public static Icon getUIManagerActionIcon(String key) { - return getUIManagerIcon("action." + key); - } - - public static ImageIcon createActionIcon(String name) { - String iconPath = getIconPath(); - return createIcon(iconPath + "action-" + name + ".png"); - } - - public static ImageIcon createI18nIcon(String name) { - String iconPath = getIconPath(); - return createIcon(iconPath + "i18n/" + name + ".png"); - } - - private static String getIconPath() { - String iconPath = UIManager.getString(DEFAULT_ICON_PATH_PROPERTY); - if (iconPath == null) { - iconPath = DEFAULT_ICON_PATH; - } else { - if (!iconPath.endsWith("/")) { - iconPath += "/"; - } - } - return iconPath; - } - - /** - * Add {@link java.awt.event.KeyListener} to focus next editable cell on TAB key - * - * @param table to add TAB {@link java.awt.event.KeyListener} - */ - public static void makeTableTabFocusable(final JTable table) { - table.setCellSelectionEnabled(true); - table.setSurrendersFocusOnKeystroke(true); - table.addKeyListener(new KeyAdapter() { - - @Override - public void keyReleased(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_TAB) { - - // get table informations - int selectedColumn = table.getSelectedColumn(); - int selectedRow = table.getSelectedRow(); - - if (log.isDebugEnabled()) { - log.debug("Selected was row[" + selectedRow + "] column[" + selectedColumn + "]"); - } - - int columnCount = table.getColumnCount(); - int rowCount = table.getRowCount(); - - // search on current line - for (int toSelectColumn = selectedColumn; toSelectColumn < columnCount; toSelectColumn++) { - - if (editCell(table, selectedRow, toSelectColumn)) { - return; - } - } - - // search on other lines - for (int toSelectRow = selectedRow; toSelectRow < rowCount; toSelectRow++) { - for (int toSelectColumn = 0; toSelectColumn < columnCount; toSelectColumn++) { - - if (editCell(table, toSelectRow, toSelectColumn)) { - return; - } - } - } - } - } - }); - } - - /** - * Used to edit a cell of a given table. - * - * @param table the table to edit - * @param row row index of cell to editing - * @param colummn column index of cell to editing - * @return {@code false} if for any reason the cell cannot be edited, - * or if the indices are invalid - */ - public static boolean editCell(JTable table, int row, int colummn) { - - boolean result = false; - if (table.isCellEditable(row, colummn)) { - - if (table.isEditing()) { - - int editingRow = table.getEditingRow(); - int editingColumn = table.getEditingColumn(); - - // stop edition - TableCellEditor cellEditor = table.getCellEditor(editingRow, - editingColumn); - cellEditor.stopCellEditing(); - } - - // select row - table.setColumnSelectionInterval(colummn, colummn); - table.setRowSelectionInterval(row, row); - - // edit cell - result = table.editCellAt(row, colummn, new EventObject(table)); - Component component = table.getEditorComponent(); - component.requestFocus(); - - if (log.isDebugEnabled()) { - log.debug("Select row[" + row + "] column[" + colummn + - "] return : " + result); - } - } - return result; - } - - public static void ensureRowIndex(TableModel model, int rowIndex) - throws ArrayIndexOutOfBoundsException { - if (rowIndex < -1 || rowIndex >= model.getRowCount()) { - throw new ArrayIndexOutOfBoundsException( - "the rowIndex was " + rowIndex + ", but should be int [0," - + (model.getRowCount() - 1) + "]"); - } - } - - public static void ensureColumnIndex(TableModel model, int index) - throws ArrayIndexOutOfBoundsException { - if (index < -1 || index >= model.getColumnCount()) { - throw new ArrayIndexOutOfBoundsException( - "the columnIndex was " + index + ", but should be int [0," - + (model.getColumnCount() - 1) + "]"); - } - } - - /** - * Add to a given table a selec tion model listener to always scroll to - * current cell selection. - * - * @param table the table - * @since 2.5.3 - */ - public static void scrollToTableSelection(final JTable table) { - - table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { - @Override - public void valueChanged(ListSelectionEvent e) { - ListSelectionModel listSelectionModel = - (ListSelectionModel) e.getSource(); - int firstIndex = e.getFirstIndex(); - int lastIndex = e.getLastIndex(); - Integer newSelectedRow = null; - - if (listSelectionModel.isSelectionEmpty()) { - - // no selection - } else if (listSelectionModel.isSelectedIndex(firstIndex)) { - - // use first index - newSelectedRow = firstIndex; - } else if (listSelectionModel.isSelectedIndex(lastIndex)) { - - // use last index - newSelectedRow = lastIndex; - } - if (newSelectedRow != null) { - Rectangle rect = table.getCellRect(newSelectedRow, 0, true); - table.scrollRectToVisible(rect); - } - } - }); - } - - /** - * Get the first char of a String, or return default value. - * <p/> - * Used for example by generated code (i18nMnemonic). - * - * @param text the text to cut - * @param defaultValue default char value if text is null, or empty - * @return the first char of the given text or the default value if text is null or empty. - * @since 2.6.14 - */ - public static char getFirstCharAt(String text, char defaultValue) { - return text == null || text.trim().length() == 0 ? - defaultValue : text.charAt(0); - } - - public static void openLink(URI uri) { - - Desktop desktop = getDesktopForBrowse(); - - try { - - desktop.browse(uri); - } catch (Exception e) { - - throw new RuntimeException( - t("application.error.cannot.open.link", uri), e); - } - } - - public static Desktop getDesktopForBrowse() { - - if (!Desktop.isDesktopSupported()) { - throw new RuntimeException( - t("application.error.desktop.not.supported")); - } - - Desktop desktop = Desktop.getDesktop(); - - if (!desktop.isSupported(Desktop.Action.BROWSE)) { - - throw new RuntimeException( - t("application.error.desktop.browse.not.supported")); - } - - return desktop; - } - - public static DefaultComboBoxModel newComboModel(Object... items) { - return new DefaultComboBoxModel(items); - } } diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JTables.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/JTables.java deleted file mode 100644 index f5d93c6..0000000 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/JTables.java +++ /dev/null @@ -1,117 +0,0 @@ -package jaxx.runtime.swing; - -/* - * #%L - * JAXX :: Runtime - * %% - * Copyright (C) 2008 - 2014 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JTable; - -/** - * Some usefull methods on {@link JTable}. - * - * Created on 12/4/14. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 2.18 - */ -public class JTables { - - /** Logger. */ - private static final Log log = LogFactory.getLog(JTables.class); - - public static void selectFirstCellOnFirstRowAndStopEditing(JTable table) { - - // select first cell - doSelectCell(table, 0, 0); - - if (table.isEditing()) { - - // but no edit it - table.getCellEditor().stopCellEditing(); - } - } - - public static void selectFirstCellOnLastRow(JTable table) { - - // select first cell - doSelectCell(table, table.getRowCount() - 1, 0); - } - - public static void selectFirstCellOnRow(JTable table, int row, boolean stopEdit) { - - // select first cell - doSelectCell(table, row, 0); - - if (stopEdit && table.isEditing()) { - - table.getCellEditor().stopCellEditing(); - } - } - - public static void doSelectCell(JTable table, - int rowIndex, - int columnIndex) { - - int rowCount = table.getRowCount(); - if (rowCount == 0) { - - // no row, can not selected any cell - if (log.isWarnEnabled()) { - log.warn("No row in table, can not select any cell"); - } - return; - } - int columnCount = table.getColumnCount(); - if (columnCount == 0) { - - // no column, can not selected any cell - if (log.isWarnEnabled()) { - log.warn("No column in table, can not select any cell"); - } - return; - } - if (columnIndex > columnCount) { - if (log.isWarnEnabled()) { - log.warn(String.format("ColumnIndex: %s is more than columnCount %s", columnIndex, columnCount)); - } - columnIndex = columnCount - 1; - } - if (columnIndex < 0) { - columnIndex = 0; - } - if (rowIndex >= rowCount) { - if (log.isWarnEnabled()) { - log.warn(String.format("RowIndex: %s is more than rowCount %s", rowIndex, rowCount)); - } - rowIndex = rowCount - 1; - } - if (rowIndex < 0) { - rowIndex = 0; - } - - table.setColumnSelectionInterval(columnIndex, columnIndex); - table.setRowSelectionInterval(rowIndex, rowIndex); - table.editCellAt(rowIndex, columnIndex); - } -} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java index fa9f2dc..8f48ef7 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java @@ -21,6 +21,8 @@ */ package jaxx.runtime.swing.editor; +import org.nuiton.jaxx.swing.extra.editor.EnumEditor; + import javax.swing.DefaultCellEditor; import javax.swing.Icon; import javax.swing.JCheckBox; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/BusyChangeListener.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/BusyChangeListener.java index 258cf2a..86ba651 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/BusyChangeListener.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/BusyChangeListener.java @@ -21,7 +21,7 @@ */ package jaxx.runtime.swing.wizard; -import jaxx.runtime.swing.BlockingLayerUI; +import org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardModel.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardModel.java index 6517bb2..0cdded6 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardModel.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardModel.java @@ -21,7 +21,7 @@ */ package jaxx.runtime.swing.wizard; -import jaxx.runtime.JAXXUtil; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; @@ -108,7 +108,7 @@ public abstract class WizardModel<E extends WizardStep> { public void destroy() { // suppression de tous les listeners - JAXXUtil.destroy(pcs); + PropertyChangeListeners.destroy(pcs); } public void gotoNextStep() { @@ -256,7 +256,7 @@ public abstract class WizardModel<E extends WizardStep> { } public void removePropertyChangeListeners() { - JAXXUtil.destroy(pcs); + PropertyChangeListeners.destroy(pcs); } @Override diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java index de8c787..9189664 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java @@ -21,11 +21,12 @@ */ package jaxx.runtime.swing.wizard; -import jaxx.runtime.JAXXContext; -import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXUtil; -import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.context.JAXXInitialContext; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.runtime.api.context.JAXXContext; +import org.nuiton.jaxx.runtime.api.context.JAXXContextEntryDef; +import org.nuiton.jaxx.runtime.api.context.JAXXContexts; +import org.nuiton.jaxx.runtime.api.context.JAXXInitialContext; import javax.swing.ImageIcon; import java.awt.Window; @@ -43,14 +44,14 @@ public abstract class WizardUILancher<E extends WizardStep, M extends WizardMode /** the jaxx context entry to store the apply action */ public static final JAXXContextEntryDef<Runnable> APPLY_DEF = - JAXXUtil.newContextEntryDef("apply", Runnable.class); + JAXXContexts.newContextEntryDef("apply", Runnable.class); /** the jaxx context entry to store the cancel action */ public static final JAXXContextEntryDef<Runnable> CANCEL_DEF = - JAXXUtil.newContextEntryDef("cancel", Runnable.class); + JAXXContexts.newContextEntryDef("cancel", Runnable.class); public static <M extends WizardModel<?>> JAXXContextEntryDef<M> newModelEntry(Class<M> modelType) { - return JAXXUtil.newContextEntryDef("incoming", modelType); + return JAXXContexts.newContextEntryDef("incoming", modelType); } protected UI ui; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/ext/WizardExtStepModel.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/ext/WizardExtStepModel.java index 1ca65c7..a1d960b 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/ext/WizardExtStepModel.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/ext/WizardExtStepModel.java @@ -21,9 +21,9 @@ */ package jaxx.runtime.swing.wizard.ext; -import jaxx.runtime.JAXXUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; @@ -89,7 +89,7 @@ public abstract class WizardExtStepModel<E extends WizardExtStep> { } // remove all listeners - JAXXUtil.destroy(pcs); + PropertyChangeListeners.destroy(pcs); } @Override diff --git a/jaxx-swing-extra/LICENSE.txt b/jaxx-swing-extra/LICENSE.txt new file mode 100644 index 0000000..cca7fc2 --- /dev/null +++ b/jaxx-swing-extra/LICENSE.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/jaxx-swing-extra/README.txt b/jaxx-swing-extra/README.txt new file mode 100644 index 0000000..d2e50d3 --- /dev/null +++ b/jaxx-swing-extra/README.txt @@ -0,0 +1,2 @@ +To deploy new version of pom: mvn deploy +To install localy: mvn install diff --git a/jaxx-swing-extra/changelog.txt b/jaxx-swing-extra/changelog.txt new file mode 100644 index 0000000..764da92 --- /dev/null +++ b/jaxx-swing-extra/changelog.txt @@ -0,0 +1,109 @@ +1.5 + * 20090506 [chemit] - super-pom has no dependencies + +1.3 chemit 20090409 + * 20090404 [chemit] - introduce DataContext class + * 20090331 [chemit] - introduce DecoratorUtils class + * 20090302 [chemit] - add pcs in ApplicationContext + - add method in Util to filter JAXX property changed listeners + +1.2 letellier 2009022? + * 2009021 [chemit] - introduce DefaultApplicationContext iwth annotation system. + +1.1 chemit 20090220 + * 20090124 [chemit] - add methods to retreave icons from UIManager in Util class + * 20090123 [chemit] - add a simple createIcon method in Util classe (to create an icon with no path prefix) + - add a UIManager key "default.icon.path" to be able to change the path where to find icons + * 20090122 [chemit] - refactor poms (sibling dependencies, pluginsManagment,...) + +1.0 chemit 20090111 + * 20090111 [chemit] - integrate new architecture to allow to have runtime code with NO link with compiler :) + +0.8 ??? 200812?? + * 20081228 [chemit] - generify ClassDescriptor + - introduce StylesheetHelper helper class to detach Stylesheet, Rule and Selector classes from + JAXXCompiler and make possible to extract compiler engine from runtime + + * 20081227 [chemit] - add PCS on ValidatorErrorTable to be used by table validation + * 20081218 [chemit] - improve generation of methods + * 20081214 [chemit] - can now in validation, put error with args (all args must be separated by a ##) + - improve event naming : replace the $evXXX by doMEthodName__on__field (except with optimize option) + - add jaww.runtime.swing.Utils.fillComboBox to fill a combobox model from a collection + - add addSourcesToClassPath property to add sources directories in class-path + - improve classloader managment + - keep in DataSource objetCode + - fix bug when processDataBinding on a null objectCode + - always clean demoNode cached values when selected it + - add usefull databinding method in Util + + * 20081213 [chemit] - improve navigation tree demoNode rendering with some caches + - introduce a ChildBuilder to simplify building of child nodes from a collection or array + +0.7 chemit 20081210 + * 20081210 [chemit] - fix bug 1751 + * 20081210 [chemit] - improve JAXXButtonGroup (add ActionChangeListener and toolTipText mecanism) + * 20081208 [chemit] - javabBean attribute use to initialize bean + - introduce Base64Coder to fix bug 1750 and control serailVersionUI (put them to 1L for the moment) + - introduce MultiJXPathDecorator + - add a resetAfterCompile parameter toCompilerOption to keep in test used compilers + + * 20081207 [chemit] use lutinproject 3.1 + - can exclude field from validator + * 20081202 [chemit] - add strategy for loading ui in NavigationTreeSelectionAdapter + - fix bug when searching for a inner class + + * 20081201 [chemit] - implements jaxx.runtime.JXPathDecorator + - add setcontextValue and removeContextValue on JAXXContextEntryDef + - introduce scope in BeanValidator (ERROR or WARNING) and related swing stuff + - only enter once in $initialize method in generated code + + 0.6 chemit 20081117 + * 20081118 [chemit] introduce NavigationUtil, save in context selected demoNode + * 20081107 [chemit] improve data binding and code generation : + - make possible inheritance in binding + - add an attribute javaBean to an object : will generate a full java bean support property + - make possible binding to the javaBean added properties + - clean generated code + + * 20081105 [chemit] - introduce a CardLayout2 to extends awt CardLayout + - introduce a NavigationTreeModel + - introduce a Decorator to render Object + - propagate constructor JAXXContext(JAXXContext) in JAXXObject generation + - begin of rst documentation + + * 20081104 [chemit] can add extra beanInfoSearchPath in SwingInitializer + * 20081104 [chemit] add jaxxContextImplementorClass in option to make possible use of other JAXXContext implementor. + * 20081102 [chemit] improve JAXXContext : + - introduce a JAXXContextEntryDef to qualify an entry of a JAXXContext + - do javadoc in JAXXContext + - add logic in DefaultJAXXContext : seek in parent context if entry not found + * 20081102 [chemit] improve tests : + - fix the last failed test from Jaxx original version :) + - dumps tests to JUnit4 :) + * 20081030 [chemit] improve BeanValidator : + - add full PropertyChangeEvent java-bean support and a property valid + - when remove bean from validator, must remove errors from model + - make possible to have a dynamic errorListModel in jaxx files + * 20081030 [chemit] improve JAXXContext : + - fix setContextValue bug when setting twice a same type for a same key + - implements a DefaultJAXXContext + - use this default implementation with delegate pattern in JAXXObject + * 20081030 [chemit] add JAXXAction contract to simplify init of ui with JAXXInitialContext + * 20081027 [chemit] fix bug 1722 + * 20081027 [chemit] add conversion support in validator + * 20081025 [chemit] improve BeanValidator tag : + - add a errorList attribute for set a ErrorListMouseListener on the errorList + - add a beanInitializer attribute for set the validator's bean at runtime + - add a default errorListModel value 'errors' + * 20081025 [chemit] introduce JAXXInitialContext to fill JAXXContext at runtime before $initialize() method + * 20081024 [chemit] fix validator context lost if UI is launched from another thread + 0.5 chemit 20081002 + * 20081017 [chemit] add validator support + * 20081013 [chemit] can generate logger on jaxx files + * 20081011 [chemit] improve site + * 20081011 [chemit] fix bug on JavaFileParser : works again + * 20081002 [chemit] Using lutinproject 3.0, changing groupId to org.codelutin + * 20081002 [chemit] use a single module jaxx-core (no more core, runtime and jaxx-swing modules) + * 20081002 [chemit] Introduce JAXXContext + * 20081002 [chemit] Fix bug on method creation via scripting + * 20081002 [chemit] Improve i18n integration (works now also for tabs) diff --git a/jaxx-runtime/pom.xml b/jaxx-swing-extra/pom.xml similarity index 88% copy from jaxx-runtime/pom.xml copy to jaxx-swing-extra/pom.xml index 85d49c4..0a1d821 100644 --- a/jaxx-runtime/pom.xml +++ b/jaxx-swing-extra/pom.xml @@ -34,15 +34,16 @@ </parent> <groupId>org.nuiton.jaxx</groupId> - <artifactId>jaxx-runtime</artifactId> - <name>JAXX :: Runtime</name> - <description>JAXX Runtime api</description> + <artifactId>jaxx-swing-extra</artifactId> + <name>JAXX :: Swing Extra</name> + <description>JAXX Swing Extra</description> <dependencies> <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-utils</artifactId> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> </dependency> <dependency> @@ -90,12 +91,13 @@ <artifactId>guava</artifactId> </dependency> - <!-- pour utiliser javaHelp --> + <!-- TODO Remove this, this is swing extra not swingx extra --> <dependency> - <groupId>javax.help</groupId> - <artifactId>javahelp</artifactId> + <groupId>org.swinglabs.swingx</groupId> + <artifactId>swingx-core</artifactId> </dependency> + <!-- TODO Remove this and use jdk7 API --> <dependency> <groupId>org.swinglabs</groupId> <artifactId>jxlayer</artifactId> @@ -112,13 +114,6 @@ <artifactId>junit</artifactId> </dependency> - <!-- pour utiliser JTreeTable --> - - <dependency> - <groupId>org.swinglabs.swingx</groupId> - <artifactId>swingx-core</artifactId> - </dependency> - </dependencies> </project> diff --git a/jaxx-swing-extra/src/license/THIRD-PARTY.properties b/jaxx-swing-extra/src/license/THIRD-PARTY.properties new file mode 100644 index 0000000..aa1cf78 --- /dev/null +++ b/jaxx-swing-extra/src/license/THIRD-PARTY.properties @@ -0,0 +1,20 @@ +# Generated by org.codehaus.mojo.license.AddThirdPartyMojo +#------------------------------------------------------------------------------- +# Already used licenses in project : +# - BSD License +# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 +# - Common Public License Version 1.0 +# - GNU General Public License - Version 2 with the class path exception +# - Indiana University Extreme! Lab Software License, vesion 1.1.1 +# - Lesser General Public License (LGPL) +# - Lesser General Public License (LGPL) v 3.0 +# - Lesser General Public License (LPGL) +# - Lesser General Public License (LPGL) v 2.1 +# - MIT License +# - The Apache Software License, Version 2.0 +#------------------------------------------------------------------------------- +# Please fill the missing licenses for dependencies : +# +# +#Thu Aug 18 07:10:40 CEST 2011 +commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/ComponentMover.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/ComponentMover.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/ComponentMover.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/ComponentMover.java index b16599f..deed988 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/ComponentMover.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/ComponentMover.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing; +package org.nuiton.jaxx.swing.extra; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/ComponentResizer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/ComponentResizer.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/ComponentResizer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/ComponentResizer.java index 76a64f7..7892c2b 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/ComponentResizer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/ComponentResizer.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing; +package org.nuiton.jaxx.swing.extra; /* * #%L diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Desktops.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Desktops.java new file mode 100644 index 0000000..6a5c571 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Desktops.java @@ -0,0 +1,135 @@ +package org.nuiton.jaxx.swing.extra; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.event.HyperlinkEvent; +import java.awt.Desktop; +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.StringSelection; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class Desktops { + + /** Logger. */ + private static final Log log = LogFactory.getLog(Desktops.class); + + /** + * Open a link coming from a {@link HyperlinkEvent}. + * <p/> + * And try to open the link if an url in a browser. + * + * @param he the event to treate + * @since 1.6.0 + */ + public static void openLink(HyperlinkEvent he) { + if (he.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { + + if (Desktop.isDesktopSupported()) { + try { + URL u = he.getURL(); + if (u.getProtocol().equalsIgnoreCase("mailto") || + u.getProtocol().equalsIgnoreCase("http") || + u.getProtocol().equalsIgnoreCase("ftp")) { + Desktop.getDesktop().browse(u.toURI()); + } + } catch (IOException e) { + if (log.isErrorEnabled()) { + log.error("Error while opening link", e); + } + } catch (URISyntaxException e) { + if (log.isErrorEnabled()) { + log.error("Error while opening link", e); + } + } + } + } + } + + public static void openLink(String url) { + + try { + if (!Desktop.isDesktopSupported()) { + throw new IllegalStateException( + t("swing.error.desktop.not.supported")); + } + + + Desktop desktop = Desktop.getDesktop(); + + if (!desktop.isSupported(Desktop.Action.BROWSE)) { + + throw new IllegalStateException( + t("swing.error.desktop.browse.not.supported")); + } + + URI uri = new URI(url); + desktop.browse(uri); + } catch (Exception e) { + + if (log.isErrorEnabled()) { + log.error("Error while opening link", e); + } + } + } + + public static void openLink(URI uri) { + + Desktop desktop = getDesktopForBrowse(); + + try { + + desktop.browse(uri); + } catch (Exception e) { + + throw new RuntimeException( + t("application.error.cannot.open.link", uri), e); + } + } + + public static Desktop getDesktopForBrowse() { + + if (!Desktop.isDesktopSupported()) { + throw new RuntimeException( + t("application.error.desktop.not.supported")); + } + + Desktop desktop = Desktop.getDesktop(); + + if (!desktop.isSupported(Desktop.Action.BROWSE)) { + + throw new RuntimeException( + t("application.error.desktop.browse.not.supported")); + } + + return desktop; + } + + /** + * Copy to clipBoard the content of the given text. + * + * @param text text to copy to clipboard + * @since 2.17 + */ + public static void copyToClipBoard(String text) { + + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + if (log.isInfoEnabled()) { + log.info("Put in clipboard :\n" + text); + } + StringSelection selection = new StringSelection(text); + clipboard.setContents(selection, selection); + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Icons.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Icons.java new file mode 100644 index 0000000..ea73e93 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Icons.java @@ -0,0 +1,78 @@ +package org.nuiton.jaxx.swing.extra; + +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.UIManager; +import java.net.URL; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class Icons { + + + public static final String DEFAULT_ICON_PATH = "/icons/"; + + public static final String DEFAULT_ICON_PATH_PROPERTY = "default.icon.path"; + + public static ImageIcon createIcon(String path) { + URL imgURL = Icons.class.getResource(path); + if (imgURL != null) { + return new ImageIcon(imgURL); + } else { + throw new IllegalArgumentException("could not find icon " + path); + } + } + + /** + * @param path the location of icons in root directory icons + * @return the icon at {@link #getIconPath()}+path + */ + public static ImageIcon createImageIcon(String path) { + String iconPath = getIconPath(); + return createIcon(iconPath + path); + } + + /** + * @param key the key of the icon to retreave from {@link UIManager} + * @return the icon, or <code>null if no icon found in {@link UIManager} + */ + public static Icon getUIManagerIcon(String key) { + return UIManager.getIcon(key); + } + + /** + * retreave for the {@link UIManager} the icon prefixed by {@code action}. + * + * @param key the key of the action icon to retreave from {@link UIManager} + * @return the icon, or <code>null if no icon found in {@link UIManager} + */ + public static Icon getUIManagerActionIcon(String key) { + return getUIManagerIcon("action." + key); + } + + public static ImageIcon createActionIcon(String name) { + String iconPath = getIconPath(); + return createIcon(iconPath + "action-" + name + ".png"); + } + + public static ImageIcon createI18nIcon(String name) { + String iconPath = getIconPath(); + return createIcon(iconPath + "i18n/" + name + ".png"); + } + + private static String getIconPath() { + String iconPath = UIManager.getString(DEFAULT_ICON_PATH_PROPERTY); + if (iconPath == null) { + iconPath = DEFAULT_ICON_PATH; + } else { + if (!iconPath.endsWith("/")) { + iconPath += "/"; + } + } + return iconPath; + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JComboBoxes.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JComboBoxes.java new file mode 100644 index 0000000..18deb90 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JComboBoxes.java @@ -0,0 +1,99 @@ +package org.nuiton.jaxx.swing.extra; + +import org.nuiton.jaxx.runtime.api.swing.Item; +import org.nuiton.jaxx.runtime.api.swing.JAXXComboBox; +import org.nuiton.jaxx.swing.extra.combobox.JaxxDefaultComboBoxModel; + +import javax.swing.ComboBoxModel; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * Created on 4/6/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JComboBoxes { + /** + * Fill a combo box model with some datas, and select after all the given object + * + * @param combo the combo to fill + * @param data data ot inject in combo + * @param select the object to select in combo after reflling his model + */ + public static void fillComboBox(JComboBox combo, Collection<?> data, + Object select) { + + ComboBoxModel comboBoxModel = combo.getModel(); + + if (comboBoxModel instanceof JaxxDefaultComboBoxModel) { + JaxxDefaultComboBoxModel model = + (JaxxDefaultComboBoxModel) comboBoxModel; + + // evince the model + model.removeListDataListener(combo); + + // set data + model.setAllElements((Collection) data); + + // attach the model + model.addListDataListener(combo); + model.setSelectedItem(select); + } else if (comboBoxModel instanceof DefaultComboBoxModel) { + DefaultComboBoxModel model = (DefaultComboBoxModel) combo.getModel(); + // evince the model + model.removeListDataListener(combo); + model.removeAllElements(); + if (data != null) { + for (Object o : data) { + model.addElement(o); + } + } + // attach the model + model.addListDataListener(combo); + model.setSelectedItem(select); + } else { + throw new IllegalArgumentException( + "this method need a DefaultComboBoxModel for " + + "this model but was " + combo.getModel().getClass()); + } + + } + + /** + * TODO move this to JAXXComboBox. + * <p/> + * Fill a combo box model with some datas, and select after all the given object + * + * @param combo the combo to fill + * @param data data ot inject in combo + * @param select the object to select in combo after reflling his model + * @param firstNull add a first null element + * @deprecated since 1.7.XXX this code is moved to JAXXComboBox + */ + @Deprecated + public static void fillComboBox(JAXXComboBox combo, + Collection<?> data, + Object select, boolean firstNull) { + List<Item> items = new ArrayList<Item>(); + if (firstNull) { + items.add(new Item("null", " ", null, false)); + } + if (data != null) { + for (Object d : data) { + Item item = new Item(d.toString(), d.toString(), d, + d.equals(select)); + items.add(item); + } + } + combo.setItems(items); + } + + public static DefaultComboBoxModel newComboModel(Object... items) { + return new DefaultComboBoxModel(items); + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JLists.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JLists.java new file mode 100644 index 0000000..54cd187 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JLists.java @@ -0,0 +1,56 @@ +package org.nuiton.jaxx.swing.extra; + +import org.nuiton.jaxx.swing.extra.list.JaxxDefaultListModel; + +import javax.swing.DefaultListModel; +import javax.swing.JList; +import javax.swing.ListModel; +import java.util.Collection; + +/** + * Created on 4/6/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JLists { + + /** + * Fill a list model with some datas, and select after all the given object + * + * @param list the list to fill + * @param data data ot inject in combo + * @param select the object to select in combo after reflling his model + */ + public static void fillList(JList list, Collection<?> data, Object select) { + ListModel listModel = list.getModel(); + if (listModel instanceof JaxxDefaultListModel) { + JaxxDefaultListModel model = (JaxxDefaultListModel) listModel; + + // evince the model +// model.removeListDataListener(combo); + model.setAllElements(data); + + // attach the model +// model.addListDataListener(combo); + list.setSelectedValue(select, true); + } else if (listModel instanceof DefaultListModel) { + DefaultListModel model = (DefaultListModel) listModel; + // evince the model +// model.removeListDataListener(combo); + model.removeAllElements(); + if (data != null) { + for (Object o : data) { + model.addElement(o); + } + } + // attach the model +// model.addListDataListener(combo); + list.setSelectedValue(select, true); + } else { + throw new IllegalArgumentException( + "this method need a DefaultListModel for this model " + + "but was " + listModel.getClass()); + } + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTabbedPanes.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTabbedPanes.java new file mode 100644 index 0000000..5f20e36 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTabbedPanes.java @@ -0,0 +1,34 @@ +package org.nuiton.jaxx.swing.extra; + +import org.nuiton.jaxx.swing.extra.tabbedpane.TabbedPaneIterator; + +import javax.swing.JTabbedPane; +import java.awt.Component; + +/** + * Created on 4/6/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JTabbedPanes { + /** + * Iterate the components of a {@link JTabbedPane} in natural order. + * <p/> + * Says using method {@link JTabbedPane#getComponent(int)} + * + * @param tabs the + * @return the iterator + * @since 1.4 + */ + public static TabbedPaneIterator<Component> newTabbedPaneIterator( + JTabbedPane tabs) { + return new TabbedPaneIterator<Component>(false, tabs) { + + @Override + protected Component get(int index, Component comp) { + return comp; + } + }; + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTables.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTables.java new file mode 100644 index 0000000..0e5ef15 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTables.java @@ -0,0 +1,466 @@ +package org.nuiton.jaxx.swing.extra; + +/* + * #%L + * JAXX :: Runtime + * %% + * Copyright (C) 2008 - 2014 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.table.renderer.I18nTableCellRenderer; + +import javax.swing.JComponent; +import javax.swing.JTable; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import javax.swing.table.TableModel; +import java.awt.Component; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Rectangle; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.util.EventObject; + +/** + * Some usefull methods on {@link JTable}. + * + * Created on 12/4/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.18 + */ +public class JTables { + + /** Logger. */ + private static final Log log = LogFactory.getLog(JTables.class); + + public static void selectFirstCellOnFirstRowAndStopEditing(JTable table) { + + // select first cell + doSelectCell(table, 0, 0); + + if (table.isEditing()) { + + // but no edit it + table.getCellEditor().stopCellEditing(); + } + } + + public static void selectFirstCellOnLastRow(JTable table) { + + // select first cell + doSelectCell(table, table.getRowCount() - 1, 0); + } + + public static void selectFirstCellOnRow(JTable table, int row, boolean stopEdit) { + + // select first cell + doSelectCell(table, row, 0); + + if (stopEdit && table.isEditing()) { + + table.getCellEditor().stopCellEditing(); + } + } + + public static void doSelectCell(JTable table, + int rowIndex, + int columnIndex) { + + int rowCount = table.getRowCount(); + if (rowCount == 0) { + + // no row, can not selected any cell + if (log.isWarnEnabled()) { + log.warn("No row in table, can not select any cell"); + } + return; + } + int columnCount = table.getColumnCount(); + if (columnCount == 0) { + + // no column, can not selected any cell + if (log.isWarnEnabled()) { + log.warn("No column in table, can not select any cell"); + } + return; + } + if (columnIndex > columnCount) { + if (log.isWarnEnabled()) { + log.warn(String.format("ColumnIndex: %s is more than columnCount %s", columnIndex, columnCount)); + } + columnIndex = columnCount - 1; + } + if (columnIndex < 0) { + columnIndex = 0; + } + if (rowIndex >= rowCount) { + if (log.isWarnEnabled()) { + log.warn(String.format("RowIndex: %s is more than rowCount %s", rowIndex, rowCount)); + } + rowIndex = rowCount - 1; + } + if (rowIndex < 0) { + rowIndex = 0; + } + + table.setColumnSelectionInterval(columnIndex, columnIndex); + table.setRowSelectionInterval(rowIndex, rowIndex); + table.editCellAt(rowIndex, columnIndex); + } + + /** + * Add {@link java.awt.event.KeyListener} to focus next editable cell on TAB key + * + * @param table to add TAB {@link java.awt.event.KeyListener} + */ + public static void makeTableTabFocusable(final JTable table) { + table.setCellSelectionEnabled(true); + table.setSurrendersFocusOnKeystroke(true); + table.addKeyListener(new KeyAdapter() { + + @Override + public void keyReleased(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_TAB) { + + // get table informations + int selectedColumn = table.getSelectedColumn(); + int selectedRow = table.getSelectedRow(); + + if (log.isDebugEnabled()) { + log.debug("Selected was row[" + selectedRow + "] column[" + selectedColumn + "]"); + } + + int columnCount = table.getColumnCount(); + int rowCount = table.getRowCount(); + + // search on current line + for (int toSelectColumn = selectedColumn; toSelectColumn < columnCount; toSelectColumn++) { + + if (editCell(table, selectedRow, toSelectColumn)) { + return; + } + } + + // search on other lines + for (int toSelectRow = selectedRow; toSelectRow < rowCount; toSelectRow++) { + for (int toSelectColumn = 0; toSelectColumn < columnCount; toSelectColumn++) { + + if (editCell(table, toSelectRow, toSelectColumn)) { + return; + } + } + } + } + } + }); + } + + /** + * Used to edit a cell of a given table. + * + * @param table the table to edit + * @param row row index of cell to editing + * @param colummn column index of cell to editing + * @return {@code false} if for any reason the cell cannot be edited, + * or if the indices are invalid + */ + public static boolean editCell(JTable table, int row, int colummn) { + + boolean result = false; + if (table.isCellEditable(row, colummn)) { + + if (table.isEditing()) { + + int editingRow = table.getEditingRow(); + int editingColumn = table.getEditingColumn(); + + // stop edition + TableCellEditor cellEditor = table.getCellEditor(editingRow, + editingColumn); + cellEditor.stopCellEditing(); + } + + // select row + table.setColumnSelectionInterval(colummn, colummn); + table.setRowSelectionInterval(row, row); + + // edit cell + result = table.editCellAt(row, colummn, new EventObject(table)); + Component component = table.getEditorComponent(); + component.requestFocus(); + + if (log.isDebugEnabled()) { + log.debug("Select row[" + row + "] column[" + colummn + + "] return : " + result); + } + } + return result; + } + + public static void ensureRowIndex(TableModel model, int rowIndex) + throws ArrayIndexOutOfBoundsException { + if (rowIndex < -1 || rowIndex >= model.getRowCount()) { + throw new ArrayIndexOutOfBoundsException( + "the rowIndex was " + rowIndex + ", but should be int [0," + + (model.getRowCount() - 1) + "]"); + } + } + + public static void ensureColumnIndex(TableModel model, int index) + throws ArrayIndexOutOfBoundsException { + if (index < -1 || index >= model.getColumnCount()) { + throw new ArrayIndexOutOfBoundsException( + "the columnIndex was " + index + ", but should be int [0," + + (model.getColumnCount() - 1) + "]"); + } + } + + /** + * Add to a given table a selec tion model listener to always scroll to + * current cell selection. + * + * @param table the table + * @since 2.5.3 + */ + public static void scrollToTableSelection(final JTable table) { + + table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent e) { + ListSelectionModel listSelectionModel = + (ListSelectionModel) e.getSource(); + int firstIndex = e.getFirstIndex(); + int lastIndex = e.getLastIndex(); + Integer newSelectedRow = null; + + if (listSelectionModel.isSelectionEmpty()) { + + // no selection + } else if (listSelectionModel.isSelectedIndex(firstIndex)) { + + // use first index + newSelectedRow = firstIndex; + } else if (listSelectionModel.isSelectedIndex(lastIndex)) { + + // use last index + newSelectedRow = lastIndex; + } + if (newSelectedRow != null) { + Rectangle rect = table.getCellRect(newSelectedRow, 0, true); + table.scrollRectToVisible(rect); + } + } + }); + } + + public static void setI18nTableHeaderRenderer(JTable table, + String... libelles) { + I18nTableCellRenderer defaultRenderer = + new I18nTableCellRenderer( + table.getTableHeader().getDefaultRenderer(), libelles); + table.getTableHeader().setDefaultRenderer(defaultRenderer); + } + + /** + * Return the selected rows of the table in the model coordinate or empty + * array if selection is empty. + * + * @param table the table to seek + * @return the selected rows of the table in the model coordinate or empty + * array if selection is empty. + * @since 2.5.29 + */ + public static int[] getSelectedModelRows(JTable table) { + int[] selectedRows = table.getSelectedRows(); + int length = selectedRows.length; + int[] result = new int[length]; + for (int i = 0; i < length; i++) { + int selectedRow = selectedRows[i]; + result[i] = table.convertRowIndexToModel(selectedRow); + } + return result; + } + + /** + * Return the selected row of the table in the model coordinate or + * {@code -1} if selection is empty. + * + * @param table the table to seek + * @return the selected row of the table in the model coordinate or + * {@code -1} if selection is empty. + * @since 2.5.29 + */ + public static int getSelectedModelRow(JTable table) { + int result = table.getSelectedRow(); + if (result != -1) { + // can convert to model coordinate + result = table.convertRowIndexToModel(result); + } + return result; + } + + /** + * Return the selected column of the table in the model coordinate or + * {@code -1} if selection is empty. + * + * @param table the table to seek + * @return the selected column of the table in the model coordinate or + * {@code -1} if selection is empty. + * @since 2.5.29 + */ + public static int getSelectedModelColumn(JTable table) { + int result = table.getSelectedColumn(); + if (result != -1) { + // can convert to model coordinate + result = table.convertColumnIndexToModel(result); + } + return result; + } + + /** + * Select the given row index {@code rowIndex} (from the model coordinate) + * in the selection of the given table. + * + * @param table the table where to set the selection + * @param rowIndex the row index in the model coordinate to set as selection + * @since 2.5.29 + */ + public static void setSelectionInterval(JTable table, int rowIndex) { + + int rowViewIndex = table.convertRowIndexToView(rowIndex); + table.getSelectionModel().setSelectionInterval(rowViewIndex, rowViewIndex); + } + + /** + * Add the given row index {@code rowIndex} (from the model coordinate) + * in the selection of the given table. + * + * @param table the table where to set the selection + * @param rowIndex the row index in the model coordinate to add to selection + * @since 2.5.29 + */ + public static void addRowSelectionInterval(JTable table, int rowIndex) { + + int rowViewIndex = table.convertRowIndexToView(rowIndex); + table.getSelectionModel().addSelectionInterval(rowViewIndex, rowViewIndex); + } + + public static int computeTableColumnWidth(JTable table, + Font font, + int columnIndex, String suffix) { + int width = 0; + if (font == null) { + font = table.getFont(); + } +// if (font == null) { +// TableColumn column = table.getColumnModel().getColumn(columnIndex); +// font = ((JComponent) column.getCellRenderer()).getFont(); +// } + FontMetrics fontMetrics = table.getFontMetrics(font); + for (int i = 0, rowCount = table.getRowCount(); i < rowCount; i++) { + String key = (String) table.getModel().getValueAt(i, 0); + int w = fontMetrics.stringWidth(key + suffix); + if (w > width) { + width = w; + } + } + return width; + } + + public static void fixTableColumnWidth(JTable table, + int columnIndex, + int width) { + TableColumn column = table.getColumnModel().getColumn(columnIndex); + column.setMaxWidth(width); + column.setMinWidth(width); + column.setWidth(width); + column.setPreferredWidth(width); + } + + public static void setTableColumnEditor(JTable table, + int columnIndex, + TableCellEditor editor) { + TableColumn column = table.getColumnModel().getColumn(columnIndex); + column.setCellEditor(editor); + } + + public static void setTableColumnRenderer(JTable table, + int columnIndex, + TableCellRenderer editor) { + TableColumn column = table.getColumnModel().getColumn(columnIndex); + column.setCellRenderer(editor); + } + + public static TableCellRenderer newStringTableCellRenderer( + final DefaultTableCellRenderer renderer, + final int length, + final boolean tooltip) { + + return new DefaultTableCellRenderer() { + + private static final long serialVersionUID = 1l; + + @Override + public Component getTableCellRendererComponent( + JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, + int column) { + + renderer.getTableCellRendererComponent( + table, + value, + isSelected, + hasFocus, + row, + column + ); + String val = renderer.getText(); + String val2 = val; + if (val.length() > length) { + val2 = val.substring(0, length - 3) + "..."; + } + + JComponent comp = (JComponent) + super.getTableCellRendererComponent( + table, + val2, + isSelected, + hasFocus, + row, + column + ); + if (tooltip) { + comp.setToolTipText(val); + } + return comp; + } + }; + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTrees.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTrees.java new file mode 100644 index 0000000..75dac74 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JTrees.java @@ -0,0 +1,78 @@ +package org.nuiton.jaxx.swing.extra; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.JTree; +import javax.swing.SwingUtilities; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.tree.TreeNode; +import javax.swing.tree.TreePath; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JTrees { + + /** Logger. */ + private static final Log log = LogFactory.getLog(JTrees.class); + + /** + * Expand all childs of a tree. + * + * @param tree the tree to expand + */ + public static void expandTree(final JTree tree) { + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + int i = 0; + while (i < tree.getRowCount()) { + tree.expandRow(i++); + } + } + }); + } + + /** + * Add a listener of tree selection model to expand a new selected node + * when it is selected. + * + * @param tree the tree to treate + */ + public static void addExpandOnClickListener(final JTree tree) { + + tree.getSelectionModel().addTreeSelectionListener( + new TreeSelectionListener() { + + @Override + public void valueChanged(final TreeSelectionEvent e) { + TreeNode node = (TreeNode) + e.getPath().getLastPathComponent(); + if (node != null && !node.isLeaf()) { + + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + for (TreePath path : e.getPaths()) { + if (e.isAddedPath(path) && + !tree.isExpanded(path)) { + log.info("expand node [" + path + + "]"); + // will expand the node + tree.expandPath(path); + } + } + } + }); + } + } + }); + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java new file mode 100644 index 0000000..0dbac1b --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JXLayers.java @@ -0,0 +1,76 @@ +package org.nuiton.jaxx.swing.extra; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.jxlayer.JXLayer; +import org.jdesktop.jxlayer.plaf.LayerUI; +import org.nuiton.jaxx.runtime.api.JAXXObject; + +import javax.swing.JComponent; +import java.awt.Container; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * //TODO Use Jdk7 JLayer API + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class JXLayers { + + /** Logger. */ + private static final Log log = LogFactory.getLog(JXLayers.class); + + /** + * Box a component in a {@link JXLayer}. + * + * @param component the component to box + * @return the {@link JXLayer} boxing the component + */ + public static <V extends JComponent> JXLayer<V> boxComponentWithJxLayer(V component) { + JXLayer<V> layer = getLayer(component); + if (layer != null) { + return layer; + } + layer = new JXLayer<V>(); + layer.setView(component); + return layer; + } + + public static List<JComponent> getLayeredComponents(JAXXObject object) { + List<JComponent> result = new ArrayList<JComponent>(); + for (Map.Entry<String, Object> child : object.get$objectMap().entrySet()) { + if (child.getValue() == null) { + log.warn("find a null object in $objectMap " + child.getKey()); + continue; + } + if (JComponent.class.isAssignableFrom(child.getValue().getClass())) { + JComponent comp = (JComponent) child.getValue(); + if (isLayered(comp)) { + result.add(comp); + } + } + } + return result; + } + + public static <V extends JComponent> JXLayer<V> getLayer(V comp) { + if (!isLayered(comp)) { + return null; + } + return (JXLayer<V>) comp.getParent(); + } + + public static void setLayerUI(JComponent comp, LayerUI<JComponent> ui) { + JXLayer<JComponent> layer = getLayer(comp); + layer.setUI(ui); + } + + public static boolean isLayered(JComponent comp) { + Container parent = comp.getParent(); + return parent != null && parent instanceof JXLayer<?>; + } +} diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/JaxxFileChooser.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JaxxFileChooser.java similarity index 99% rename from jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/JaxxFileChooser.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JaxxFileChooser.java index f022b00..3b5fd3a 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/JaxxFileChooser.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/JaxxFileChooser.java @@ -1,4 +1,4 @@ -package org.nuiton.jaxx.runtime; +package org.nuiton.jaxx.swing.extra; /* * #%L diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/PropertyChangeListeners.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/PropertyChangeListeners.java new file mode 100644 index 0000000..a25865a --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/PropertyChangeListeners.java @@ -0,0 +1,61 @@ +package org.nuiton.jaxx.swing.extra; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.Component; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeListenerProxy; +import java.beans.PropertyChangeSupport; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class PropertyChangeListeners { + + /** Logger. */ + private static final Log log = LogFactory.getLog(PropertyChangeListeners.class); + + /** + * Remove all listeners registred in given {@code pcs}. + * + * @param pcs the pcs to clean + */ + public static void destroy(PropertyChangeSupport pcs) { + PropertyChangeListener[] listeners = pcs.getPropertyChangeListeners(); + for (PropertyChangeListener l : listeners) { + if (log.isInfoEnabled()) { + if (l instanceof PropertyChangeListenerProxy) { + PropertyChangeListenerProxy ll = (PropertyChangeListenerProxy) l; + log.info("remove property change listener " + ll.getPropertyName() + " : " + l); + } else { + log.info("remove property change listener " + l); + } + } + pcs.removePropertyChangeListener(l); + } + } + + /** + * Remove all listeners registred in given {@code component}. + * + * @param component the pcs to clean + */ + public static void destroy(Component component) { + PropertyChangeListener[] listeners = component.getPropertyChangeListeners(); + for (PropertyChangeListener l : listeners) { + if (log.isInfoEnabled()) { + if (l instanceof PropertyChangeListenerProxy) { + PropertyChangeListenerProxy ll = (PropertyChangeListenerProxy) l; + log.info("remove property change listener " + ll.getPropertyName() + " : " + l); + } else { + log.info("remove property change listener " + l); + } + } + component.removePropertyChangeListener(l); + } + } +} diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java new file mode 100644 index 0000000..6ea0c0b --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/Swings.java @@ -0,0 +1,246 @@ +package org.nuiton.jaxx.swing.extra; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.jxlayer.JXLayer; + +import javax.swing.JComponent; +import javax.swing.JLayeredPane; +import javax.swing.JRootPane; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Rectangle; +import java.beans.BeanInfo; +import java.beans.IntrospectionException; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; + +/** + * Created on 4/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class Swings { + + /** Logger. */ + private static final Log log = LogFactory.getLog(Swings.class); + + /** + * recherche les composants portant le meme nom que les champs de la classe + * clazz. Cette methode est statique pour pouvoir eventuellement l'utiliser + * dans un autre context (je pense par exemple a la generation jaxx). + * <p/> + * <p/> + * Si la recherche echoue pour quelque raison que se soit, aucune exception + * n'est leve, et la map retournee est tout simplement vide ou incomplete + * + * @param clazz la classe ou recherche les champs + * @param container le container ou rechercher les composants d'edition + * @return le dictionnaire des composants recherches. + */ + public static Map<String, JComponent> lookingForEditor( + Class<?> clazz, + Container container) { + Map<String, JComponent> result = new HashMap<String, JComponent>(); + try { + // looking for all component with name set + Map<String, JComponent> allNamedComponent = + new HashMap<String, JComponent>(); + List<Container> todo = new LinkedList<Container>(); + todo.add(container); + while (todo.size() > 0) { + for (ListIterator<Container> i = todo.listIterator(); + i.hasNext(); ) { + Container parent = i.next(); + i.remove(); + for (Component c : parent.getComponents()) { + if (c instanceof Container) { + i.add((Container) c); + String name = c.getName(); + if (c instanceof JComponent && + name != null && !"".equals(name)) { + allNamedComponent.put(name, (JComponent) c); + } + } + } + } + } + + // looking for all properties on class + BeanInfo info = Introspector.getBeanInfo(clazz); + PropertyDescriptor[] props = info.getPropertyDescriptors(); + + // find if one properties have same name that component + for (PropertyDescriptor prop : props) { + String name = prop.getName(); + if (allNamedComponent.containsKey(name)) { + result.put(name, allNamedComponent.get(name)); + } + } + + } catch (IntrospectionException eee) { + log.warn("Can't introspect bean", eee); + } + + if (log.isDebugEnabled()) { + log.debug("Result: " + result); + } + + return result; + } + + /** + * Gets the higest visible component in a ancestor hierarchy at + * specific x,y coordinates + * + * @param parent + * @param x + * @param y + * @return the deppest component + */ + public static Component getDeepestObjectAt(Component parent, int x, int y) { + + if (parent instanceof Container) { + Container cont = (Container) parent; + // use a copy of 1.3 Container.findComponentAt + Component child = findComponentAt(cont, + cont.getWidth(), + cont.getHeight(), x, y); + if (child != null && child != cont) { + //log.info("child find : " + child.getName()); + if (child instanceof JRootPane) { + JLayeredPane lp = ((JRootPane) child).getLayeredPane(); + Rectangle b = lp.getBounds(); + child = getDeepestObjectAt(lp, x - b.x, y - b.y); + } + if (child != null) { + return child; + } + } + } + // if the parent is not a Container then it might be a MenuItem. + // But even if it isn't a MenuItem just return the parent because + // that's a close as we can come. + return parent; + } + + public static Component findComponentAt(Container cont, + int width, + int height, + int x, + int y) { + //log.info("container : " + cont.getName()); + synchronized (cont.getTreeLock()) { + + if (!(x >= 0 && x < width && y >= 0 && y < height && + cont.isVisible() && cont.isEnabled())) { + return null; + } + + Component[] component = cont.getComponents(); + int ncomponents = cont.getComponentCount(); + + // Two passes: see comment in sun.awt.SunGraphicsCallback + for (int i = 0; i < ncomponents; i++) { + Component comp = component[i]; + Rectangle rect = null; + + if (comp != null && !comp.isLightweight()) { + if (rect == null || rect.width == 0 || rect.height == 0) { + rect = comp.getBounds(); + } + if (comp instanceof JXLayer<?>) { + JXLayer<?> layer = (JXLayer<?>) comp; + comp = layer.getView(); + } + if (comp instanceof Container) { + comp = findComponentAt( + (Container) comp, + rect.width, + rect.height, + x - rect.x, + y - rect.y + ); + } else { + comp = comp.getComponentAt(x - rect.x, y - rect.y); + } + if (comp != null && comp.isVisible() && comp.isEnabled()) { + return comp; + } + } + } + + for (int i = 0; i < ncomponents; i++) { + Component comp = component[i]; + Rectangle rect = null; + + if (comp != null && comp.isLightweight()) { + if (rect == null || rect.width == 0 || rect.height == 0) { + rect = comp.getBounds(); + } + if (comp instanceof JXLayer<?>) { + JXLayer<?> layer = (JXLayer<?>) comp; + comp = layer.getView(); + } + if (comp instanceof Container) { + comp = findComponentAt( + (Container) comp, + rect.width, + rect.height, + x - rect.x, + y - rect.y + ); + } else { + comp = comp.getComponentAt(x - rect.x, y - rect.y); + } + if (comp != null && comp.isVisible() && comp.isEnabled()) { + return comp; + } + } + } + return cont; + } + } + + /** + * Centrer un component graphique au center d'un autre component. + * <p/> + * <b>Note:</b> si le parent est null, alors on ne fait rien. + * + * @param parent le component parent + * @param component le component à centrer + */ + public static void center(Component parent, Component component) { + if (parent == null) { + return; + } + Rectangle r = parent.getBounds(); + int x = r.x + (r.width - component.getSize().width) / 2; + int y = r.y + (r.height - component.getSize().height) / 2; + component.setLocation(x, y); + } + + public static Dimension newMinDimension() { + return new Dimension(0, 0); + } + + public static Dimension newMaxXDimension() { + return new Dimension(Short.MAX_VALUE, 0); + } + + public static Dimension newMaxYDimension() { + return new Dimension(0, Short.MAX_VALUE); + } + + public static Dimension newMaxXYDimension() { + return new Dimension(Short.MAX_VALUE, Short.MAX_VALUE); + } + +} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/ComboBoxModel2.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/ComboBoxModel2.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/ComboBoxModel2.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/ComboBoxModel2.java index 17887a9..0d62222 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/ComboBoxModel2.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/ComboBoxModel2.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.combobox; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/ComboBoxSelectionEvent.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/ComboBoxSelectionEvent.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/ComboBoxSelectionEvent.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/ComboBoxSelectionEvent.java index 35852b2..91f03e8 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/ComboBoxSelectionEvent.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/ComboBoxSelectionEvent.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.combobox; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxDefaultComboBoxModel.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/JaxxDefaultComboBoxModel.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxDefaultComboBoxModel.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/JaxxDefaultComboBoxModel.java index f51a77f..b0aa202 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxDefaultComboBoxModel.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/JaxxDefaultComboBoxModel.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.combobox; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxFilterableComboBoxModel.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/JaxxFilterableComboBoxModel.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxFilterableComboBoxModel.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/JaxxFilterableComboBoxModel.java index c35d81f..293cd9d 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxFilterableComboBoxModel.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/JaxxFilterableComboBoxModel.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.combobox; /* * #%L @@ -24,15 +24,16 @@ package jaxx.runtime.swing.model; import com.google.common.base.Predicate; import com.google.common.collect.Lists; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.JXPathDecorator; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.regex.Pattern; + /** * ComboBoxModel which can filter the elements displayed in the popup. * diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/WillChangeSelectedItemListener.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/WillChangeSelectedItemListener.java similarity index 96% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/WillChangeSelectedItemListener.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/WillChangeSelectedItemListener.java index 05c26f0..d29f0d9 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/WillChangeSelectedItemListener.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/WillChangeSelectedItemListener.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.combobox; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/WillChangeSelectedItemVetoException.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/WillChangeSelectedItemVetoException.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/WillChangeSelectedItemVetoException.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/WillChangeSelectedItemVetoException.java index 053a119..c1ad963 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/WillChangeSelectedItemVetoException.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/combobox/WillChangeSelectedItemVetoException.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.combobox; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/ColorCellEditor.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/ColorCellEditor.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/ColorCellEditor.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/ColorCellEditor.java index 131c83d..a85c06a 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/ColorCellEditor.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/ColorCellEditor.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.editor; +package org.nuiton.jaxx.swing.extra.editor; /* * #%L * JAXX :: Runtime diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/EnumEditor.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/EnumEditor.java similarity index 93% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/EnumEditor.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/EnumEditor.java index 32eb963..0572199 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/EnumEditor.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/EnumEditor.java @@ -38,9 +38,7 @@ * License along with this program. If not, see * <http://www.gnu.org/licenses/lgpl-3.0.html>. * ##%* */ -package jaxx.runtime.swing.editor; - -import org.nuiton.util.ReflectUtil; +package org.nuiton.jaxx.swing.extra.editor; import javax.swing.JComboBox; import java.util.EnumSet; @@ -118,16 +116,14 @@ public class EnumEditor<E extends Enum<E>> extends JComboBox { } protected static <E extends Enum<E>> Object[] buildModel(Class<E> type) { - Class<E> enumClass = ReflectUtil.getEnumClass(type); - EnumSet<E> result = EnumSet.allOf(enumClass); + EnumSet<E> result = EnumSet.allOf(type); return result.toArray(new Object[result.size()]); } protected static <E extends Enum<E>> Object[] buildModel(Class<E> type, int maxOrdinal) { - Class<E> enumClass = ReflectUtil.getEnumClass(type); - EnumSet<E> result = EnumSet.allOf(enumClass); + EnumSet<E> result = EnumSet.allOf(type); Iterator<E> itr = result.iterator(); while (itr.hasNext()) { E e = itr.next(); diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/KeyStrokeCellEditor.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/KeyStrokeCellEditor.java similarity index 95% rename from jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/KeyStrokeCellEditor.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/KeyStrokeCellEditor.java index 0747fac..5f6802c 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/KeyStrokeCellEditor.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/KeyStrokeCellEditor.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.editor.cell; +package org.nuiton.jaxx.swing.extra.editor; import java.awt.Component; import java.awt.event.ActionEvent; @@ -28,7 +28,6 @@ import javax.swing.AbstractCellEditor; import javax.swing.JTable; import javax.swing.KeyStroke; import javax.swing.table.TableCellEditor; -import jaxx.runtime.swing.editor.KeyStrokeEditor; /** * @author sletellier <letellier@codelutin.com> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/KeyStrokeEditor.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/KeyStrokeEditor.java similarity index 92% rename from jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/KeyStrokeEditor.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/KeyStrokeEditor.java index 64b9818..31b25d7 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/KeyStrokeEditor.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/KeyStrokeEditor.java @@ -19,14 +19,12 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.editor; +package org.nuiton.jaxx.swing.extra.editor; -import java.awt.event.KeyEvent; import javax.swing.JTextField; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import java.awt.event.KeyEvent; /** * Custom text field to disable default key events @@ -35,7 +33,7 @@ import org.apache.commons.logging.LogFactory; */ public class KeyStrokeEditor extends JTextField { - private static final Log log = LogFactory.getLog(KeyStrokeEditor.class); + private static final long serialVersionUID = 1L; protected KeyStroke keyStroke; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/LocaleEditor.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/LocaleEditor.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/LocaleEditor.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/LocaleEditor.java index b1f4455..9378dcc 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/LocaleEditor.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/editor/LocaleEditor.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.editor; +package org.nuiton.jaxx.swing.extra.editor; import org.nuiton.i18n.I18n; import org.nuiton.i18n.I18nStore; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/BlockingLayerUI.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/BlockingLayerUI.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI.java index 1729e0d..2fe60cc 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/BlockingLayerUI.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.swing.extra.layer; import org.jdesktop.jxlayer.JXLayer; import org.jdesktop.jxlayer.plaf.AbstractLayerUI; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/BlockingLayerUI2.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI2.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/BlockingLayerUI2.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI2.java index 0dc712b..cc78323 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/BlockingLayerUI2.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layer/BlockingLayerUI2.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.swing.extra.layer; import org.jdesktop.jxlayer.JXLayer; import org.jdesktop.jxlayer.plaf.AbstractLayerUI; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/CardLayout2.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout/CardLayout2.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/CardLayout2.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout/CardLayout2.java index a425581..c20b6d7 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/CardLayout2.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout/CardLayout2.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.swing.extra.layout; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/CardLayout2Ext.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout/CardLayout2Ext.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/CardLayout2Ext.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout/CardLayout2Ext.java index b0e5101..3fd81a8 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/CardLayout2Ext.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/layout/CardLayout2Ext.java @@ -19,9 +19,9 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing; +package org.nuiton.jaxx.swing.extra.layout; -import jaxx.runtime.JAXXObject; +import org.nuiton.jaxx.runtime.api.JAXXObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxDefaultListModel.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/JaxxDefaultListModel.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxDefaultListModel.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/JaxxDefaultListModel.java index 8837bd2..d13d568 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxDefaultListModel.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/JaxxDefaultListModel.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.list; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxFilterableListModel.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/JaxxFilterableListModel.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxFilterableListModel.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/JaxxFilterableListModel.java index a81989d..91b0fcd 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/JaxxFilterableListModel.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/JaxxFilterableListModel.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.model; +package org.nuiton.jaxx.swing.extra.list; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorListCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/DecoratorListCellRenderer.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorListCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/DecoratorListCellRenderer.java index e29b052..b1d0023 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorListCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/DecoratorListCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.list.renderer; import org.nuiton.decorator.Decorator; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderListCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/DecoratorProviderListCellRenderer.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderListCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/DecoratorProviderListCellRenderer.java index ca9b074..f12e200 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderListCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/DecoratorProviderListCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.list.renderer; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorProvider; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/FilteredDecoratorListCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/FilteredDecoratorListCellRenderer.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/FilteredDecoratorListCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/FilteredDecoratorListCellRenderer.java index 8770d45..054f329 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/FilteredDecoratorListCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/FilteredDecoratorListCellRenderer.java @@ -19,15 +19,16 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.list.renderer; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.decorator.Decorator; + +import javax.swing.JList; +import javax.swing.ListCellRenderer; import java.awt.Component; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.swing.JList; -import javax.swing.ListCellRenderer; -import org.apache.commons.lang3.StringUtils; -import org.nuiton.decorator.Decorator; /** * A {@link ListCellRenderer} which compute text with the given {@link #decorator}, diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/LocaleListCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/LocaleListCellRenderer.java similarity index 92% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/LocaleListCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/LocaleListCellRenderer.java index eea989d..a644341 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/LocaleListCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/LocaleListCellRenderer.java @@ -19,11 +19,11 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.list.renderer; -import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.Icons; import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; @@ -125,16 +125,16 @@ public class LocaleListCellRenderer extends DefaultListCellRenderer { return icon; } - icon = SwingUtil.getUIManagerActionIcon("i18n-" + locale.toString()); + icon = Icons.getUIManagerActionIcon("i18n-" + locale.toString()); if (icon == null) { log.warn("could not find icon action.i18n-" + locale.toString()); if (locale.getCountry() != null) { - icon = SwingUtil.getUIManagerActionIcon("i18n-" + locale.getCountry().toLowerCase()); + icon = Icons.getUIManagerActionIcon("i18n-" + locale.getCountry().toLowerCase()); if (icon == null) { log.warn("could not find icon action.i18n-" + locale.getCountry().toLowerCase()); - icon = SwingUtil.createActionIcon("i18n-" + locale.getCountry().toLowerCase()); + icon = Icons.createActionIcon("i18n-" + locale.getCountry().toLowerCase()); if (icon == null) { log.warn("could not find icon action.i18n-" + locale.getCountry().toLowerCase()); } diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/MultiDecoratorListCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/MultiDecoratorListCellRenderer.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/MultiDecoratorListCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/MultiDecoratorListCellRenderer.java index f40f6fa..5135f52 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/MultiDecoratorListCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/list/renderer/MultiDecoratorListCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.list.renderer; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.JXPathDecorator; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JSplitPaneState.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JSplitPaneState.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JSplitPaneState.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JSplitPaneState.java index 4bf7495..9cdf21d 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JSplitPaneState.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JSplitPaneState.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.session; +package org.nuiton.jaxx.swing.extra.session; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JTabbedPaneState.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JTabbedPaneState.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JTabbedPaneState.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JTabbedPaneState.java index d9c38a8..d0e91fb 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JTabbedPaneState.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JTabbedPaneState.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.session; +package org.nuiton.jaxx.swing.extra.session; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JTableState.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JTableState.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JTableState.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JTableState.java index 709b576..24c3920 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JTableState.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JTableState.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.session; +package org.nuiton.jaxx.swing.extra.session; /* * #%L @@ -28,7 +28,6 @@ import org.apache.commons.logging.LogFactory; import javax.swing.*; import javax.swing.table.TableColumn; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JXTableSwingSessionState.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JXTableSwingSessionState.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JXTableSwingSessionState.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JXTableSwingSessionState.java index 42c0ccd..432025e 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/JXTableSwingSessionState.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/JXTableSwingSessionState.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.session; +package org.nuiton.jaxx.swing.extra.session; /* * #%L @@ -26,7 +26,6 @@ import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; import org.jdesktop.swingx.table.TableColumnExt; -import javax.swing.*; import javax.swing.table.TableColumn; import java.util.List; import java.util.Map; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/State.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/State.java similarity index 95% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/session/State.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/State.java index a91ef0f..fde240e 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/State.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/State.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.session; +package org.nuiton.jaxx.swing.extra.session; /* * #%L diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/SwingSession.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/SwingSession.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/session/SwingSession.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/SwingSession.java index edee227..155c7f5 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/SwingSession.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/SwingSession.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.session; +package org.nuiton.jaxx.swing.extra.session; import com.google.common.collect.Maps; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/WindowState.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/WindowState.java similarity index 99% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/session/WindowState.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/WindowState.java index 7ddd54f..11aa5ef 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/WindowState.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/session/WindowState.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.session; +package org.nuiton.jaxx.swing.extra.session; /* * #%L diff --git a/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/tabbedpane/TabbedPaneIterator.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/tabbedpane/TabbedPaneIterator.java new file mode 100644 index 0000000..c3e7b54 --- /dev/null +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/tabbedpane/TabbedPaneIterator.java @@ -0,0 +1,93 @@ +package org.nuiton.jaxx.swing.extra.tabbedpane; + +import javax.swing.JTabbedPane; +import java.awt.Component; +import java.util.Iterator; +import java.util.NoSuchElementException; + +/** + * A simple iterator on a {@link JTabbedPane}. + * <p/> + * Implements the method {@link #get(int, Component)} to obtain + * the data required given the component (or index). + * <p/> + * You can also inverse the order by usin the method {@link #reverse()}. + * <p/> + * Note: After the use of the method {@link #reverse()} the iterator returns + * to the first element. + * + * @param <O> the type of return elements. + * @since 1.4 + */ +public abstract class TabbedPaneIterator<O> implements Iterator<O> { + + final JTabbedPane tabs; + + boolean reverse; + + int index; + + int increment; + + protected abstract O get(int index, Component comp); + + public TabbedPaneIterator(boolean reverse, JTabbedPane tabs) { + this.tabs = tabs; + setReverse(reverse); + } + + public void reset() { + setReverse(reverse); + } + + public int size() { + return tabs.getTabCount(); + } + + public TabbedPaneIterator<O> reverse() { + setReverse(!reverse); + return this; + } + + @Override + public boolean hasNext() { + return reverse ? index > 0 : index < tabs.getTabCount(); + } + + public int getIndex() { + return index; + } + + @Override + public O next() { + if (!hasNext()) { + throw new NoSuchElementException(); + } + Component next = tabs.getComponentAt(index); + O result = get(index, next); + index += increment; + return result; + } + + @Override + public void remove() { + throw new IllegalStateException("not implemented for " + this); + } + + @Override + public String toString() { + return super.toString() + "< reverse:" + reverse + ", index:" + + index + ", size:" + tabs.getTabCount() + " >"; + } + + protected void setReverse(boolean reverse) { + if (reverse) { + index = tabs.getTabCount() - 1; + increment = -1; + } else { + index = 0; + increment = 1; + } + this.reverse = reverse; + } +} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/ClassCellEditor.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/editor/ClassCellEditor.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/ClassCellEditor.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/editor/ClassCellEditor.java index 5b37baf..20f6a2e 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/ClassCellEditor.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/editor/ClassCellEditor.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.editor; +package org.nuiton.jaxx.swing.extra.table.editor; import org.apache.commons.beanutils.Converter; import org.nuiton.converter.ConverterUtil; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/BooleanCellRenderer.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/BooleanCellRenderer.java index e62383e..8e91091 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/BooleanCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; import com.google.common.base.Predicate; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/ClassTableCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/ClassTableCellRenderer.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/ClassTableCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/ClassTableCellRenderer.java index f902461..44a3ea0 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/ClassTableCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/ClassTableCellRenderer.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; /* * #%L * JAXX :: Runtime diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/ColorCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/ColorCellRenderer.java similarity index 96% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/ColorCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/ColorCellRenderer.java index 8880445..38b2097 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/ColorCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/ColorCellRenderer.java @@ -1,4 +1,4 @@ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; /* * #%L * JAXX :: Runtime diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/DecoratorProviderTableCellRenderer.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/DecoratorProviderTableCellRenderer.java index 936e1fb..63a8e1d 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/DecoratorProviderTableCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorProvider; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorTableCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/DecoratorTableCellRenderer.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorTableCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/DecoratorTableCellRenderer.java index 9ce0d53..012478d 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorTableCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/DecoratorTableCellRenderer.java @@ -19,15 +19,15 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; import org.nuiton.decorator.Decorator; +import javax.swing.JComponent; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; import java.awt.Component; -import javax.swing.JComponent; /** * A {@link TableCellRenderer} which compute text with the given {@link #decorator} diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EmptyNumberTableCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/EmptyNumberTableCellRenderer.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EmptyNumberTableCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/EmptyNumberTableCellRenderer.java index e7e58c9..3025701 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EmptyNumberTableCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/EmptyNumberTableCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EnumTableCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/EnumTableCellRenderer.java similarity index 97% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EnumTableCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/EnumTableCellRenderer.java index 9fc1c10..a4a6212 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EnumTableCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/EnumTableCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; import javax.swing.JTable; import javax.swing.table.TableCellRenderer; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/I18nTableCellRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/I18nTableCellRenderer.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/I18nTableCellRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/I18nTableCellRenderer.java index 1a187b4..32e03d4 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/I18nTableCellRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/I18nTableCellRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; import javax.swing.JComponent; import javax.swing.JTable; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/MultiDecoratorTableCelleRenderer.java b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/MultiDecoratorTableCelleRenderer.java similarity index 98% rename from jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/MultiDecoratorTableCelleRenderer.java rename to jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/MultiDecoratorTableCelleRenderer.java index be63ebc..538415e 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/MultiDecoratorTableCelleRenderer.java +++ b/jaxx-swing-extra/src/main/java/org/nuiton/jaxx/swing/extra/table/renderer/MultiDecoratorTableCelleRenderer.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package jaxx.runtime.swing.renderer; +package org.nuiton.jaxx.swing.extra.table.renderer; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.JXPathDecorator; diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html b/jaxx-swing-extra/src/site/site.xml similarity index 54% rename from jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html rename to jaxx-swing-extra/src/site/site.xml index e3ebdf2..92b2371 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/awt/visitor/package.html +++ b/jaxx-swing-extra/src/site/site.xml @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L JAXX :: Runtime @@ -19,16 +20,27 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<html> -<body> -<h1>JAXX - awt tree node API</h1> -This package contains a API to visit swing components. +<project name="${project.name}" + xmlns="http://maven.apache.org/DECORATION/1.4.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"> -<h2>ComponentTreenode</h2> -The model of a node in the tree + <bannerLeft> + <name>${project.name}</name> + <src>${siteCommonResourcesUrl}/images/logos/jaxx-logo.png</src> + <href>index.html</href> + </bannerLeft> -<h2>ComponentTreenodeVisitor</h2> -Object to load childs of Contract of a visitor on nodes. -</body> -</html> + <body> + + <breadcrumbs> + <item name="${project.name}" href="index.html"/> + </breadcrumbs> + + <menu ref="parent"/> + + <menu ref="reports"/> + + </body> +</project> diff --git a/jaxx-validator/pom.xml b/jaxx-validator/pom.xml index 26e325d..5c36ec4 100644 --- a/jaxx-validator/pom.xml +++ b/jaxx-validator/pom.xml @@ -45,14 +45,14 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>javax.help</groupId> - <artifactId>javahelp</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SimpleBeanValidatorMessageTableModel.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SimpleBeanValidatorMessageTableModel.java index a53e381..326e68d 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SimpleBeanValidatorMessageTableModel.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SimpleBeanValidatorMessageTableModel.java @@ -22,9 +22,9 @@ package jaxx.runtime.validator.swing; * #L% */ -import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidator; import org.nuiton.validator.bean.simple.SimpleBeanValidatorEvent; @@ -123,7 +123,7 @@ public class SimpleBeanValidatorMessageTableModel extends AbstractTableModel * @return the message for the given row index */ public SimpleBeanValidatorMessage getRow(int rowIndex) { - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureRowIndex(this, rowIndex); return data.get(rowIndex); } @@ -135,13 +135,13 @@ public class SimpleBeanValidatorMessageTableModel extends AbstractTableModel @Override public Class<?> getColumnClass(int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); + JTables.ensureColumnIndex(this, columnIndex); return columnClasses[columnIndex]; } @Override public String getColumnName(int column) { - SwingUtil.ensureColumnIndex(this, column); + JTables.ensureColumnIndex(this, column); return columnNames[column]; } @@ -187,8 +187,8 @@ public class SimpleBeanValidatorMessageTableModel extends AbstractTableModel @Override public Object getValueAt(int rowIndex, int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureColumnIndex(this, columnIndex); + JTables.ensureRowIndex(this, rowIndex); SimpleBeanValidatorMessage row = data.get(rowIndex); if (columnIndex == 0) { diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableModel.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableModel.java index 278e0de..ca6ee56 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableModel.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableModel.java @@ -23,9 +23,9 @@ package jaxx.runtime.validator.swing; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.list.BeanListValidator; import org.nuiton.validator.bean.list.BeanListValidatorEvent; @@ -113,7 +113,7 @@ public class SwingListValidatorMessageTableModel extends AbstractTableModel * @return the message for the given row index */ public SwingListValidatorMessage getRow(int rowIndex) { - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureRowIndex(this, rowIndex); return data.get(rowIndex); } @@ -125,13 +125,13 @@ public class SwingListValidatorMessageTableModel extends AbstractTableModel @Override public Class<?> getColumnClass(int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); + JTables.ensureColumnIndex(this, columnIndex); return columnClasses[columnIndex]; } @Override public String getColumnName(int column) { - SwingUtil.ensureColumnIndex(this, column); + JTables.ensureColumnIndex(this, column); return columnNames[column]; } @@ -178,8 +178,8 @@ public class SwingListValidatorMessageTableModel extends AbstractTableModel @Override public Object getValueAt(int rowIndex, int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureColumnIndex(this, columnIndex); + JTables.ensureRowIndex(this, rowIndex); SwingListValidatorMessage row = data.get(rowIndex); if (columnIndex == 0) { diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableMouseListener.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableMouseListener.java index 704e470..ab7a339 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableMouseListener.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageTableMouseListener.java @@ -21,10 +21,10 @@ package jaxx.runtime.validator.swing; * #L% */ -import jaxx.runtime.SwingUtil; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JTables; import javax.swing.JTable; import java.awt.event.MouseAdapter; @@ -94,7 +94,7 @@ public class SwingListValidatorMessageTableMouseListener extends MouseAdapter { entry.getBean(), entry.getField()); - SwingUtil.editCell(editor, cell.getLeft(), cell.getRight()); + JTables.editCell(editor, cell.getLeft(), cell.getRight()); } } diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageWidget.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageWidget.java index 9bdf904..8f31235 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageWidget.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingListValidatorMessageWidget.java @@ -22,12 +22,12 @@ package jaxx.runtime.validator.swing; * #L% */ -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.ComponentMover; -import jaxx.runtime.swing.ComponentResizer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTitledPanel; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.ComponentMover; +import org.nuiton.jaxx.swing.extra.ComponentResizer; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.list.BeanListValidator; @@ -84,7 +84,7 @@ public class SwingListValidatorMessageWidget extends JToggleButton { protected Point popupPosition = null; public SwingListValidatorMessageWidget() { - super(SwingUtil.createActionIcon("alert-none")); + super(Icons.createActionIcon("alert-none")); setToolTipText(t("validator.messageWidget.alert.none")); messageTableModel.addTableModelListener(new TableModelListener() { @@ -131,7 +131,7 @@ public class SwingListValidatorMessageWidget extends JToggleButton { } setToolTipText(t(label, alerts)); - setIcon(SwingUtil.createActionIcon(icon)); + setIcon(Icons.createActionIcon(icon)); } }); @@ -225,7 +225,7 @@ public class SwingListValidatorMessageWidget extends JToggleButton { } }; - ImageIcon actionIcon = SwingUtil.createActionIcon("close-dialog"); + ImageIcon actionIcon = Icons.createActionIcon("close-dialog"); closeAction.putValue(Action.SMALL_ICON, actionIcon); closeAction.putValue(Action.LARGE_ICON_KEY, actionIcon); closeAction.putValue(Action.ACTION_COMMAND_KEY, "close"); diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java index d8f027b..b493951 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java @@ -21,9 +21,9 @@ */ package jaxx.runtime.validator.swing; -import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidatorEvent; import org.nuiton.validator.bean.simple.SimpleBeanValidatorListener; @@ -157,7 +157,7 @@ public class SwingValidatorMessageTableModel * @return the message for the given row index */ public SwingValidatorMessage getRow(int rowIndex) { - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureRowIndex(this, rowIndex); return data.get(rowIndex); } @@ -169,13 +169,13 @@ public class SwingValidatorMessageTableModel @Override public Class<?> getColumnClass(int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); + JTables.ensureColumnIndex(this, columnIndex); return columnClasses[columnIndex]; } @Override public String getColumnName(int column) { - SwingUtil.ensureColumnIndex(this, column); + JTables.ensureColumnIndex(this, column); return columnNames[column]; } @@ -221,8 +221,8 @@ public class SwingValidatorMessageTableModel @Override public Object getValueAt(int rowIndex, int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureColumnIndex(this, columnIndex); + JTables.ensureRowIndex(this, rowIndex); SwingValidatorMessage row = data.get(rowIndex); if (columnIndex == 0) { diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java index 44e98a0..e44f580 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java @@ -23,12 +23,12 @@ package jaxx.runtime.validator.swing; * #L% */ -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.ComponentMover; -import jaxx.runtime.swing.ComponentResizer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTitledPanel; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.ComponentMover; +import org.nuiton.jaxx.swing.extra.ComponentResizer; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.AbstractAction; @@ -58,8 +58,8 @@ import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import static org.nuiton.i18n.I18n.t; import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; /** * Button which opens a popup containing a table with the errors found @@ -87,7 +87,7 @@ public class SwingValidatorMessageWidget extends JToggleButton { protected Point popupPosition = null; public SwingValidatorMessageWidget() { - super(SwingUtil.createActionIcon("alert-none")); + super(Icons.createActionIcon("alert-none")); setToolTipText(t("validator.messageWidget.alert.none")); errorTableModel.addTableModelListener(new TableModelListener() { @@ -134,7 +134,7 @@ public class SwingValidatorMessageWidget extends JToggleButton { } setToolTipText(t(label, alerts)); - setIcon(SwingUtil.createActionIcon(icon)); + setIcon(Icons.createActionIcon(icon)); } }); @@ -228,7 +228,7 @@ public class SwingValidatorMessageWidget extends JToggleButton { } }; - ImageIcon actionIcon = SwingUtil.createActionIcon("close-dialog"); + ImageIcon actionIcon = Icons.createActionIcon("close-dialog"); closeAction.putValue(Action.SMALL_ICON, actionIcon); closeAction.putValue(Action.LARGE_ICON_KEY, actionIcon); closeAction.putValue(Action.ACTION_COMMAND_KEY, "close"); diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java index bf17d9e..0698e34 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java @@ -23,9 +23,7 @@ package jaxx.runtime.validator.swing; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; -import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXValidator; -import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.meta.Validator; import jaxx.runtime.validator.swing.meta.ValidatorField; import jaxx.runtime.validator.swing.unified.UnifiedValidatorMessage; @@ -33,6 +31,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.decorator.ColorHighlighter; +import org.nuiton.jaxx.runtime.api.JAXXObject; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.util.ReflectUtil; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.list.BeanListValidator; @@ -77,10 +78,10 @@ public class SwingValidatorUtil extends SimpleBeanValidators { public static EnumMap<NuitonValidatorScope, ImageIcon> getIcons() { if (icons == null) { icons = new EnumMap<NuitonValidatorScope, ImageIcon>(NuitonValidatorScope.class); - icons.put(NuitonValidatorScope.FATAL, SwingUtil.createImageIcon("fatal.png")); - icons.put(NuitonValidatorScope.ERROR, SwingUtil.createImageIcon("error.png")); - icons.put(NuitonValidatorScope.WARNING, SwingUtil.createImageIcon("warning.png")); - icons.put(NuitonValidatorScope.INFO, SwingUtil.createImageIcon("info.png")); + icons.put(NuitonValidatorScope.FATAL, Icons.createImageIcon("fatal.png")); + icons.put(NuitonValidatorScope.ERROR, Icons.createImageIcon("error.png")); + icons.put(NuitonValidatorScope.WARNING, Icons.createImageIcon("warning.png")); + icons.put(NuitonValidatorScope.INFO, Icons.createImageIcon("info.png")); } return icons; } @@ -273,7 +274,7 @@ public class SwingValidatorUtil extends SimpleBeanValidators { errorTable.setDefaultRenderer(Object.class, render); errorTable.getRowSorter().setSortKeys( Arrays.asList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); - SwingUtil.setI18nTableHeaderRenderer( + JTables.setI18nTableHeaderRenderer( errorTable, n("validator.scope.header"), n("validator.scope.header.tip"), @@ -283,7 +284,7 @@ public class SwingValidatorUtil extends SimpleBeanValidators { n("validator.message.header.tip")); // register a single 'goto widget error' mouse listener on errorTable registerErrorTableMouseListener(errorTable); - SwingUtil.fixTableColumnWidth(errorTable, 0, 25); + JTables.fixTableColumnWidth(errorTable, 0, 25); } /** @@ -298,7 +299,7 @@ public class SwingValidatorUtil extends SimpleBeanValidators { errorTable.setDefaultRenderer(Object.class, render); errorTable.getRowSorter().setSortKeys( Arrays.asList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); - SwingUtil.setI18nTableHeaderRenderer( + JTables.setI18nTableHeaderRenderer( errorTable, n("validator.scope.header"), n("validator.scope.header.tip"), @@ -306,7 +307,7 @@ public class SwingValidatorUtil extends SimpleBeanValidators { n("validator.field.header.tip"), n("validator.message.header"), n("validator.message.header.tip")); - SwingUtil.fixTableColumnWidth(errorTable, 0, 25); + JTables.fixTableColumnWidth(errorTable, 0, 25); } /** @@ -322,7 +323,7 @@ public class SwingValidatorUtil extends SimpleBeanValidators { errorTable.setDefaultRenderer(Object.class, render); errorTable.getRowSorter().setSortKeys( Arrays.asList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); - SwingUtil.setI18nTableHeaderRenderer( + JTables.setI18nTableHeaderRenderer( errorTable, n("validator.scope.header"), n("validator.scope.header.tip"), @@ -332,7 +333,7 @@ public class SwingValidatorUtil extends SimpleBeanValidators { n("validator.field.header.tip"), n("validator.message.header"), n("validator.message.header.tip")); - SwingUtil.fixTableColumnWidth(errorTable, 0, 25); + JTables.fixTableColumnWidth(errorTable, 0, 25); } diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/IconValidationUI.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/IconValidationUI.java index 7fe1c53..e999968 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/IconValidationUI.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/IconValidationUI.java @@ -34,7 +34,6 @@ import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.util.Collection; import java.util.EnumMap; -import java.util.Set; /** diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/ImageValidationUI.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/ImageValidationUI.java index 7a76836..20fcd09 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/ImageValidationUI.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/ImageValidationUI.java @@ -34,7 +34,6 @@ import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.util.Collection; import java.util.EnumMap; -import java.util.Set; /** diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/TranslucentValidationUI.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/TranslucentValidationUI.java index bc692ca..98a93aa 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/TranslucentValidationUI.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/ui/TranslucentValidationUI.java @@ -32,7 +32,6 @@ import java.awt.Graphics2D; import java.awt.Insets; import java.awt.Rectangle; import java.util.Collection; -import java.util.Set; /** * An implementation of {@link AbstractBeanValidatorUI} which paints a diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableModel.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableModel.java index d0e915c..763eb6c 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableModel.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableModel.java @@ -24,11 +24,11 @@ package jaxx.runtime.validator.swing.unified; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingListValidator; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.AbstractValidator; import org.nuiton.validator.bean.list.BeanListValidator; @@ -144,13 +144,13 @@ public class UnifiedValidatorMessageTableModel extends AbstractTableModel { @Override public Class<?> getColumnClass(int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); + JTables.ensureColumnIndex(this, columnIndex); return columnClasses[columnIndex]; } @Override public String getColumnName(int column) { - SwingUtil.ensureColumnIndex(this, column); + JTables.ensureColumnIndex(this, column); return columnNames[column]; } @@ -166,8 +166,8 @@ public class UnifiedValidatorMessageTableModel extends AbstractTableModel { @Override public Object getValueAt(int rowIndex, int columnIndex) { - SwingUtil.ensureColumnIndex(this, columnIndex); - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureColumnIndex(this, columnIndex); + JTables.ensureRowIndex(this, rowIndex); UnifiedValidatorMessage message = data.get(rowIndex); @@ -204,7 +204,7 @@ public class UnifiedValidatorMessageTableModel extends AbstractTableModel { * @return the message for the given row index */ public UnifiedValidatorMessage getRow(int rowIndex) { - SwingUtil.ensureRowIndex(this, rowIndex); + JTables.ensureRowIndex(this, rowIndex); return data.get(rowIndex); } diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableMouseListener.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableMouseListener.java index c6a1448..7cb7829 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableMouseListener.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageTableMouseListener.java @@ -22,11 +22,11 @@ package jaxx.runtime.validator.swing.unified; * #L% */ -import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingListValidatorDataLocator; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.JTables; import javax.swing.JComponent; import javax.swing.JTable; @@ -101,7 +101,7 @@ public class UnifiedValidatorMessageTableMouseListener extends MouseAdapter { entry.getBean(), entry.getField()); - SwingUtil.editCell(editor, cell.getLeft(), cell.getRight()); + JTables.editCell(editor, cell.getLeft(), cell.getRight()); } } diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageUtil.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageUtil.java index f546daf..a1e6135 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageUtil.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageUtil.java @@ -22,11 +22,11 @@ package jaxx.runtime.validator.swing.unified; * #L% */ -import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingListValidatorDataLocator; import jaxx.runtime.validator.swing.SwingListValidatorTableEditorModelListener; import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorMessageTableMouseListener; +import org.nuiton.jaxx.swing.extra.JTables; import org.nuiton.validator.bean.list.BeanListValidator; import javax.swing.JTable; @@ -34,7 +34,7 @@ import javax.swing.RowSorter; import javax.swing.SortOrder; import javax.swing.table.TableModel; import java.awt.event.MouseListener; -import java.util.Arrays; +import java.util.Collections; import static org.nuiton.i18n.I18n.n; @@ -57,9 +57,9 @@ public class UnifiedValidatorMessageUtil { errorTable.setDefaultRenderer(Object.class, render); errorTable.getRowSorter().setSortKeys( - Arrays.asList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); + Collections.singletonList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); - SwingUtil.setI18nTableHeaderRenderer( + JTables.setI18nTableHeaderRenderer( errorTable, n("validator.scope.header"), n("validator.scope.header.tip"), @@ -69,7 +69,7 @@ public class UnifiedValidatorMessageUtil { n("validator.field.header.tip"), n("validator.message.header"), n("validator.message.header.tip")); - SwingUtil.fixTableColumnWidth(errorTable, 0, 25); + JTables.fixTableColumnWidth(errorTable, 0, 25); } diff --git a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageWidget.java b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageWidget.java index 2ab4d40..a5d626f 100644 --- a/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageWidget.java +++ b/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/unified/UnifiedValidatorMessageWidget.java @@ -22,9 +22,6 @@ package jaxx.runtime.validator.swing.unified; * #L% */ -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.ComponentMover; -import jaxx.runtime.swing.ComponentResizer; import jaxx.runtime.validator.swing.SwingListValidatorDataLocator; import jaxx.runtime.validator.swing.SwingListValidatorMessageTableRenderer; import jaxx.runtime.validator.swing.SwingValidator; @@ -32,6 +29,9 @@ import jaxx.runtime.validator.swing.SwingValidatorUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTitledPanel; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.ComponentMover; +import org.nuiton.jaxx.swing.extra.ComponentResizer; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.list.BeanListValidator; @@ -88,7 +88,7 @@ public class UnifiedValidatorMessageWidget extends JToggleButton { protected Point popupPosition = null; public UnifiedValidatorMessageWidget() { - super(SwingUtil.createActionIcon("alert-none")); + super(Icons.createActionIcon("alert-none")); setToolTipText(t("validator.messageWidget.alert.none")); messageTableModel.addTableModelListener(new TableModelListener() { @@ -135,7 +135,7 @@ public class UnifiedValidatorMessageWidget extends JToggleButton { } setToolTipText(t(label, alerts)); - setIcon(SwingUtil.createActionIcon(icon)); + setIcon(Icons.createActionIcon(icon)); } }); @@ -229,7 +229,7 @@ public class UnifiedValidatorMessageWidget extends JToggleButton { } }; - ImageIcon actionIcon = SwingUtil.createActionIcon("close-dialog"); + ImageIcon actionIcon = Icons.createActionIcon("close-dialog"); closeAction.putValue(Action.SMALL_ICON, actionIcon); closeAction.putValue(Action.LARGE_ICON_KEY, actionIcon); closeAction.putValue(Action.ACTION_COMMAND_KEY, "close"); diff --git a/jaxx-runtime/src/main/resources/icons/error.png b/jaxx-validator/src/main/resources/icons/error.png similarity index 100% rename from jaxx-runtime/src/main/resources/icons/error.png rename to jaxx-validator/src/main/resources/icons/error.png diff --git a/jaxx-runtime/src/main/resources/icons/fatal.png b/jaxx-validator/src/main/resources/icons/fatal.png similarity index 100% rename from jaxx-runtime/src/main/resources/icons/fatal.png rename to jaxx-validator/src/main/resources/icons/fatal.png diff --git a/jaxx-runtime/src/main/resources/icons/info.png b/jaxx-validator/src/main/resources/icons/info.png similarity index 100% rename from jaxx-runtime/src/main/resources/icons/info.png rename to jaxx-validator/src/main/resources/icons/info.png diff --git a/jaxx-runtime/src/main/resources/icons/warning.png b/jaxx-validator/src/main/resources/icons/warning.png similarity index 100% rename from jaxx-runtime/src/main/resources/icons/warning.png rename to jaxx-validator/src/main/resources/icons/warning.png diff --git a/jaxx-widgets-common/pom.xml b/jaxx-widgets-common/pom.xml index cb45845..e05d4f9 100644 --- a/jaxx-widgets-common/pom.xml +++ b/jaxx-widgets-common/pom.xml @@ -43,7 +43,7 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> diff --git a/jaxx-widgets-common/src/main/java/org/nuiton/jaxx/widgets/DecoratorPopupHandler.java b/jaxx-widgets-common/src/main/java/org/nuiton/jaxx/widgets/DecoratorPopupHandler.java index 3a07fc5..b179af3 100644 --- a/jaxx-widgets-common/src/main/java/org/nuiton/jaxx/widgets/DecoratorPopupHandler.java +++ b/jaxx-widgets-common/src/main/java/org/nuiton/jaxx/widgets/DecoratorPopupHandler.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.widgets; * #L% */ -import jaxx.runtime.swing.JAXXButtonGroup; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.MultiJXPathDecorator; diff --git a/jaxx-widgets-datetime/pom.xml b/jaxx-widgets-datetime/pom.xml index 73420d4..bea4236 100644 --- a/jaxx-widgets-datetime/pom.xml +++ b/jaxx-widgets-datetime/pom.xml @@ -55,7 +55,7 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> <version>${project.version}</version> </dependency> @@ -67,7 +67,7 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-widgets</artifactId> + <artifactId>jaxx-swing-extra</artifactId> <version>${project.version}</version> </dependency> @@ -78,6 +78,12 @@ </dependency> <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-widgets</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-common</artifactId> </dependency> diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java index e97cd7f..c4ecea7 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/DateTimeEditorHandler.java @@ -24,7 +24,7 @@ package org.nuiton.jaxx.widgets.datetime; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.MutateOnConditionalPropertyChangeListener; diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/TimeEditorHandler.java b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/TimeEditorHandler.java index 0db83aa..d205c11 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/TimeEditorHandler.java +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/TimeEditorHandler.java @@ -24,7 +24,7 @@ package org.nuiton.jaxx.widgets.datetime; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.MutateOnConditionalPropertyChangeListener; diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/DateTimeEditorState.java b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/DateTimeEditorState.java index 104e8dd..6da4af3 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/DateTimeEditorState.java +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/DateTimeEditorState.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.widgets.datetime.session; * #L% */ -import jaxx.runtime.swing.session.State; +import org.nuiton.jaxx.swing.extra.session.State; import org.nuiton.jaxx.widgets.datetime.DateTimeEditor; /** diff --git a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/TimeEditorState.java b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/TimeEditorState.java index 25a87a7..dbb9b27 100644 --- a/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/TimeEditorState.java +++ b/jaxx-widgets-datetime/src/main/java/org/nuiton/jaxx/widgets/datetime/session/TimeEditorState.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.widgets.datetime.session; * #L% */ -import jaxx.runtime.swing.session.State; +import org.nuiton.jaxx.swing.extra.session.State; import org.nuiton.jaxx.widgets.datetime.TimeEditor; /** diff --git a/jaxx-widgets-gis/pom.xml b/jaxx-widgets-gis/pom.xml index 0dfebf6..6afff82 100644 --- a/jaxx-widgets-gis/pom.xml +++ b/jaxx-widgets-gis/pom.xml @@ -54,7 +54,7 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> <version>${project.version}</version> </dependency> @@ -66,6 +66,12 @@ <dependency> <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> <artifactId>jaxx-validator</artifactId> <version>${project.version}</version> </dependency> diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java index 8765bb7..8fd05d0 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.widgets.gis.absolute; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DdCoordinate; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java index 250c64d..3d0715c 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmdCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.widgets.gis.absolute; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DmdCoordinate; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java index 991d4be..6cc18f6 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.widgets.gis.absolute; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DmsCoordinate; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditor.jaxx b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditor.jaxx index 3b83ddc..50cb873 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditor.jaxx +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditor.jaxx @@ -22,7 +22,7 @@ <Table id="coordinateEditorTopPanel" insets="0"> <import> - jaxx.runtime.swing.CardLayout2Ext + org.nuiton.jaxx.swing.extra.layout.CardLayout2Ext org.nuiton.jaxx.widgets.gis.CoordinateFormat java.io.Serializable </import> diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditorHandler.java index f4dbc3c..bdbe7a0 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/absolute/CoordinatesEditorHandler.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.widgets.gis.absolute; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.nuiton.jaxx.widgets.gis.CoordinateFormat; import org.nuiton.util.beans.BeanUtil; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDdCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDdCoordinateEditorHandler.java index f111713..b7bbc14 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDdCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDdCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.widgets.gis.signed; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DdCoordinate; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java index 9208f0c..e51671f 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmdCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.widgets.gis.signed; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DmdCoordinate; diff --git a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmsCoordinateEditorHandler.java b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmsCoordinateEditorHandler.java index 7f420ef..ef21c11 100644 --- a/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmsCoordinateEditorHandler.java +++ b/jaxx-widgets-gis/src/main/java/org/nuiton/jaxx/widgets/gis/signed/SignedDmsCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package org.nuiton.jaxx.widgets.gis.signed; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.widgets.gis.DmsCoordinate; diff --git a/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorTest.java b/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorTest.java index fad29de..451dfec 100644 --- a/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorTest.java +++ b/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDdCoordinateEditorTest.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.widgets.gis.absolute; * #L% */ -import jaxx.runtime.SwingUtil; +import org.nuiton.jaxx.swing.extra.Swings; import org.nuiton.jaxx.widgets.gis.DdCoordinate; import javax.swing.JButton; @@ -82,7 +82,7 @@ public class AbsoluteDdCoordinateEditorTest { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - SwingUtil.center(null, frame); + Swings.center(null, frame); frame.setVisible(true); } }); diff --git a/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorTest.java b/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorTest.java index 8b38754..fd3876f 100644 --- a/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorTest.java +++ b/jaxx-widgets-gis/src/test/java/org/nuiton/jaxx/widgets/gis/absolute/AbsoluteDmsCoordinateEditorTest.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.widgets.gis.absolute; * #L% */ -import jaxx.runtime.SwingUtil; +import org.nuiton.jaxx.swing.extra.Swings; import org.nuiton.jaxx.widgets.gis.DmsCoordinate; import javax.swing.JButton; @@ -84,7 +84,7 @@ public class AbsoluteDmsCoordinateEditorTest { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - SwingUtil.center(null, frame); + Swings.center(null, frame); frame.setVisible(true); } }); diff --git a/jaxx-widgets-number/pom.xml b/jaxx-widgets-number/pom.xml index 7889ee1..ef4a8d4 100644 --- a/jaxx-widgets-number/pom.xml +++ b/jaxx-widgets-number/pom.xml @@ -51,7 +51,13 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> <version>${project.version}</version> </dependency> diff --git a/jaxx-widgets-number/src/main/java/org/nuiton/jaxx/widgets/number/NumberEditorHandler.java b/jaxx-widgets-number/src/main/java/org/nuiton/jaxx/widgets/number/NumberEditorHandler.java index 8da7d17..0556592 100644 --- a/jaxx-widgets-number/src/main/java/org/nuiton/jaxx/widgets/number/NumberEditorHandler.java +++ b/jaxx-widgets-number/src/main/java/org/nuiton/jaxx/widgets/number/NumberEditorHandler.java @@ -25,7 +25,7 @@ package org.nuiton.jaxx.widgets.number; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/jaxx-widgets-select/pom.xml b/jaxx-widgets-select/pom.xml index 205f08e..5b97e46 100644 --- a/jaxx-widgets-select/pom.xml +++ b/jaxx-widgets-select/pom.xml @@ -51,7 +51,13 @@ <dependency> <groupId>${project.groupId}</groupId> - <artifactId>jaxx-runtime</artifactId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> <version>${project.version}</version> </dependency> diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleList.jaxx b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleList.jaxx index 8a3f7a5..0c2df06 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleList.jaxx +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleList.jaxx @@ -19,7 +19,7 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<Table genericType='O extends Serializable' implements='jaxx.runtime.bean.BeanTypeAware<O>'> +<Table genericType='O extends Serializable' implements='org.nuiton.jaxx.runtime.api.spi.BeanTypeAware<O>'> <import> org.nuiton.decorator.JXPathDecorator diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java index c7880dc..ea54efb 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListHandler.java @@ -26,17 +26,17 @@ import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Lists; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.spi.UIHandler; -import jaxx.runtime.swing.JAXXButtonGroup; -import jaxx.runtime.swing.model.JaxxFilterableListModel; -import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; -import jaxx.runtime.swing.renderer.FilteredDecoratorListCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.DecoratorUtil; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.decorator.MultiJXPathDecorator; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; +import org.nuiton.jaxx.swing.extra.JLists; +import org.nuiton.jaxx.swing.extra.list.JaxxFilterableListModel; +import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorListCellRenderer; +import org.nuiton.jaxx.swing.extra.list.renderer.FilteredDecoratorListCellRenderer; import org.nuiton.jaxx.widgets.DecoratorPopupHandler; import org.nuiton.jaxx.widgets.MutateOnConditionalPropertyChangeListener; import org.nuiton.util.beans.BeanUtil; @@ -577,7 +577,7 @@ public class FilterableDoubleListHandler<O extends Serializable> implements UIHa } // reload the model - SwingUtil.fillList(ui.getUniverseList(), data, null); + JLists.fillList(ui.getUniverseList(), data, null); ui.getUniverseList().requestFocus(); } diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListModel.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListModel.java index 18a83e2..64b0b87 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListModel.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/FilterableDoubleListModel.java @@ -22,8 +22,8 @@ package org.nuiton.jaxx.widgets.select; * #L% */ -import jaxx.runtime.swing.model.JaxxDefaultListModel; -import jaxx.runtime.swing.model.JaxxFilterableListModel; +import org.nuiton.jaxx.swing.extra.list.JaxxDefaultListModel; +import org.nuiton.jaxx.swing.extra.list.JaxxFilterableListModel; import org.jdesktop.beans.AbstractSerializableBean; import org.nuiton.jaxx.widgets.ModelToBean; diff --git a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/session/FilterableDoubleListState.java b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/session/FilterableDoubleListState.java index 12d5ac7..8bb0392 100644 --- a/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/session/FilterableDoubleListState.java +++ b/jaxx-widgets-select/src/main/java/org/nuiton/jaxx/widgets/select/session/FilterableDoubleListState.java @@ -22,7 +22,7 @@ package org.nuiton.jaxx.widgets.select.session; * #L% */ -import jaxx.runtime.swing.session.State; +import org.nuiton.jaxx.swing.extra.session.State; import org.nuiton.jaxx.widgets.select.FilterableDoubleList; /** diff --git a/jaxx-widgets/pom.xml b/jaxx-widgets/pom.xml index 4f0f134..f3eb121 100644 --- a/jaxx-widgets/pom.xml +++ b/jaxx-widgets/pom.xml @@ -43,6 +43,8 @@ <properties> <jaxx.addSourcesToClassPath>true</jaxx.addSourcesToClassPath> + <jaxx.addProjectClassPath>true</jaxx.addProjectClassPath> + <jaxx.autoImportCss>true</jaxx.autoImportCss> <jaxx.addAutoHandlerUI>true</jaxx.addAutoHandlerUI> <!--jaxx.useUIManagerForIcon>true</jaxx.useUIManagerForIcon--> @@ -54,6 +56,18 @@ <dependency> <groupId>${project.groupId}</groupId> + <artifactId>jaxx-runtime-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>jaxx-swing-extra</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>${project.groupId}</groupId> <artifactId>jaxx-runtime</artifactId> <version>${project.version}</version> </dependency> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx index 9dc8c63..bc816fe 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx @@ -29,6 +29,9 @@ java.awt.Frame javax.swing.BorderFactory javax.swing.SwingConstants + + org.nuiton.jaxx.swing.extra.Desktops + </import> <AboutPanelHandler id='handler' constructorParams='this'/> @@ -77,7 +80,7 @@ void $afterCompleteSetup() { <row> <cell weightx='1' fill='both'> <JPanel background='{Color.WHITE}' layout='{new BorderLayout()}'> - <JLabel text='{SwingUtil.getStringValue(getTitle())}' + <JLabel text='{JAXXRuntime.getStringValue(getTitle())}' visible='{getTitle() != null}' font-size='12' constraints='BorderLayout.CENTER'/> @@ -97,8 +100,8 @@ void $afterCompleteSetup() { <JEditorPane contentType='text/html' editable='false' border='{null}' - text='{SwingUtil.getStringValue(getAboutText())}' - onHyperlinkUpdate='SwingUtil.openLink(event)'/> + text='{JAXXRuntime.getStringValue(getAboutText())}' + onHyperlinkUpdate='Desktops.openLink(event)'/> </JScrollPane> </tab> <tab title="aboutframe.license"> @@ -107,7 +110,7 @@ void $afterCompleteSetup() { editable='false' font-size='11' border='{null}' - text='{SwingUtil.getStringValue(getLicenseText())}'/> + text='{JAXXRuntime.getStringValue(getLicenseText())}'/> </JScrollPane> </tab> <tab title="aboutframe.thirdparty"> @@ -116,7 +119,7 @@ void $afterCompleteSetup() { editable='false' font-size='11' border='{null}' - text='{SwingUtil.getStringValue(getThirdpartyText())}'/> + text='{JAXXRuntime.getStringValue(getThirdpartyText())}'/> </JScrollPane> </tab> </JTabbedPane> @@ -128,7 +131,7 @@ void $afterCompleteSetup() { <JLabel id='bottomLabel' constraints='BorderLayout.CENTER' horizontalAlignment='{SwingConstants.CENTER}' - text='{SwingUtil.getStringValue(getBottomText())}' + text='{JAXXRuntime.getStringValue(getBottomText())}' visible='{getBottomText() != null}'/> <JButton id='close' action='{handler.closeAction}' constraints='BorderLayout.EAST'/> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanelHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanelHandler.java index 2626d81..e837000 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanelHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanelHandler.java @@ -21,11 +21,12 @@ */ package jaxx.runtime.swing; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; +import org.nuiton.jaxx.swing.extra.Icons; +import org.nuiton.jaxx.swing.extra.Swings; import org.nuiton.util.Resource; import javax.swing.AbstractAction; @@ -132,7 +133,7 @@ public class AboutPanelHandler { JDialog f = new JDialog(ui, true); f.add(this.ui); if (this.ui.iconPath != null) { - f.setIconImage(SwingUtil.createIcon(this.ui.iconPath).getImage()); + f.setIconImage(Icons.createIcon(this.ui.iconPath).getImage()); } f.setResizable(false); f.setSize(550, 450); @@ -148,11 +149,11 @@ public class AboutPanelHandler { if (log.isInfoEnabled()) { log.info("destroy ui " + ui); } - JAXXUtil.destroy(ui); - JAXXUtil.destroy(AboutPanelHandler.this.ui); + PropertyChangeListeners.destroy(ui); + PropertyChangeListeners.destroy(AboutPanelHandler.this.ui); } }); - SwingUtil.center(ui, f); + Swings.center(ui, f); f.setVisible(true); } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSelector.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSelector.jaxx index f589b3d..54b9fc7 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSelector.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSelector.jaxx @@ -41,9 +41,8 @@ protected void $afterCompleteSetup() { public void propertyChange(PropertyChangeEvent evt) { Set<String> bindings = $bindings.keySet(); - JAXXUtil.applyDataBinding(ComboToListSelector.this, bindings); - JAXXUtil.processDataBinding( - ComboToListSelector.this, bindings.toArray(new String[bindings.size()])); + JAXXBindings.applyDataBinding(ComboToListSelector.this, bindings); + JAXXBindings.processDataBinding(ComboToListSelector.this, bindings.toArray(new String[bindings.size()])); } }); } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUIHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUIHandler.java index 5bc7c88..32c5af3 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUIHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUIHandler.java @@ -21,8 +21,8 @@ */ package jaxx.runtime.swing; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; +import org.nuiton.jaxx.swing.extra.Swings; import javax.swing.InputMap; import javax.swing.JButton; @@ -71,14 +71,14 @@ public class ErrorDialogUIHandler { } instance.getErrorStack().setCaretPosition(0); instance.pack(); - SwingUtil.center(instance.getContextValue(JFrame.class, "parent"), instance); + Swings.center(instance.getContextValue(JFrame.class, "parent"), instance); instance.setVisible(true); } public static void disposeUI() { ErrorDialogUI instance = ErrorDialogUI.instance; if (instance != null) { - JAXXUtil.destroy(instance); + PropertyChangeListeners.destroy(instance); } ErrorDialogUI.instance = null; } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx index 20e2d5a..5e45857 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx @@ -81,7 +81,7 @@ void $afterCompleteSetup() { onActionPerformed='setFontSize(fontSize + 1)'/> <JLabel visible='{isShowFontSize()}' - text='{SwingUtil.getStringValue(getFontSize())}'/> + text='{JAXXRuntime.getStringValue(getFontSize())}'/> </JToolBar> </JPanel> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizorHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizorHandler.java index a0c85a6..8a05a4c 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizorHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizorHandler.java @@ -21,7 +21,7 @@ */ package jaxx.runtime.swing; -import jaxx.runtime.binding.SimpleJAXXObjectBinding; +import org.nuiton.jaxx.runtime.api.internal.binding.SimpleJAXXObjectBinding; /** * Handler of ui {@link FontSizor}. diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx index 3524d0e..662ce66 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx @@ -23,13 +23,16 @@ text='{myHandler.updateText(isTargetVisible())}' toolTipText='{myHandler.updateToolTipText(isTargetVisible())}' icon="{myHandler.updateIcon(isTargetVisible())}" - _hideIcon='{SwingUtil.createActionIcon("collapse")}' - _showIcon='{SwingUtil.createActionIcon("expand")}' + _hideIcon='{Icons.createActionIcon("collapse")}' + _showIcon='{Icons.createActionIcon("expand")}' onActionPerformed='setTargetVisible(!targetVisible)'> <import> javax.swing.Icon javax.swing.JComponent + + org.nuiton.jaxx.swing.extra.Icons + static org.nuiton.i18n.I18n.t </import> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java index 2d70803..12ca1a4 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java @@ -21,14 +21,15 @@ */ package jaxx.runtime.swing; -import javax.swing.table.TableCellEditor; -import javax.swing.table.TableCellRenderer; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.editor.cell.DateCellEditor; import jaxx.runtime.swing.editor.cell.FileCellEditor; -import jaxx.runtime.swing.editor.cell.KeyStrokeCellEditor; import jaxx.runtime.swing.editor.cell.NumberCellEditor; import jaxx.runtime.swing.renderer.DateCellRenderer; +import org.nuiton.jaxx.swing.extra.editor.KeyStrokeCellEditor; + +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; /** * @author sletellier <letellier@codelutin.com> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/JSearchTextField.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/JSearchTextField.java index 67ec343..6fda742 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/JSearchTextField.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/JSearchTextField.java @@ -31,13 +31,12 @@ */ package jaxx.runtime.swing; -import jaxx.runtime.swing.JAXXWidgetUtil; - -import java.awt.Graphics; -import java.awt.Image; +import org.nuiton.jaxx.swing.extra.Icons; import javax.swing.ImageIcon; import javax.swing.JTextField; +import java.awt.Graphics; +import java.awt.Image; /** * A text field with search symbol painted to indicate @@ -57,7 +56,7 @@ public class JSearchTextField extends JTextField { private static Image getScaledImage( int size ) { if (icon == null) { - icon = JAXXWidgetUtil.createImageIcon(ICON_NAME); + icon = Icons.createImageIcon(ICON_NAME); } return new ImageIcon(icon.getImage().getScaledInstance( size, size, Image.SCALE_SMOOTH )).getImage(); } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelector.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelector.jaxx index 3636c93..8ae5636 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelector.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelector.jaxx @@ -37,9 +37,8 @@ protected void $afterCompleteSetup() { public void propertyChange(PropertyChangeEvent evt) { Set<String> bindings = $bindings.keySet(); - JAXXUtil.applyDataBinding(ListToListSelector.this, bindings); - JAXXUtil.processDataBinding( - ListToListSelector.this, bindings.toArray(new String[bindings.size()])); + JAXXBindings.applyDataBinding(ListToListSelector.this, bindings); + JAXXBindings.processDataBinding(ListToListSelector.this, bindings.toArray(new String[bindings.size()])); } }); } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx index 541f363..aaece1b 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx @@ -30,7 +30,7 @@ <import> jaxx.runtime.SwingUtil - + java.awt.BorderLayout java.awt.event.ItemEvent java.awt.event.ActionEvent @@ -41,8 +41,8 @@ java.beans.PropertyChangeEvent java.util.Locale - jaxx.runtime.swing.renderer.LocaleListCellRenderer - + org.nuiton.jaxx.swing.extra.list.renderer.LocaleListCellRenderer + static org.nuiton.i18n.I18n.n </import> @@ -79,7 +79,7 @@ <JToggleButton id='button' - text='{SwingUtil.getStringValue(renderer.getText(getSelectedLocale()))}' + text='{JAXXRuntime.getStringValue(renderer.getText(getSelectedLocale()))}' toolTipText='{getTip(getSelectedLocale())}' icon='{renderer.getIcon(getSelectedLocale())}' constraints='BorderLayout.CENTER' diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditorHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditorHandler.java index 0630414..e3977a0 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditorHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditorHandler.java @@ -21,7 +21,7 @@ */ package jaxx.runtime.swing.editor; -import jaxx.runtime.swing.JAXXButtonGroup; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx index 1a1b5cc..8c3c09a 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx @@ -21,11 +21,11 @@ --> <Table fill='both' insets='0' genericType='O' - implements='jaxx.runtime.bean.BeanTypeAware<O>' + implements='org.nuiton.jaxx.runtime.api.spi.BeanTypeAware<O>' onFocusGained='handler.focusCombo()' onFocusLost='hidePopup()'> <import> - jaxx.runtime.swing.model.JaxxDefaultComboBoxModel + org.nuiton.jaxx.swing.extra.combobox.JaxxDefaultComboBoxModel org.nuiton.decorator.JXPathDecorator javax.swing.border.TitledBorder </import> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java index b88a907..361084c 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java @@ -22,9 +22,9 @@ package jaxx.runtime.swing.editor.bean; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.JAXXButtonGroup; -import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; +import org.nuiton.jaxx.swing.extra.JComboBoxes; +import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorListCellRenderer; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -419,7 +419,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { } // reload the model - SwingUtil.fillComboBox(ui.getCombobox(), data, null); + JComboBoxes.fillComboBox(ui.getCombobox(), data, null); if (wasAutoComplete) { ui.setAutoComplete(true); diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleList.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleList.jaxx index a5c20b8..127386d 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleList.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleList.jaxx @@ -19,7 +19,7 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<Table genericType='O' implements='jaxx.runtime.bean.BeanTypeAware<O>'> +<Table genericType='O' implements='org.nuiton.jaxx.runtime.api.spi.BeanTypeAware<O>'> <import> org.nuiton.decorator.JXPathDecorator diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java index 46e3afa..e7d9331 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java @@ -23,12 +23,12 @@ package jaxx.runtime.swing.editor.bean; */ import com.google.common.base.Predicate; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.JAXXButtonGroup; -import jaxx.runtime.swing.model.JaxxDefaultListModel; -import jaxx.runtime.swing.model.JaxxFilterableListModel; -import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; -import jaxx.runtime.swing.renderer.FilteredDecoratorListCellRenderer; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; +import org.nuiton.jaxx.swing.extra.JLists; +import org.nuiton.jaxx.swing.extra.list.JaxxDefaultListModel; +import org.nuiton.jaxx.swing.extra.list.JaxxFilterableListModel; +import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorListCellRenderer; +import org.nuiton.jaxx.swing.extra.list.renderer.FilteredDecoratorListCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.DecoratorUtil; @@ -374,7 +374,7 @@ public class BeanDoubleListHandler<O> implements PropertyChangeListener { } // reload the model - SwingUtil.fillList(ui.getUniverseList(), data, null); + JLists.fillList(ui.getUniverseList(), data, null); ui.getUniverseList().requestFocus(); } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListModel.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListModel.java index 7bd6dc4..44cf5fa 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListModel.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListModel.java @@ -23,8 +23,8 @@ package jaxx.runtime.swing.editor.bean; */ import com.google.common.collect.Lists; -import jaxx.runtime.swing.model.JaxxDefaultListModel; -import jaxx.runtime.swing.model.JaxxFilterableListModel; +import org.nuiton.jaxx.swing.extra.list.JaxxDefaultListModel; +import org.nuiton.jaxx.swing.extra.list.JaxxFilterableListModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractSerializableBean; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx index 826f73a..2528755 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx @@ -19,11 +19,11 @@ --> <Table fill='both' insets='0' genericType='O' - implements='jaxx.runtime.bean.BeanTypeAware<O>' + implements='org.nuiton.jaxx.runtime.api.spi.BeanTypeAware<O>' onFocusGained='handler.focusCombo()' onFocusLost='hidePopup()'> <import> - jaxx.runtime.swing.model.JaxxFilterableComboBoxModel + org.nuiton.jaxx.swing.extra.combobox.JaxxFilterableComboBoxModel org.nuiton.decorator.JXPathDecorator javax.swing.border.TitledBorder </import> diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java index 2565bf0..0d51c07 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java @@ -21,11 +21,11 @@ */ package jaxx.runtime.swing.editor.bean; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.JAXXButtonGroup; -import jaxx.runtime.swing.model.JaxxFilterableComboBoxModel; -import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; +import org.nuiton.jaxx.swing.extra.JComboBoxes; +import org.nuiton.jaxx.swing.extra.combobox.JaxxFilterableComboBoxModel; +import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorListCellRenderer; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -252,7 +252,7 @@ public class BeanFilterableComboBoxHandler<O> implements PropertyChangeListener if (getBeanType().isInstance(selectedItem)) { selectedItemString = BeanFilterableComboBoxHandler.this.decorator.toString(selectedItem); } else { - selectedItemString = JAXXUtil.getStringValue(selectedItem); + selectedItemString = JAXXRuntime.getStringValue(selectedItem); } if (selectedItem == null || !selectedItemString.equals(text)) { unselectItem(); @@ -546,7 +546,7 @@ public class BeanFilterableComboBoxHandler<O> implements PropertyChangeListener } // reload the model - SwingUtil.fillComboBox(ui.getCombobox(), data, null); + JComboBoxes.fillComboBox(ui.getCombobox(), data, null); if (previousSelectedItem != null) { ui.setSelectedItem(previousSelectedItem); diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.css b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.css index c7f7da4..69c9f9a 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.css +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.css @@ -55,7 +55,7 @@ #label { opaque:false; - text:{SwingUtil.getStringValue(getLabelText())}; + text:{JAXXRuntime.getStringValue(getLabelText())}; } #toolbar { diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx index 5df47c9..e44a8aa 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx @@ -21,7 +21,7 @@ --> <JPanel id='top' layout='{new BorderLayout()}' genericType='O' - implements='jaxx.runtime.bean.BeanTypeAware<O>'> + implements='org.nuiton.jaxx.runtime.api.spi.BeanTypeAware<O>'> <import> org.nuiton.decorator.JXPathDecorator diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java index 923ae09..c985c80 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java @@ -22,8 +22,8 @@ package jaxx.runtime.swing.editor.bean; -import jaxx.runtime.swing.JAXXButtonGroup; -import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; +import org.nuiton.jaxx.swing.extra.list.renderer.DecoratorListCellRenderer; import org.apache.commons.collections.primitives.ArrayIntList; import org.apache.commons.collections.primitives.IntList; import org.apache.commons.logging.Log; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java index 6f73cc0..66a570a 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java @@ -21,10 +21,9 @@ */ package jaxx.runtime.swing.editor.bean; -import jaxx.runtime.swing.JAXXButtonGroup; +import org.nuiton.jaxx.runtime.api.swing.JAXXButtonGroup; import jaxx.runtime.swing.JAXXRuntimeException; import org.apache.commons.beanutils.MethodUtils; -import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.autocomplete.AutoCompleteComboBoxEditor; @@ -58,7 +57,6 @@ import java.awt.event.FocusListener; import java.awt.event.KeyListener; import java.beans.Introspector; import java.beans.PropertyChangeListener; -import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Date; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/NumberCellEditor.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/NumberCellEditor.java index df1222c..f9d305c 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/NumberCellEditor.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/cell/NumberCellEditor.java @@ -31,8 +31,9 @@ import javax.swing.SwingUtilities; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; import javax.swing.table.TableCellEditor; -import jaxx.runtime.JAXXUtil; + import jaxx.runtime.swing.editor.NumberEditor; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; /** * @author sletellier <letellier@codelutin.com> @@ -66,7 +67,7 @@ public class NumberCellEditor<E extends Number> extends AbstractCellEditor E number = (E) value; numberEditor.setModel(number); - numberEditor.setModelText(JAXXUtil.getStringValue(number)); + numberEditor.setModelText(JAXXRuntime.getStringValue(number)); return numberEditor; } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmdCoordinateEditorHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmdCoordinateEditorHandler.java index 2b6ead2..86bfb49 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmdCoordinateEditorHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmdCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package jaxx.runtime.swing.editor.gis; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.beans.BeanUtil; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmsCoordinateEditorHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmsCoordinateEditorHandler.java index 60a8714..40e66e9 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmsCoordinateEditorHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/gis/DmsCoordinateEditorHandler.java @@ -23,7 +23,7 @@ package jaxx.runtime.swing.editor.gis; */ import com.google.common.base.Preconditions; -import jaxx.runtime.spi.UIHandler; +import org.nuiton.jaxx.runtime.api.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.beans.BeanUtil; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/list/filter/DefaultFilterableCheckListModel.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/list/filter/DefaultFilterableCheckListModel.java index cf42ba0..1d2ce49 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/list/filter/DefaultFilterableCheckListModel.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/list/filter/DefaultFilterableCheckListModel.java @@ -22,9 +22,9 @@ package jaxx.runtime.swing.list.filter; * #L% */ -import jaxx.runtime.JAXXUtil; import jaxx.runtime.swing.list.DefaultCheckListModel; import org.nuiton.decorator.Decorator; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; import java.util.ArrayList; import java.util.Arrays; @@ -69,7 +69,7 @@ public class DefaultFilterableCheckListModel<T> extends DefaultCheckListModel<T> if (o != null && decorator != null) { decorated = decorator.toString(o); } else { - decorated = JAXXUtil.getStringValue(o); + decorated = JAXXRuntime.getStringValue(o); } if ( ft.include(decorated, f)) { fData.add(o); diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java index 1c4b5c8..0f7578b 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java @@ -21,24 +21,25 @@ */ package jaxx.runtime.swing.log; -import java.awt.Component; -import java.awt.Frame; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.PatternLayout; +import org.nuiton.jaxx.swing.extra.PropertyChangeListeners; +import org.nuiton.jaxx.swing.extra.Swings; + import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JRootPane; import javax.swing.KeyStroke; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.SwingUtil; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.log4j.Level; -import org.apache.log4j.Logger; -import org.apache.log4j.PatternLayout; +import java.awt.Component; +import java.awt.Frame; +import java.awt.event.ActionEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; /** * @author sletellier <letellier@codelutin.com> @@ -113,11 +114,11 @@ public class JAXXLog4jHandler { if (log.isInfoEnabled()) { log.info("destroy ui " + ui); } - JAXXUtil.destroy(ui); - JAXXUtil.destroy(JAXXLog4jHandler.this.ui); + PropertyChangeListeners.destroy(ui); + PropertyChangeListeners.destroy(JAXXLog4jHandler.this.ui); } }); - SwingUtil.center(ui, f); + Swings.center(ui, f); f.setVisible(true); } } diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java index eb5354b..b0d1430 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java @@ -23,7 +23,7 @@ package jaxx.runtime.swing.session; */ import jaxx.runtime.swing.editor.bean.BeanDoubleList; -import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; +import org.nuiton.jaxx.swing.extra.session.State; /** * @author Kevin Morin - morin@codelutin.com diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanFilterableComboBoxState.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanFilterableComboBoxState.java index e1e27be..51af77e 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanFilterableComboBoxState.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanFilterableComboBoxState.java @@ -23,6 +23,7 @@ package jaxx.runtime.swing.session; */ import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; +import org.nuiton.jaxx.swing.extra.session.State; /** * @author Kevin Morin - morin@codelutin.com diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java index 1f95aea..f7c0cca 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/FilterTableHeaderRenderer.java @@ -33,7 +33,7 @@ package jaxx.runtime.swing.table.filter; import jaxx.runtime.swing.CompoundIcon; -import jaxx.runtime.swing.JAXXWidgetUtil; +import org.nuiton.jaxx.swing.extra.Icons; import java.awt.Component; import java.awt.Image; @@ -65,7 +65,7 @@ class FilterTableHeaderRenderer extends JComponent implements TableCellRenderer private Icon getFilterIcon() { if (icon == null) { - icon = JAXXWidgetUtil.createImageIcon("funnel.png"); + icon = Icons.createImageIcon("funnel.png"); icon = new ImageIcon( icon.getImage().getScaledInstance( 12, 12, Image.SCALE_SMOOTH )); } return icon; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableAwareCheckListRenderer.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableAwareCheckListRenderer.java index 1a9dc13..00d1460 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableAwareCheckListRenderer.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableAwareCheckListRenderer.java @@ -31,10 +31,9 @@ */ package jaxx.runtime.swing.table.filter; -import jaxx.runtime.JAXXUtil; -import jaxx.runtime.swing.list.CheckListAction; import jaxx.runtime.swing.list.CheckListRenderer; import org.nuiton.decorator.Decorator; +import org.nuiton.jaxx.runtime.api.JAXXRuntime; import java.awt.Component; @@ -57,7 +56,7 @@ public class TableAwareCheckListRenderer extends CheckListRenderer { if (value != null && decorator != null) { text = decorator.toString(value); } else { - text = JAXXUtil.getStringValue(value); + text = JAXXRuntime.getStringValue(value); } setText(text); return this; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java index 688eeb3..24da8ed 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableFilterColumnPopup.java @@ -33,20 +33,15 @@ package jaxx.runtime.swing.table.filter; -import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.JSearchTextField; -import jaxx.runtime.swing.list.ActionCheckListModel; -import jaxx.runtime.swing.list.CheckList; import jaxx.runtime.swing.list.filter.CheckListFilterType; -import jaxx.runtime.swing.list.DefaultCheckListModel; -import jaxx.runtime.swing.list.CheckListModel; import jaxx.runtime.swing.list.filter.DefaultFilterableCheckListModel; import jaxx.runtime.swing.list.filter.FilterableActionCheckListModel; import jaxx.runtime.swing.list.filter.FilterableCheckList; import jaxx.runtime.swing.list.filter.FilterableCheckListModel; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.nuiton.decorator.Decorator; +import org.nuiton.jaxx.swing.extra.Icons; import java.awt.*; import java.awt.event.ActionEvent; @@ -251,7 +246,7 @@ class TableFilterColumnPopup extends MouseAdapter { toolbar.setOpaque(false); toolbar.add(new CommandAction( t("jaxx.table.filter.popup.button.clearAll"), - JAXXWidgetUtil.createImageIcon("funnel_delete.png")) { + Icons.createImageIcon("funnel_delete.png")) { @Override protected boolean perform() { return clearAllFilters(); diff --git a/pom.xml b/pom.xml index e207b82..fa34559 100644 --- a/pom.xml +++ b/pom.xml @@ -34,17 +34,19 @@ <version>3.0-SNAPSHOT</version> <modules> - <module>jaxx-runtime</module> + <module>jaxx-runtime-api</module> + <module>jaxx-swing-extra</module> <module>jaxx-validator</module> <module>jaxx-widgets-extra</module> + <module>jaxx-runtime</module> <module>jaxx-compiler</module> <module>jaxx-maven-plugin</module> <module>jaxx-widgets-common</module> <module>jaxx-widgets-number</module> <module>jaxx-widgets-select</module> + <module>jaxx-widgets-gis</module> <module>jaxx-widgets</module> <module>jaxx-widgets-datetime</module> - <module>jaxx-widgets-gis</module> <module>jaxx-config</module> <module>jaxx-application-api</module> <module>jaxx-application-swing</module> diff --git a/src/site/rst/JAXXContext.rst b/src/site/rst/JAXXContext.rst index 125c771..cd90f52 100644 --- a/src/site/rst/JAXXContext.rst +++ b/src/site/rst/JAXXContext.rst @@ -35,7 +35,7 @@ Ajout d'un context applicatif dans JAXX. Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets. -jaxx.runtime.JAXXContext +org.nuiton.jaxx.runtime.api.context.JAXXContext ======================== Il s'agit du contrat de base du context applicatif. @@ -54,7 +54,7 @@ Le type de l'objet correspondant en fait à la classe de la donnée. Le nom qui est facultatif permet de pouvoir distinguer plusieurs données d'un même type dans le context. Si le nom n'est pas utilisé pour caractériser une données on fixera alors sa valeur à *null*. -Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *jaxx.runtime.context.JAXXContextEntryDef*. +Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *org.nuiton.jaxx.runtime.api.context.JAXXContextEntryDef*. Les méthodes de lecture *********************** @@ -109,7 +109,7 @@ de type *JAXXContext* non nommé qui le context courant qui sera détecté comme Cette entrée spéciale ne sera pas stockée avec les autres entrées afin d'optimiser les algorithmes d'injection et de restitution. -jaxx.runtime.context.JAXXInitialContext +org.nuiton.jaxx.runtime.api.context.JAXXInitialContext *************************************** On a implanté un second type de context qui lui peut servir à l'initialisation des JAXXObject. @@ -134,7 +134,7 @@ Les méthodes *add* peuvent être chaînées comme dans l'exemple suivant : Intégration dans les JAXXObject =============================== -Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *jaxx.runtime.JAXXObject*. +Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *org.nuiton.jaxx.runtime.api.JAXXObject*. Ce contrat hérite donc du contrat *JAXXContext* (afin de pouvoir l'utiliser de manière transparente dans les fichiers JAXX). diff --git a/src/site/rst/NavigationModel.rst b/src/site/rst/NavigationModel.rst index 4b442ff..22b0b9f 100644 --- a/src/site/rst/NavigationModel.rst +++ b/src/site/rst/NavigationModel.rst @@ -117,7 +117,7 @@ jaxx.runtime.swing.navigation.handler.NavigationTreeHandlerWithCardLayout ========================================================================= Extension de *jaxx.runtime.swing.navigation.handler.AbstractNavigationHandler* pour -l'utilisation de CardLayout (*jaxx.runtime.swing.CardLayout2*). +l'utilisation de CardLayout (*org.nuiton.jaxx.swing.extra.layout.CardLayout2*). jaxx.runtime.swing.navigation.handler.NavigationMultiTreeHandler ================================================================ @@ -274,7 +274,7 @@ jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapterWithCardLayout Il s'agit d'une implantation du listener précédent qui suppose que les uis associées aux noeuds sont affichées dans un unique container en utilisant le -layout *jaxx.runtime.swing.CardLayout2*. +layout *org.nuiton.jaxx.swing.extra.layout.CardLayout2*. La contrainte de chaque ui sera extactement le chemin de navigation du noeud associé. diff --git a/src/site/rst/index.rst b/src/site/rst/index.rst index 5fb8294..6347521 100644 --- a/src/site/rst/index.rst +++ b/src/site/rst/index.rst @@ -75,7 +75,7 @@ Cette option permet de détecter un handler associé à chaque fichier jaxx. Le handler doit porter le nom du fichier java associé au fichier jaxx suffixé par Handler. -Ce handler doit de plus implanter un nouveau contract *jaxx.runtime.spi.UIHandler*. +Ce handler doit de plus implanter un nouveau contract *org.nuiton.jaxx.runtime.api.spi.UIHandler*. Le contrat contient deux méthodes diff --git a/src/site/rst/migration.rst b/src/site/rst/migration.rst index 42548bc..9cc4ba3 100644 --- a/src/site/rst/migration.rst +++ b/src/site/rst/migration.rst @@ -38,7 +38,7 @@ Nouvelles fonctionnalités * JList, JComboBox et JTree n'acceptent plus de fils Item (utiliser JAXXList, JAXXComboBox, JAXXTree). - * Changement de paquetage de jaxx.runtime.JAXXContext vers jaxx.runtime.JAXXContext + * Changement de paquetage de org.nuiton.jaxx.runtime.api.context.JAXXContext vers org.nuiton.jaxx.runtime.api.context.JAXXContext * Changement de paquetage de jaxx.runtime.Decorator vers jaxx.runtime.decorator.Decorator diff --git a/src/site/rst/old-compiler-doc/JAXXContext.rst b/src/site/rst/old-compiler-doc/JAXXContext.rst index 368a10d..6549b51 100644 --- a/src/site/rst/old-compiler-doc/JAXXContext.rst +++ b/src/site/rst/old-compiler-doc/JAXXContext.rst @@ -35,7 +35,7 @@ Ajout d'un context applicatif dans JAXX. Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets. -jaxx.runtime.JAXXContext +org.nuiton.jaxx.runtime.api.context.JAXXContext ======================== Il s'agit du contrat de base du context applicatif. @@ -54,7 +54,7 @@ Le type de l'objet correspondant en fait à la classe de la donnée. Le nom qui est facultatif permet de pouvoir distinguer plusieurs données d'un même type dans le context. Si le nom n'est pas utilisé pour caractériser une données on fixera alors sa valeur à *null*. -Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *jaxx.runtime.context.JAXXContextEntryDef*. +Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *org.nuiton.jaxx.runtime.api.context.JAXXContextEntryDef*. Les méthodes de lecture *********************** @@ -109,7 +109,7 @@ de type *JAXXContext* *non nommé* qui le context courant qui sera détecté com Cette entrée spéciale ne sera pas stockée avec les autres entrées afin d'optimiser les algorithmes d'injection et de restitution. -jaxx.runtime.context.JAXXInitialContext +org.nuiton.jaxx.runtime.api.context.JAXXInitialContext *************************************** On a implanté un second type de context qui lui peut servir à l'initialisation des JAXXObject. @@ -134,7 +134,7 @@ Les méthodes *add* peuvent être chaînées comme dans l'exemple suivant : Intégration dans les JAXXObject =============================== -Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *jaxx.runtime.JAXXObject*. +Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *org.nuiton.jaxx.runtime.api.JAXXObject*. Ce contrat hérite donc du contrat *JAXXContext* (afin de pouvoir l'utiliser de manière transparente dans les fichiers JAXX). diff --git a/src/site/rst/old-compiler-doc/NavigationTreeModel.rst b/src/site/rst/old-compiler-doc/NavigationTreeModel.rst index 3366816..0fb9ee7 100644 --- a/src/site/rst/old-compiler-doc/NavigationTreeModel.rst +++ b/src/site/rst/old-compiler-doc/NavigationTreeModel.rst @@ -174,7 +174,7 @@ jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapterWithCardLayout ************************************************************************** Il s'agit d'une implantation du listener précédent qui suppose que les uis associées aux noeuds sont affichées dans un -unique container en utilisant le layout *jaxx.runtime.swing.CardLayout2*. +unique container en utilisant le layout *org.nuiton.jaxx.swing.extra.layout.CardLayout2*. La contrainte de chaque ui sera extactement le chemin de navigation du noeud associé. -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit 0c487641d9ee98986a15b5df821350b12bd8b2f7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Apr 12 15:45:54 2015 +0200 refs #3663 begin of migration documentation --- src/site/rst/migrate_v3.rst | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/src/site/rst/migrate_v3.rst b/src/site/rst/migrate_v3.rst new file mode 100644 index 0000000..a9bd0b6 --- /dev/null +++ b/src/site/rst/migrate_v3.rst @@ -0,0 +1,92 @@ + +======================= +Migration vers JAXX 2.0 +======================= + +.. contents:: + + +Présentation +------------ + +Ce document énumère les choses à migrer pour passer sur la version 3.0 de JAXX. + +Réorganisation des modules +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Disparition du module jaxx-runtime remplacé par + +* jaxx-runtime-api (pour tout ce qui est strictement nécessaire pour compiler du code généré par jaxx) +* jaxx-swing-extra (du + pour swing) + +Renommage des paquetages +~~~~~~~~~~~~~~~~~~~~~~~~ + +On est passé à **org.nuiton.jaxx** au lieu de **jaxx** + +Un script (ou goal du plugin serait mieux) est disponible pour effectuer les remplacements de paquetage sur un projet. + +jaxx.runtime.spi.UIHandler -> org.nuiton.jaxx.runtime.api.spi.UIHandler + +jaxx.runtime.swing.ComponentMover -> org.nuiton.jaxx.swing.extra.ComponentMover +jaxx.runtime.swing.ComponentResizer -> org.nuiton.jaxx.swing.extra.ComponentResizer +jaxx.runtime.swing.CardLayout2Ext -> org.nuiton.jaxx.swing.extra.layout.CardLayout2Ext +jaxx.runtime.swing.help.JAXXHelpBroker --> org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpBroker + +jaxx.runtime.swing.BlockingLayerUI -> org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI + +jaxx.runtime.JAXXObject --> org.nuiton.jaxx.runtime.api.JAXXObject +jaxx.runtime.JAXXBinding --> org.nuiton.jaxx.runtime.api.internal.binding.JAXXBinding +jaxx.runtime.JAXXContext --> org.nuiton.jaxx.runtime.api.context.JAXXContext +jaxx.runtime.context.JAXXContextEntryDef -> org.nuiton.jaxx.runtime.api.context.JAXXContextEntryDef +jaxx.runtime.context.JAXXInitialContext -> org.nuiton.jaxx.runtime.api.context.JAXXInitialContext + +jaxx.runtime.awt.visitor.BuildTreeVisitor -> org.nuiton.jaxx.runtime.api.internal.awt.visitor.BuildTreeVisitor +jaxx.runtime.awt.visitor.ComponentTreeNode -> org.nuiton.jaxx.runtime.api.internal.awt.visitor.ComponentTreeNode +jaxx.runtime.awt.visitor.GetCompopentAtPointVisitor -> org.nuiton.jaxx.runtime.api.internal.awt.visitor.GetCompopentAtPointVisitor +jaxx.runtime.swing.help.JAXXHelpUI -> org.nuiton.jaxx.runtime.api.swing.help.JAXXHelpUI + +jaxx.runtime.swing.JTables -> org.nuiton.jaxx.swing.extra.JTables +jaxx.runtime.swing.Table -> org.nuiton.jaxx.runtime.api.swing.Table +jaxx.runtime.swing.renderer.DecoratorListCellRenderer -> org.nuiton.jaxx.swing.extra.list.renderer.DecoratorListCellRenderer +jaxx.runtime.swing.session.SwingSession --> org.nuiton.jaxx.swing.extra.session.SwingSession +jaxx.runtime.swing.session.State --> org.nuiton.jaxx.swing.extra.session.State + +jaxx.runtime.swing.editor.EnumEditor -> org.nuiton.jaxx.swing.extra.editor.EnumEditor +jaxx.runtime.swing.renderer.DecoratorTableCellRenderer -> org.nuiton.jaxx.swing.extra.table.renderer.DecoratorTableCellRenderer + +Remplacement de JXLayer par l'api JLayer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +L'api JLayer est désormais intégrée dans la jdk 7 donc plus besoin d'avoir la dépendance vers JXLayer. + +À noter au passage, que l'artefact de JXLayer était signé (donc des possibles modifications seront nécessaires +pour les configuration webstart). + +Classes non incluses dans la compilation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +On a réduit au minimum le coeur du compilateur, certaines classes y était avant reconnues, désormais il faudra +les inclures dans la section d'import des fichiers jaxx + +org.nuiton.jaxx.swing.extra.layout.CardLayout2Ext +org.nuiton.jaxx.swing.extra.layer.BlockingLayerUI + + +Déplacement de méthodes +~~~~~~~~~~~~~~~~~~~~~~~ + +SwingUtil disparait au profit de + +* org.nuiton.jaxx.runtime.JAXXRuntime +* org.nuiton.jaxx.runtime.api.internal.binding.JAXXBindings + +* org.nuiton.jaxx.swing.extra.Icons +* org.nuiton.jaxx.swing.extra.JTables +* org.nuiton.jaxx.swing.extra.JTrees +* org.nuiton.jaxx.swing.extra.JComboBoxes +* org.nuiton.jaxx.swing.extra.JLists +* org.nuiton.jaxx.swing.extra.JXLayers +* org.nuiton.jaxx.swing.extra.Swings + + -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit 6edbfbdd827000e75dbaa755e1e60493267184c3 Merge: 738b17c 0c48764 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Apr 12 15:45:59 2015 +0200 fixes #3663: Extract a minimal runtime module used in generation Merge branch 'feature/3663' into develop jaxx-application-swing/pom.xml | 9 +- .../swing/AbstractApplicationUIHandler.java | 24 +- .../jaxx/application/swing/ApplicationUI.java | 2 +- .../swing/action/AbstractApplicationAction.java | 2 +- .../swing/action/ApplicationActionUI.jaxx | 2 +- .../swing/action/ApplicationActionUIHandler.java | 4 +- .../jaxx/application/swing/tab/CustomTab.java | 4 +- .../swing/table/AbstractApplicationTableModel.java | 6 +- .../application/swing/util/ApplicationUIUtil.java | 4 +- jaxx-compiler/pom.xml | 8 +- .../main/java/jaxx/compiler/CompiledObject.java | 4 +- .../java/jaxx/compiler/CompilerConfiguration.java | 4 +- .../compiler/DefaultCompilerConfiguration.java | 6 +- .../src/main/java/jaxx/compiler/I18nHelper.java | 6 +- .../src/main/java/jaxx/compiler/JAXXCompiler.java | 12 +- .../src/main/java/jaxx/compiler/JAXXEngine.java | 3 +- .../java/jaxx/compiler/binding/DataSource.java | 17 +- .../binding/writers/AbstractJAXXBindingWriter.java | 2 +- .../binding/writers/DefaultJAXXBindingWriter.java | 2 +- .../binding/writers/JAXXBindingWriter.java | 2 +- .../writers/SimpleJAXXObjectBindingWriter.java | 2 +- .../java/jaxx/compiler/css/StylesheetHelper.java | 10 +- .../decorators/BoxedCompiledObjectDecorator.java | 4 +- .../HelpRootCompiledObjectDecorator.java | 2 +- .../jaxx/compiler/finalizers/DefaultFinalizer.java | 27 +- .../jaxx/compiler/finalizers/SwingFinalizer.java | 2 +- .../compiler/finalizers/ValidatorFinalizer.java | 4 +- .../jaxx/compiler/reflect/ClassDescriptor.java | 2 +- .../compiler/reflect/ClassDescriptorHelper.java | 4 +- .../ClassDescriptorResolverFromJavaClass.java | 2 +- .../ClassDescriptorResolverFromJavaFile.java | 4 +- .../ClassDescriptorResolverFromJaxxFile.java | 4 +- .../java/jaxx/compiler/spi/DefaultInitializer.java | 23 +- .../compiler/tags/DefaultComponentHandler.java | 13 +- .../jaxx/compiler/tags/DefaultObjectHandler.java | 10 +- .../main/java/jaxx/compiler/tags/StyleHandler.java | 2 +- .../compiler/tags/swing/ApplicationHandler.java | 2 +- .../compiler/tags/swing/CompiledItemContainer.java | 2 +- .../java/jaxx/compiler/tags/swing/ItemHandler.java | 2 +- .../compiler/tags/swing/JAXXComboBoxHandler.java | 7 +- .../jaxx/compiler/tags/swing/JAXXListHandler.java | 8 +- .../jaxx/compiler/tags/swing/JAXXTreeHandler.java | 7 +- .../compiler/tags/swing/JRadioButtonHandler.java | 2 +- .../compiler/tags/swing/JTabbedPaneHandler.java | 4 +- .../compiler/tags/swing/JTextComponentHandler.java | 4 +- .../java/jaxx/compiler/tags/swing/RowHandler.java | 2 +- .../java/jaxx/compiler/tags/swing/TabHandler.java | 2 +- .../jaxx/compiler/tags/swing/TableHandler.java | 2 +- .../compiler/tasks/GenerateConstructorsTask.java | 6 +- .../java/jaxx/compiler/tags/TagManagerTest.java | 4 +- jaxx-config/pom.xml | 14 +- .../swing/config/ConfigCallBackUIHandler.java | 4 +- .../jaxx/runtime/swing/config/ConfigCategoryUI.css | 2 +- .../runtime/swing/config/ConfigCategoryUI.jaxx | 2 + .../swing/config/ConfigCategoryUIHandler.java | 24 +- .../runtime/swing/config/ConfigTableEditor.java | 12 +- .../jaxx/runtime/swing/config/ConfigUIHandler.java | 10 +- .../jaxx/runtime/swing/config/ConfigUIHelper.java | 6 +- .../runtime/swing/config/model/CategoryModel.java | 4 +- .../runtime/swing/config/model/ConfigUIModel.java | 4 +- .../swing/config/model/MyDelegateConfigTest.java | 9 +- .../swing/config/model/MyInheritedConfigTest.java | 9 +- jaxx-demo/pom.xml | 12 + .../java/jaxx/demo/DemoApplicationContext.java | 14 +- jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java | 4 +- .../src/main/java/jaxx/demo/DemoHelpBroker.java | 18 +- jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx | 6 +- .../main/java/jaxx/demo/DemoSourcesHandler.java | 8 +- jaxx-demo/src/main/java/jaxx/demo/DemoUI.css | 2 +- jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx | 2 +- .../src/main/java/jaxx/demo/DemoUIHandler.java | 33 +- .../demo/component/jaxx/BoxedDecoratorDemo.css | 8 +- .../demo/component/jaxx/BoxedDecoratorDemo.jaxx | 17 +- .../jaxx/editor/BeanComboBoxDemoHandler.java | 2 +- .../jaxx/editor/BeanDoubleListDemoHandler.java | 2 +- .../editor/BeanFilterableComboBoxDemoHandler.java | 2 +- .../component/jaxx/editor/ComboEditorDemo.jaxx | 3 + .../component/jaxx/editor/ListSelectorDemo.jaxx | 2 +- .../jaxx/editor/SimpleTimeEditorDemoHandler.java | 2 +- .../jaxx/editor/gis/CoordinateDemoHandler.java | 2 +- .../datetime/DateTimeEditorDemoHandler.java | 2 +- .../widgets/datetime/TimeEditorDemoHandler.java | 2 +- .../widgets/gis/CoordinatesEditorDemoHandler.java | 2 +- .../widgets/number/NumberEditorDemoHandler.java | 2 +- .../select/FilterableDoubleListDemoHandler.java | 2 +- .../feature/databinding/BindingExtremeDemo.jaxx | 2 +- .../main/java/jaxx/demo/feature/nav/NavDemo.jaxx | 3 + .../java/jaxx/demo/feature/nav/NavDemoHandler.java | 14 +- .../demo/feature/nav/content/ActorContentUI.jaxx | 5 +- .../demo/feature/nav/content/ActorsContentUI.jaxx | 4 +- .../demo/feature/nav/content/MovieContentUI.jaxx | 5 +- .../demo/feature/nav/content/MoviesContentUI.jaxx | 2 +- .../list/ListBeanValidationDemoHandler.java | 8 +- .../feature/validation/list/PeopleTableModel.java | 16 +- jaxx-maven-plugin/pom.xml | 2 +- .../java/org/nuiton/jaxx/plugin/GenerateMojo.java | 12 +- .../java/org/nuiton/jaxx/plugin/Bug1124Test.java | 7 +- .../java/org/nuiton/jaxx/plugin/Bug1404Test.java | 8 +- .../java/org/nuiton/jaxx/plugin/Bug1750Test.java | 11 +- .../java/org/nuiton/jaxx/plugin/CompilerTest.java | 2 +- .../java/org/nuiton/jaxx/plugin/DecoratorTest.java | 2 +- .../java/org/nuiton/jaxx/plugin/JaxxBaseTest.java | 2 +- jaxx-runtime-api/LICENSE.txt | 165 +++ jaxx-runtime-api/README.txt | 2 + jaxx-runtime-api/changelog.txt | 109 ++ {jaxx-runtime => jaxx-runtime-api}/pom.xml | 48 +- .../src/license/THIRD-PARTY.properties | 20 + .../org/nuiton/jaxx/runtime/api}/JAXXObject.java | 5 +- .../org/nuiton/jaxx/runtime/api/JAXXRuntime.java | 183 +++ .../jaxx/runtime/api}/context/DataContext.java | 7 +- .../api}/context/DefaultApplicationContext.java | 3 +- .../runtime/api}/context/DefaultJAXXContext.java | 10 +- .../jaxx/runtime/api/context}/JAXXContext.java | 4 +- .../runtime/api}/context/JAXXContextEntryDef.java | 4 +- .../jaxx/runtime/api/context/JAXXContexts.java | 122 ++ .../runtime/api}/context/JAXXInitialContext.java | 5 +- .../jaxx/runtime/api/internal/EventListeners.java | 157 +++ .../internal}/awt/visitor/BuildTreeVisitor.java | 2 +- .../internal}/awt/visitor/ComponentTreeNode.java | 2 +- .../awt/visitor/ComponentTreeNodeVisitor.java | 2 +- .../awt/visitor/DebugComponentTreeNodeVisitor.java | 2 +- .../awt/visitor/GetCompopentAtPointVisitor.java | 2 +- .../runtime/api/internal}/awt/visitor/package.html | 0 .../api/internal/binding}/DataBindingListener.java | 4 +- .../binding}/DataBindingUpdateListener.java | 4 +- .../api/internal}/binding/DefaultJAXXBinding.java | 8 +- .../runtime/api/internal/binding}/JAXXBinding.java | 4 +- .../runtime/api/internal/binding/JAXXBindings.java | 198 ++++ .../internal}/binding/SimpleJAXXObjectBinding.java | 4 +- .../runtime/api/internal}/css/DataBinding.java | 2 +- .../runtime/api/internal}/css/Pseudoclasses.java | 4 +- .../jaxx/runtime/api/internal}/css/Rule.java | 2 +- .../jaxx/runtime/api/internal}/css/Selector.java | 2 +- .../jaxx/runtime/api/internal}/css/Stylesheet.java | 2 +- .../api/internal/descriptor}/Base64Coder.java | 2 +- .../internal/descriptor}/ComponentDescriptor.java | 2 +- .../internal/descriptor}/JAXXObjectDescriptor.java | 5 +- .../internal/descriptor/JAXXObjectDescriptors.java | 44 + .../jaxx/runtime/api/spi}/BeanTypeAware.java | 4 +- .../nuiton/jaxx/runtime/api}/spi/UIHandler.java | 4 +- .../jaxx/runtime/api}/swing/Application.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/HBox.java | 2 +- .../jaxx/runtime/api}/swing/HBoxBeanInfo.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/HBoxLayout.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/Item.java | 2 +- .../jaxx/runtime/api}/swing/JAXXButtonGroup.java | 2 +- .../jaxx/runtime/api}/swing/JAXXComboBox.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXList.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXTab.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/JAXXTree.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/TabInfo.java | 2 +- .../api}/swing/TabInfoPropertyChangeListener.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/Table.java | 2 +- .../org/nuiton/jaxx/runtime/api}/swing/VBox.java | 2 +- .../jaxx/runtime/api}/swing/VBoxBeanInfo.java | 2 +- .../nuiton/jaxx/runtime/api}/swing/VBoxLayout.java | 2 +- .../runtime/api}/swing/help/JAXXHelpBroker.java | 14 +- .../jaxx/runtime/api}/swing/help/JAXXHelpUI.java | 2 +- .../runtime/api}/swing/help/JAXXHelpUIHandler.java | 4 +- .../src/site/site.xml | 32 +- .../api}/context/DataContextEntryIteratorTest.java | 12 +- .../context/DefaultApplicationContextTest.java | 13 +- .../api}/context/DefaultJAXXContextTest.java | 3 +- .../runtime/api/internal/EventListenersTest.java | 8 +- jaxx-runtime/pom.xml | 38 +- .../main/java/jaxx/runtime/FileChooserUtil.java | 2 +- .../src/main/java/jaxx/runtime/JAXXAction.java | 4 +- .../src/main/java/jaxx/runtime/JAXXUtil.java | 532 +-------- .../src/main/java/jaxx/runtime/SwingUtil.java | 1247 +------------------- .../src/main/java/jaxx/runtime/swing/JTables.java | 117 -- .../runtime/swing/editor/MyDefaultCellEditor.java | 2 + .../runtime/swing/wizard/BusyChangeListener.java | 2 +- .../jaxx/runtime/swing/wizard/WizardModel.java | 6 +- .../jaxx/runtime/swing/wizard/WizardUILancher.java | 15 +- .../swing/wizard/ext/WizardExtStepModel.java | 4 +- jaxx-swing-extra/LICENSE.txt | 165 +++ jaxx-swing-extra/README.txt | 2 + jaxx-swing-extra/changelog.txt | 109 ++ {jaxx-runtime => jaxx-swing-extra}/pom.xml | 25 +- .../src/license/THIRD-PARTY.properties | 20 + .../nuiton/jaxx/swing/extra}/ComponentMover.java | 2 +- .../nuiton/jaxx/swing/extra}/ComponentResizer.java | 2 +- .../java/org/nuiton/jaxx/swing/extra/Desktops.java | 135 +++ .../java/org/nuiton/jaxx/swing/extra/Icons.java | 78 ++ .../org/nuiton/jaxx/swing/extra/JComboBoxes.java | 99 ++ .../java/org/nuiton/jaxx/swing/extra/JLists.java | 56 + .../org/nuiton/jaxx/swing/extra/JTabbedPanes.java | 34 + .../java/org/nuiton/jaxx/swing/extra/JTables.java | 466 ++++++++ .../java/org/nuiton/jaxx/swing/extra/JTrees.java | 78 ++ .../java/org/nuiton/jaxx/swing/extra/JXLayers.java | 76 ++ .../nuiton/jaxx/swing/extra}/JaxxFileChooser.java | 2 +- .../jaxx/swing/extra/PropertyChangeListeners.java | 61 + .../java/org/nuiton/jaxx/swing/extra/Swings.java | 246 ++++ .../jaxx/swing/extra/combobox}/ComboBoxModel2.java | 2 +- .../extra/combobox}/ComboBoxSelectionEvent.java | 2 +- .../extra/combobox}/JaxxDefaultComboBoxModel.java | 2 +- .../combobox}/JaxxFilterableComboBoxModel.java | 11 +- .../combobox}/WillChangeSelectedItemListener.java | 2 +- .../WillChangeSelectedItemVetoException.java | 2 +- .../jaxx/swing/extra}/editor/ColorCellEditor.java | 2 +- .../jaxx/swing/extra}/editor/EnumEditor.java | 10 +- .../swing/extra/editor}/KeyStrokeCellEditor.java | 3 +- .../jaxx/swing/extra}/editor/KeyStrokeEditor.java | 8 +- .../jaxx/swing/extra}/editor/LocaleEditor.java | 2 +- .../jaxx/swing/extra/layer}/BlockingLayerUI.java | 2 +- .../jaxx/swing/extra/layer}/BlockingLayerUI2.java | 2 +- .../jaxx/swing/extra/layout}/CardLayout2.java | 2 +- .../jaxx/swing/extra/layout}/CardLayout2Ext.java | 4 +- .../swing/extra/list}/JaxxDefaultListModel.java | 2 +- .../swing/extra/list}/JaxxFilterableListModel.java | 2 +- .../list}/renderer/DecoratorListCellRenderer.java | 2 +- .../DecoratorProviderListCellRenderer.java | 2 +- .../FilteredDecoratorListCellRenderer.java | 11 +- .../list}/renderer/LocaleListCellRenderer.java | 10 +- .../renderer/MultiDecoratorListCellRenderer.java | 2 +- .../jaxx/swing/extra}/session/JSplitPaneState.java | 2 +- .../swing/extra}/session/JTabbedPaneState.java | 2 +- .../jaxx/swing/extra}/session/JTableState.java | 3 +- .../extra}/session/JXTableSwingSessionState.java | 3 +- .../nuiton/jaxx/swing/extra}/session/State.java | 2 +- .../jaxx/swing/extra}/session/SwingSession.java | 2 +- .../jaxx/swing/extra}/session/WindowState.java | 2 +- .../swing/extra/tabbedpane/TabbedPaneIterator.java | 93 ++ .../swing/extra/table}/editor/ClassCellEditor.java | 2 +- .../extra/table}/renderer/BooleanCellRenderer.java | 2 +- .../table}/renderer/ClassTableCellRenderer.java | 2 +- .../extra/table}/renderer/ColorCellRenderer.java | 2 +- .../DecoratorProviderTableCellRenderer.java | 2 +- .../renderer/DecoratorTableCellRenderer.java | 4 +- .../renderer/EmptyNumberTableCellRenderer.java | 2 +- .../table}/renderer/EnumTableCellRenderer.java | 2 +- .../table}/renderer/I18nTableCellRenderer.java | 2 +- .../renderer/MultiDecoratorTableCelleRenderer.java | 2 +- .../src/site/site.xml | 32 +- jaxx-validator/pom.xml | 14 +- .../SimpleBeanValidatorMessageTableModel.java | 12 +- .../swing/SwingListValidatorMessageTableModel.java | 12 +- ...wingListValidatorMessageTableMouseListener.java | 4 +- .../swing/SwingListValidatorMessageWidget.java | 12 +- .../swing/SwingValidatorMessageTableModel.java | 12 +- .../swing/SwingValidatorMessageWidget.java | 14 +- .../validator/swing/SwingValidatorUtil.java | 25 +- .../validator/swing/ui/IconValidationUI.java | 1 - .../validator/swing/ui/ImageValidationUI.java | 1 - .../swing/ui/TranslucentValidationUI.java | 1 - .../unified/UnifiedValidatorMessageTableModel.java | 12 +- .../UnifiedValidatorMessageTableMouseListener.java | 4 +- .../swing/unified/UnifiedValidatorMessageUtil.java | 10 +- .../unified/UnifiedValidatorMessageWidget.java | 12 +- .../src/main/resources/icons/error.png | Bin .../src/main/resources/icons/fatal.png | Bin .../src/main/resources/icons/info.png | Bin .../src/main/resources/icons/warning.png | Bin jaxx-widgets-common/pom.xml | 2 +- .../nuiton/jaxx/widgets/DecoratorPopupHandler.java | 2 +- jaxx-widgets-datetime/pom.xml | 10 +- .../widgets/datetime/DateTimeEditorHandler.java | 2 +- .../jaxx/widgets/datetime/TimeEditorHandler.java | 2 +- .../datetime/session/DateTimeEditorState.java | 2 +- .../widgets/datetime/session/TimeEditorState.java | 2 +- jaxx-widgets-gis/pom.xml | 8 +- .../AbsoluteDdCoordinateEditorHandler.java | 2 +- .../AbsoluteDmdCoordinateEditorHandler.java | 2 +- .../AbsoluteDmsCoordinateEditorHandler.java | 2 +- .../widgets/gis/absolute/CoordinatesEditor.jaxx | 2 +- .../gis/absolute/CoordinatesEditorHandler.java | 2 +- .../signed/SignedDdCoordinateEditorHandler.java | 2 +- .../signed/SignedDmdCoordinateEditorHandler.java | 2 +- .../signed/SignedDmsCoordinateEditorHandler.java | 2 +- .../absolute/AbsoluteDdCoordinateEditorTest.java | 4 +- .../absolute/AbsoluteDmsCoordinateEditorTest.java | 4 +- jaxx-widgets-number/pom.xml | 8 +- .../jaxx/widgets/number/NumberEditorHandler.java | 2 +- jaxx-widgets-select/pom.xml | 8 +- .../jaxx/widgets/select/FilterableDoubleList.jaxx | 2 +- .../select/FilterableDoubleListHandler.java | 14 +- .../widgets/select/FilterableDoubleListModel.java | 4 +- .../select/session/FilterableDoubleListState.java | 2 +- jaxx-widgets/pom.xml | 14 + .../main/java/jaxx/runtime/swing/AboutPanel.jaxx | 15 +- .../java/jaxx/runtime/swing/AboutPanelHandler.java | 13 +- .../jaxx/runtime/swing/ComboToListSelector.jaxx | 5 +- .../jaxx/runtime/swing/ErrorDialogUIHandler.java | 8 +- .../main/java/jaxx/runtime/swing/FontSizor.jaxx | 2 +- .../java/jaxx/runtime/swing/FontSizorHandler.java | 2 +- .../main/java/jaxx/runtime/swing/HidorButton.jaxx | 7 +- .../java/jaxx/runtime/swing/JAXXWidgetUtil.java | 7 +- .../java/jaxx/runtime/swing/JSearchTextField.java | 9 +- .../jaxx/runtime/swing/ListToListSelector.jaxx | 5 +- .../java/jaxx/runtime/swing/editor/I18nEditor.jaxx | 8 +- .../runtime/swing/editor/I18nEditorHandler.java | 2 +- .../runtime/swing/editor/bean/BeanComboBox.jaxx | 4 +- .../swing/editor/bean/BeanComboBoxHandler.java | 8 +- .../runtime/swing/editor/bean/BeanDoubleList.jaxx | 2 +- .../swing/editor/bean/BeanDoubleListHandler.java | 14 +- .../swing/editor/bean/BeanDoubleListModel.java | 4 +- .../swing/editor/bean/BeanFilterableComboBox.jaxx | 4 +- .../editor/bean/BeanFilterableComboBoxHandler.java | 14 +- .../runtime/swing/editor/bean/BeanListHeader.css | 2 +- .../runtime/swing/editor/bean/BeanListHeader.jaxx | 2 +- .../swing/editor/bean/BeanListHeaderHandler.java | 4 +- .../jaxx/runtime/swing/editor/bean/BeanUIUtil.java | 4 +- .../swing/editor/cell/NumberCellEditor.java | 5 +- .../editor/gis/DmdCoordinateEditorHandler.java | 2 +- .../editor/gis/DmsCoordinateEditorHandler.java | 2 +- .../filter/DefaultFilterableCheckListModel.java | 4 +- .../jaxx/runtime/swing/log/JAXXLog4jHandler.java | 31 +- .../runtime/swing/session/BeanDoubleListState.java | 2 +- .../swing/session/BeanFilterableComboBoxState.java | 1 + .../table/filter/FilterTableHeaderRenderer.java | 4 +- .../table/filter/TableAwareCheckListRenderer.java | 5 +- .../swing/table/filter/TableFilterColumnPopup.java | 9 +- pom.xml | 6 +- src/site/rst/JAXXContext.rst | 8 +- src/site/rst/NavigationModel.rst | 4 +- src/site/rst/index.rst | 2 +- src/site/rst/migrate_v3.rst | 92 ++ src/site/rst/migration.rst | 2 +- src/site/rst/old-compiler-doc/JAXXContext.rst | 8 +- .../rst/old-compiler-doc/NavigationTreeModel.rst | 2 +- 320 files changed, 3689 insertions(+), 2689 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm