You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@pivot.apache.org by Roger Whitcomb <Ro...@actian.com> on 2014/06/02 19:42:06 UTC

RE: Swing and Pivot Integration using JPanel

So, here's the way to hook into the display/event dispatch logic:

First, you need to be catching AWT window events, then on WINDOW_OPENED and WINDOW_CLOSED you need to hook your Display object into the Pivot ApplicationContext "displays" list:
    @Override
    public void processWindowEvent(WindowEvent event) {

        // Call the superclass implementation.
        super.processWindowEvent(event);

        switch (event.getID()) {
            case WindowEvent.WINDOW_OPENED:
                ApplicationContext.getDisplays().add(displayObject);
...
                break;
            // The WINDOW_CLOSED event.
            case WindowEvent.WINDOW_CLOSED:

                ApplicationContext.getDisplays().remove(displayObject);
                break;
        }
    }

I realize it may be more complicated than this, and I'm sure I don't understand completely what you're doing.  But, this is the crucial piece that we added to Pivot (access to the "Display" list) that is needed to make events / repaint work correctly.

HTH,
~Roger Whitcomb

-----Original Message-----
From: Roger and Beth Whitcomb [mailto:RogerandBeth@rbwhitcomb.com] 
Sent: Thursday, May 29, 2014 9:31 AM
To: user@pivot.apache.org
Subject: Re: Swing and Pivot Integration using JPanel

Hi Michel,
     There is one more thing needed -- there is a list of DisplayHost objects that is maintained for purposes of dispatching events.  We added a method/hook to be able to add your new object to this list. I don't have the code right in front of me -- but I will dig it out and let you know.

~Roger Whitcomb

On 5/27/14 10:42 AM, Michel Eisenmann wrote:
> Hi,
>
> I'm integrating Pivot in my Swing application successfully except for 
> the transition/animation part.
>
> The way I've been doing things is the following:
>
> - I've created my own ApplicationContext to ensure that the Pivot 
> Timer was properly created.
>
> public class LocalApplicationContext extends ApplicationContext {
>    static public LocalApplicationContext singleton = null;
>
>    public LocalApplicationContext() {
>      createTimer();
>    }
>
>    static public LocalApplicationContext GetOrCreate() {
>      if (singleton != null) return singleton;
>      singleton = new LocalApplicationContext();
>      return singleton;
>    }
>
>
> - Then I use this singleton everytime I need to create a JPanel that 
> contains some Pivot widgets:
>
>    public static NewPlanAreaBXML InitializePanel(JPanel panel, 
> SchemaCollector coll) {
>      LocalApplicationContext.GetOrCreate();
>      BXMLSerializer bxmlSerializer = new BXMLSerializer();
>      ApplicationContext.DisplayHost displayHost = new 
> ApplicationContext.DisplayHost();
>      try {
>        panel.setLayout(new BorderLayout());
>        // the BXML that will be inserted in the JPanel
>        NewPlanAreaBXML window = (NewPlanAreaBXML) 
> bxmlSerializer.readObject(NewPlanAreaBXML.class
>            .getResource(getXmlFile()));
>        //
>        window.open(displayHost.getDisplay());
>        window.setCollector(coll);
>        panel.add(displayHost);
>        panel.setPreferredSize(new Dimension(getDefaultWidth(), 
> getDefaultHeight()));
>        return window;
>      } catch (IOException e) {
>        e.printStackTrace();
>      } catch (SerializationException e) {
>        e.printStackTrace();
>      }
>      return null;
>    }
>
> This is working pretty well for most of what I need. Except for 
> animations/transitions that seem to be triggered *ONLY* if I move the mouse.
>
> For example, I've built an accordion based on the tutorial example and 
> when I click on the next button, the actual change happens only when I 
> move my mouse. If I don't move my mouse, nothing happens.
>
> It looks like some event loop related issue but... well. Ideas are welcome.
>
> Thanks in advance
> Michel
>
>
>
>
>
> --
> View this message in context: 
> http://apache-pivot-users.399431.n3.nabble.com/Swing-and-Pivot-Integra
> tion-using-JPanel-tp4022931.html Sent from the Apache Pivot - Users 
> mailing list archive at Nabble.com.
>
>


RE: Swing and Pivot Integration using JPanel

Posted by Michel Eisenmann <mi...@fr.ibm.com>.
Hi Rodger

Thanks for your answer. I've been very busy till now and had no time to take
a look at your solution.
I'll do that as soon as I can. 

Will keep you updated with my success/failure... :-)

Regards
Michel




--
View this message in context: http://apache-pivot-users.399431.n3.nabble.com/Swing-and-Pivot-Integration-using-JPanel-tp4022931p4022962.html
Sent from the Apache Pivot - Users mailing list archive at Nabble.com.