This is an automated email from the git hooks/post-receive script. New commit to branch develop-2.x in repository jaxx. See https://gitlab.nuiton.org/nuiton/jaxx.git commit 171d6b51e781df9a37c7b1a211505297ed43e138 Author: jcouteau <couteau@codelutin.com> Date: Wed Nov 13 10:23:30 2019 +0100 Merge du jaxx 2.43 ultreia et du jaxx 2.43 nuiton --- jaxx-demo/pom.xml | 63 ---------------------- jaxx-maven-plugin/pom.xml | 36 ++++--------- .../jaxx/runtime/swing/session/SwingSession.java | 16 +++--- .../jaxx/runtime/swing/session/WindowState.java | 12 ++--- .../table/filter/FilterTableHeaderRenderer.java | 37 ++++++------- .../swing/table/filter/TableRowFilterSupport.java | 34 ++++++------ pom.xml | 10 ++++ 7 files changed, 65 insertions(+), 143 deletions(-) diff --git a/jaxx-demo/pom.xml b/jaxx-demo/pom.xml index 61dd128c..c4fe227a 100644 --- a/jaxx-demo/pom.xml +++ b/jaxx-demo/pom.xml @@ -415,69 +415,6 @@ </profile> - <!--profile> - <id>changelog-profile</id> - <activation> - <property> - <name>performRelease</name> - <value>true</value> - </property> - </activation> - <build> - <defaultGoal>generate-resources</defaultGoal> - - <plugins> - - <plugin> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - - <execution> - <id>Get changelog</id> - <phase>generate-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <outputDirectory>${project.build.directory}/changelog</outputDirectory> - <artifactItems> - <artifactItem> - <groupId>${project.parent.groupId}</groupId> - <artifactId>${project.parent.artifactId}</artifactId> - <version>${project.version}</version> - <classifier>changelog</classifier> - <type>pom</type> - </artifactItem> - </artifactItems> - </configuration> - </execution> - - </executions> - </plugin> - - <plugin> - - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>Copy changelog</id> - <phase>process-resources</phase> - <configuration> - <target> - <copy failonerror="true" overwrite="true" file="${project.build.directory}/changelog/${project.parent.artifactId}-${project.version}-changelog.pom" tofile="${project.build.directory}/generated-sources/license/CHANGELOG.txt" /> - <copy failonerror="true" overwrite="true" file="${project.build.directory}/changelog/${project.parent.artifactId}-${project.version}-changelog.pom" tofile="${project.build.directory}/generated-sources/license/META-INF/jaxx-demo-CHANGELOG.txt" /> - </target> - </configuration> - <goals> - <goal>run</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> - </profile--> </profiles> </project> diff --git a/jaxx-maven-plugin/pom.xml b/jaxx-maven-plugin/pom.xml index 9bc8a59e..6831c11e 100644 --- a/jaxx-maven-plugin/pom.xml +++ b/jaxx-maven-plugin/pom.xml @@ -144,6 +144,15 @@ <artifactId>javahelp</artifactId> </dependency> + <!-- pour acceder aux BeansInfos swing via Introspector --> + <dependency> + <groupId>com.sun</groupId> + <artifactId>dt</artifactId> + <scope>system</scope> + <systemPath>/${java.home}/../lib/dt.jar</systemPath> + </dependency> + + <!-- tests dependencies --> <dependency> <groupId>org.apache.maven.shared</groupId> @@ -226,33 +235,6 @@ <profiles> - <profile> - <id>jigsaw</id> - <activation> - <jdk>[1.9,)</jdk> - </activation> - <!-- No dependencies needed by Jigsaw --> - <dependencies /> - </profile> - <profile> - <id>default-jdk</id> - <activation> - <file> - <exists>${java.home}/../lib/dt.jar</exists> - </file> - </activation> - <dependencies> - <!-- sun dependencies --> - <dependency> - <groupId>com.sun</groupId> - <artifactId>dt</artifactId> - <scope>system</scope> - <version>${java.version}</version> - <systemPath>${java.home}/../lib/dt.jar</systemPath> - </dependency> - </dependencies> - </profile> - <profile> <id>reporting</id> <activation> diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/SwingSession.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/SwingSession.java index 86bb4c3e..de2a62b8 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/SwingSession.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/SwingSession.java @@ -158,7 +158,7 @@ public class SwingSession { } else { - states =Maps.newHashMap(); + states = Maps.newHashMap(); } @@ -332,7 +332,7 @@ public class SwingSession { } public void updateState() { - walkThrowComponent("", registeredComponent, + walkThroughComponent("", registeredComponent, new SaveStateAction()); } @@ -371,7 +371,7 @@ public class SwingSession { } registeredComponent.add(c); - walkThrowComponent("", + walkThroughComponent("", Collections.singleton(c), new RestoreStateAction()); } @@ -426,7 +426,7 @@ public class SwingSession { this.states.put(path, state); } - protected void walkThrowComponent( + protected void walkThroughComponent( String path, Collection<Component> roots, Action action) { for (Component root : roots) { if (root != null) { @@ -438,21 +438,21 @@ public class SwingSession { if (root instanceof Container) { Component[] children = ((Container) root).getComponents(); if ((children != null) && (children.length > 0)) { - walkThrowComponent(pathname, Arrays.asList(children), action); + walkThroughComponent(pathname, Arrays.asList(children), action); } } if (root instanceof JFrame) { Component[] children = ((JFrame) root).getContentPane().getComponents(); if ((children != null) && (children.length > 0)) { - walkThrowComponent(pathname, Arrays.asList(children), action); + walkThroughComponent(pathname, Arrays.asList(children), action); } } } } } - public static interface Action { - public void doAction(SwingSession session, String path, Component c); + public interface Action { + void doAction(SwingSession session, String path, Component c); } public static class SaveStateAction implements Action { diff --git a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/WindowState.java b/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/WindowState.java index 7ddd54f4..452db612 100644 --- a/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/WindowState.java +++ b/jaxx-runtime/src/main/java/jaxx/runtime/swing/session/WindowState.java @@ -163,14 +163,12 @@ public class WindowState implements State { frameBounds = getWindowNormalBounds(c); } - WindowState result = null; + WindowState result = new WindowState(); + result.setFrameState(frameState); if (frameBounds != null && !frameBounds.isEmpty()) { - result = new WindowState(); result.setBounds(frameBounds); result.setGcBounds(gcBounds); - result.setFrameState(frameState); } - return result; } @@ -194,9 +192,9 @@ public class WindowState implements State { } } } - if (w instanceof Frame) { - ((Frame) w).setExtendedState(windowState.getFrameState()); - } + } + if (w instanceof Frame) { + ((Frame) w).setExtendedState(windowState.getFrameState()); } } } 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 1f95aea7..9088ae19 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 @@ -38,7 +38,11 @@ import jaxx.runtime.swing.JAXXWidgetUtil; import java.awt.Component; import java.awt.Image; -import javax.swing.*; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JTable; import javax.swing.table.TableCellRenderer; /** @@ -49,53 +53,46 @@ import javax.swing.table.TableCellRenderer; * @author Kevin Morin * */ -class FilterTableHeaderRenderer extends JComponent implements TableCellRenderer { +public class FilterTableHeaderRenderer extends JComponent implements TableCellRenderer { private static final long serialVersionUID = 1L; - private ImageIcon icon; + private final ImageIcon icon; private final TableFilter<?> tableFilter; private boolean rendererInit = true; private int originalHorizontalTextPosition; public FilterTableHeaderRenderer( TableFilter<?> tableFilter ) { this.tableFilter = tableFilter; - } - - private Icon getFilterIcon() { - - if (icon == null) { - icon = JAXXWidgetUtil.createImageIcon("funnel.png"); - icon = new ImageIcon( icon.getImage().getScaledInstance( 12, 12, Image.SCALE_SMOOTH )); - } - return icon; + ImageIcon funnelIcon = JAXXWidgetUtil.createImageIcon("funnel.png"); + icon = new ImageIcon(funnelIcon.getImage().getScaledInstance(12, 12, Image.SCALE_SMOOTH)); } - + @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { final JLabel label = (JLabel) table.getTableHeader().getDefaultRenderer() .getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - if ( rendererInit ) { + if (rendererInit) { originalHorizontalTextPosition = label.getHorizontalTextPosition(); rendererInit = false; } int modelColumn = table.convertColumnIndexToModel(column); - if ( tableFilter.isFiltered(modelColumn) ) { + if (tableFilter.isFiltered(modelColumn)) { Icon originalIcon = label.getIcon(); - if ( originalIcon == null ) { - label.setIcon( getFilterIcon() ); + if (originalIcon == null) { + label.setIcon(icon); } else { - label.setIcon( new CompoundIcon( getFilterIcon(), originalIcon ) ); + label.setIcon( new CompoundIcon(icon, originalIcon)); } - label.setHorizontalTextPosition( JLabel.TRAILING ); + label.setHorizontalTextPosition(JLabel.TRAILING); } else { - label.setHorizontalTextPosition( originalHorizontalTextPosition ); + label.setHorizontalTextPosition(originalHorizontalTextPosition); } return label; diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableRowFilterSupport.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableRowFilterSupport.java index a050ca98..aae7536c 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableRowFilterSupport.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/table/filter/TableRowFilterSupport.java @@ -34,7 +34,6 @@ package jaxx.runtime.swing.table.filter; import org.nuiton.decorator.Decorator; -import java.awt.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Collections; @@ -42,6 +41,8 @@ import java.util.Collections; import javax.swing.JTable; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; +import java.awt.Dimension; + public final class TableRowFilterSupport { @@ -51,6 +52,8 @@ public final class TableRowFilterSupport { private boolean actionsVisible = true; private boolean useTableRenderers = false; private Dimension popupDefaultSize = null; + private FilterTableHeaderRenderer tableHeaderRenderer; + private TableRowFilterSupport( TableFilter<?> filter ) { if ( filter == null ) throw new NullPointerException(); @@ -92,6 +95,12 @@ public final class TableRowFilterSupport { return this; } + public TableRowFilterSupport setTableHeaderRenderer(FilterTableHeaderRenderer tableHeaderRenderer) { + this.tableHeaderRenderer = tableHeaderRenderer; + return this; + } + + public TableRowFilterSupport setPopupDefaultSize(Dimension popupDefaultSize) { this.popupDefaultSize = popupDefaultSize; return this; @@ -127,30 +136,19 @@ public final class TableRowFilterSupport { // make sure that search component is reset after table model changes setupHeaderRenderers(table.getModel(), true ); -// table.addPropertyChangeListener("model", new PropertyChangeListener() { -// -// public void propertyChange(PropertyChangeEvent evt) { -// -// FilterTableHeaderRenderer headerRenderer = new FilterTableHeaderRenderer(filter); -// filter.modelChanged((TableModel) evt.getNewValue()); -// -// for( TableColumn c: Collections.list( filter.getTable().getColumnModel().getColumns()) ) { -// c.setHeaderRenderer( headerRenderer ); -// } -// }} -// -// ); } - private void setupHeaderRenderers( TableModel newModel, boolean fullSetup ) { + private void setupHeaderRenderers(TableModel newModel, boolean fullSetup) { final JTable table = filter.getTable(); - FilterTableHeaderRenderer headerRenderer = new FilterTableHeaderRenderer(filter); - filter.modelChanged( newModel ); + if (tableHeaderRenderer == null) { + tableHeaderRenderer = new FilterTableHeaderRenderer(filter); + } + filter.modelChanged(newModel); for( TableColumn c: Collections.list( table.getColumnModel().getColumns()) ) { - c.setHeaderRenderer( headerRenderer ); + c.setHeaderRenderer(tableHeaderRenderer); } if ( !fullSetup ) return; diff --git a/pom.xml b/pom.xml index 815240a5..44817c46 100644 --- a/pom.xml +++ b/pom.xml @@ -375,6 +375,16 @@ </exclusions> </dependency> + <!-- sun dependencies --> + <dependency> + <groupId>com.sun</groupId> + <artifactId>dt</artifactId> + <version>${java.version}</version> + <scope>system</scope> + <systemPath>/${java.home}/../lib/dt.jar</systemPath> + </dependency> + + <dependency> <groupId>javax.help</groupId> <artifactId>javahelp</artifactId> -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.