Ice 3.5.0: Patch to run IceGridGUI on OpenJDK and layout improvements

grembogrembo Michael GmelinOrganization: Grem Equity GmbHProject: E-Commerce platformMember
The attached patch does two completely unrelated things:

Allow building and running IceGridGUI using OpenJDK
OpenJDK does not support JavaFX yet, the patch allows you to run on platforms, the only feature lost is the metrics graph (metrics tables still work). All changes due to JavaFX are marked (/* XXX: No JavaFX */).

Make the size of various tables, lists and fields configurable
IceGridGUI uses pretty small heights in its layout, which can be quite irritating, especially for properties and metrics tables. The patch makes the height of these elements configurable through Ice properties. In case you're not using an Ice property file for IceGridGUI yet, you can set one using one of the usual methods (e.g. by setting ICE_CONFIG in the environment). The following properties are available, the examples provided are the defaults used if the properties are not configured and resemble IceGridGUI's normal behavior:

IceGridGUI.AllocatableObjectCount=3
IceGridGUI.DeployedApplicationCount=7
IceGridGUI.DescriptionCount=1
IceGridGUI.DynamicObjectAdapterCount=7
IceGridGUI.DynamicWellKnownObjectCount=7
IceGridGUI.EnvironmentVariableCount=3
IceGridGUI.LoadFactorCount=3
IceGridGUI.MetricCount=5
IceGridGUI.PropertyCount=3
IceGridGUI.WellKnownObjectCount=3

In our setup increasing IceGridGUI.PropertyCount and IceGridGUI.MetricCount makes a huge difference in usability. I'm far from being a Java person, this hack was an easy solution for me to accomplish the desired outcome. It might still be useful to others.

To apply the attached patch Attachment not found. to a fresh Ice 3.5.0 source distribution:
$ cd Ice-3.5.0
$ patch -p1 < ice350-icegridgui-openjdk.patch.txt

Cheers,
Michael

p.s. The numbers in *Count properties are not really lines or entries, but the approximate number of FormLayout rows.

Comments

  • xdmxdm La Coruña, SpainJose Gutierrez de la ConchaOrganization: ZeroC, Inc.Project: Ice DeveloperAdministrators, ZeroC Staff ZeroC Staff
    Hi Michael,

    Thanks for this patch, we already have a fix to allow build and run IceGridGUI in sytems without JavaFX and will be part of the next patch release, the Metrics Graph component will be instantiated using Java reflection only when the component and JavaFX are available, in systems without JavaFX the component won't be built. We will look into the other improvement in this patch for the table layouts.

    Regards,
    Jose
  • xdmxdm La Coruña, SpainJose Gutierrez de la ConchaOrganization: ZeroC, Inc.Project: Ice DeveloperAdministrators, ZeroC Staff ZeroC Staff
    Hi Michael,

    I'm curious why in your patch you commented out this:
    diff -ruN a/java/src/IceGridGUI/SimpleInternalFrame.java b/java/src/IceGridGUI/SimpleInternalFrame.java
    --- a/java/src/IceGridGUI/SimpleInternalFrame.java	2013-03-11 16:19:47.000000000 +0100
    +++ b/java/src/IceGridGUI/SimpleInternalFrame.java	2013-08-29 02:20:25.007112955 +0200
    @@ -35,7 +35,9 @@
     import javax.swing.*;
     import javax.swing.border.AbstractBorder;
     
    +/* XXX: No JavaFX
     import com.jgoodies.common.base.SystemUtils;
    +*/
     
     /**
      * A <code>JPanel</code> subclass that has a drop shadow border and
    @@ -373,8 +375,10 @@
                 UIManager.getColor("SimpleInternalFrame.activeTitleBackground");
             if (c != null)
                 return c;
    +/* XXX: No JavaFX
             if (SystemUtils.IS_LAF_WINDOWS_XP_ENABLED)
                 c = UIManager.getColor("InternalFrame.activeTitleGradient");
    +*/
             return c != null
                 ? c
                 : UIManager.getColor("InternalFrame.activeTitleBackground");
    

    Was this code causing any problems in your system? That code doesn't depend on JavaFX.

    Cheers,
    Jose
  • grembogrembo Michael GmelinOrganization: Grem Equity GmbHProject: E-Commerce platformMember
    Hi Jose,

    That's probably a leftover from trying to build IceGridGUI in the first place using an outdated version of jgoodies. Since I'm not on Windows I didn't bother putting it back in and when I added comments I just assumed everything I commented out was because of JavaFX. I just put it back in and it builds and runs just fine here too.

    Long story short: You're right, it's not relevant.

    Cheers,
    Michael
Sign In or Register to comment.